This page contains an outdated translation of the original content. Please check the
English version for the most accurate information (and consider updating the translation if you are able to help out)!
本文章规定了谱面在谱面上架流程中必须遵守的规定和准则。
部分上架标准有单独的文章,并且适用于所有谱面,不论游戏模式、长度或任何其他限制。这些文章在以下目录中列出。
简版上架标准:本文很复杂,而简版上架标准则简单概括了比较重要的上架标准。不过请注意,简版 RC 并非详尽无遗,如有任何疑问,应仍参考本文和对应的具体上架标准文章。
视觉内容注意事项:涵盖出现在 osu! 谱面背景、故事板或视频内容中的任何视觉内容的准则。
元数据:在填写谱面的歌曲信息时,应遵守的规定和准则。
此外,根据所属游戏模式的不同,谱面也需要遵守其所属的游戏模式独有的上架标准。
对于上架标准的任何修改建议,应通过上架标准论坛提出。
在上架标准论坛中创建提案。 尽量详细地解释你的新想法和修改造成的影响。
达成共识。 如果你认为时机已经成熟,请联系
谱面审核团队 (NAT) 的成员,来让他们确定你的提案是否可以实施。在一定程度上,NAT 可以对有争议的案例进行仲裁,但缺乏普遍共识的提议很可能无法通过。
在 osu! wiki 的 GitHub 仓库中创建拉取请求 (PR)。 通常,这由参与最终讨论的 NAT 成员完成。
不改变上架标准含义或意图的修改(例如对拼写、语法或组织结构的改进)无需在论坛发帖。但仍旧建议先咨询有经验的社区成员,来确定你的修改是否有帮助,且受大家欢迎。
非常推荐使用 Mapset Verifier (MV) 来辅助检查谱面是否符合上架标准。传统客户端 (stable 版) 内的 AiMod 工具已经过时且不再维护。同时,osu!(lazer) 客户端内的谱面检查工具仍在开发中。
使用前需注意:
同一时间不能放置两个或多个物件。 即圆圈、滑条和转盘覆盖的全部时间段不得出现重叠。osu!mania 模式不受此限制。
圆圈与其后物件必须间隔至少 10 毫秒,滑条尾与其后物件必须间隔至少 20 毫秒。 osu!catch、osu!mania 模式不受此限制。
谱面的所有内容必须符合内容使用许可的要求。 对于被列为禁止使用的艺术家或曲目,只有在
谱面创建者获得该曲目的明确使用许可时,使用该曲目的谱面才能被上架。许可证明必须贴在谱面介绍或谱面讨论页内。
谱面的打击物件、打击音效和时间轴测定(即 timing)必须完全通过直接的人工输入来创建,不得使用任何生成式工具。 作图本质上是一个创造性的过程,因此使用如生成式 AI 一类的捷径来得到谱面并试图上架是不被允许的。
背景图片、背景视频和故事板中不得出现任何淫秽内容。 这包括裸体、近乎裸体、性暗示、暴力、滥用药品(毒品)等。关于更详细的规定,参见
视觉内容注意事项。
如果谱面难度包含故事板或视频导致的重复性闪烁、脉冲图像,或含有对比度、颜色、亮度快速变化的内容,则必须开启光敏性癫痫警告。 如果警告干扰了谱面游玩,则必须在歌曲前增加足够的开场空白时间。频率低于 3 HZ(1秒内闪烁3次)的闪烁效果通常不会引起问题。如果不确定是否有开启的必要,请预先开启警告,并在摸图过程中确认其必要性。
谱面文件夹不得包含任何未使用的文件或 0 字节大小的文件。 0 字节文件会影响文件夹中其他文件的正常上传。自动生成的 thumbs.db 文件是唯一的例外。
如果同一模式的多个难度都包含休息时段,并且(如果存在)使用相同的故事板,则它们的休息段使用黑边填充背景设定必须保持一致。
如果谱面包含某媒体作品的剧透内容,则必须在谱面介绍中标注剧透警告。
注意:在本节中,osu!mania 中的每个键位模式和游玩方法都被视为是互相独立的游戏模式。
谱面内所有游戏模式,都必须有连续合理的难度梯度,并且谱面的最低难度必须符合谱面掉血时间的限制。 不能跳过任何难度等级,任何相邻的两个难度之间也不能存在巨大的难易程度差距。
由 2 首歌曲组合而成的谱面,必须遵循较长歌曲的长度对应的最低难度范围要求。 这是为了避免通过人为延长歌曲来规避上述时间限制。对于专门一起发行的歌曲,则可以无视此规定。
谱面的难度名称必须清晰准确地表示出它所属的难度区间,除非该难度是:
如果谱师使用了自定义的难度名称,则它必须符合与歌曲相关联的主题或风格,且不得带有误导性。 如果自定义的难度名表示了本属于其他难度区间的难度等级,则它是误导性的(比如将一个 "Expert" 难度命名为 "Normal")。
谱面创建者制作的难度数量必须大于等于客串难度的数量。 这保证了谱面创建者在制作谱面时的贡献更大。
合作难度 (Collab) 仅被视为部分难度,并且在客串谱师明显比谱面创建者付出更多的时候,将通过谱面中各自部分的
掉血时间总量来衡量谱师们的贡献。
谱面创建者和客串难度谱师可以按照自己的想法修改各自的谱面。 如果谱面的创建者和客串谱师意见不一致,谱面创建者必须在请求允许后才能删除客串谱面。如果在一个月内无法与客串谱师取得联系,则视为同意任何修改。
不能使用属于其他谱师但没有明确参与,或未获得原谱师授权的难度来作为自己谱面的客串难度。
非继承时间点(即红线)必须准确地记录歌曲的拍子记号。 如果错误的拍子记号持续超过一个小节,则必须在下一个强拍处添加新的非继承时间点,以重置拍子记号。如果歌曲含有部分不受编辑器支持的 #/4 拍子记号,则可使用非继承时间点重置节拍器,或直接编辑
.osu 文件得到。对于其他不受编辑器支持的时间记号,请参见
范例图表或者查阅
八分拍歌曲测定。
谱面时间轴必须精确。 这意味着每一个
非继承时间点的
BPM 和偏移量都需要完全贴合歌曲。无规律的变奏歌曲也许不可能完美地测定,此时应在不影响谱面游玩的情况下尽量精确测定。如果某段含有复杂节奏的段落被休息段或者持续的转盘覆盖,也可以不用精确测量这个段落。
谱面所有难度的非继承时间点必须相同。 任意一个难度内所有的非继承时间点的
BPM 和偏移量必须与其他难度相同。
非继承时间点只能用于测定或重置时间轴。 多余的非继承时间点可能会影响主菜单脉冲特效或导致谱面时间轴偏移,在使用
Nightcore 模组 时也可能会出现多余错位的音效。以下两种情况除外:
不允许在同一时间点放置多个非继承时间点或多个继承时间点(即绿线)。 将两个相同类型的时间点放在同一时间上,可能会导致滑条速度或音效音量错误等。
不允许在第一个非继承时间点之前放置继承时间点。 如果无法获取任何要继承的设置,继承时间点将无法正常工作。如果要在当前第一个非继承时间点之前修改音效音量或滑条速度,则必须将非继承时间点向前移动一个完整的小节,以使继承时间点正常工作。
物件放置的时间与其所属节拍细分的误差必须小于 2 毫秒。 AiMod 会报告这些错误,但有时也会错报一些物件,如滑条折返和滑条尾。此时需要手动判别或使用其他工具协助。如果物件需要被放置在游戏不支持的节拍细分上(如 1/11),那么这段物件可以:
如果物件的持续时间跨越了非继承时间点或结束时几乎将要到达新的非继承时间点,则应该调整物件末尾并使其完美贴合变化后的新节拍细分。 如果这个物件是转盘或 osu!mania 的长条,拖动物件末尾的滑块即可使其完美贴合。对于滑条物件,可以使用绿线修改滑条速度来调整物件末尾时间,或者直接编辑
.osu 文件来贴合。
谱面的歌曲文件必须...
...编码为 MP3 (.mp3) 或者 Ogg Vorbis 文件 (.ogg)。
...对于 MP3 文件,平均比特率不得高于 192 kbps;对于 Ogg Vorbis 文件,则不得高于 208 kbps。
...采样率不得高于 48 kHz。
...平均比特率不得低于 128 kbps(如果存在该质量以上的源文件)。否则,请使用可用的最高质量源文件。
...不得从较低比特率或采样率向上编码而来。
一个谱面集只能包含一首所有难度共用的歌曲文件。 osu! 不支持在单个谱面集中使用多个歌曲文件,若这样做,则可能会导致预览时间点或元数据等出现错误。
谱面必须含有打击音效。 基础打击音效 (hitnormal) 能给予玩家足够的反馈,附加打击音效(口哨、拍手、镲)可以用于强调歌曲中比较重要的声音。
所有可击打的物件都必须至少有一个打击音效,该音效同时满足以下条件:
...含有清晰的冲击感,并且峰值延迟不超过 5 毫秒。 来源于默认皮肤的 normal-hitfinish.wav 不受此条规定限制。
...使用未压缩的 WAV (.wav) 或 Ogg Vorbis (.ogg) 文件格式。 不应使用 MP3 格式,因为它本身就带有延迟。
这确保了玩家在游玩时能获得即时的反馈,并与歌曲同步,使玩家能够判断点击的早晚。由于物件并发的原因,osu!mania 不受此限制。
打击音效必须清晰可闻。 音效的作用是提供足够反馈,因此,音量极低或者与歌曲音色极其相似的音效都是不能使用的。特定游戏模式在各自的上架标准中列出了此规则的例外情况。
必须设置预览时间点,并且在谱面集的所有难度中保持一致。 预览点将会在游戏的歌曲选择菜单和网页的在线歌曲试听中使用。
每个打击音效文件的长度必须至少为 25 毫秒。 更短的文件在游戏中可能会无法播放声音。
若需要使用完全静音的音效,则必须使用这个 44 字节文件。 其他音效文件可能会过大,而 0 字节文件则无效。
不得使用故事板音效来替代主动打击音效。 这会给玩家不准确的反馈。在其他情况下使用故事板化的打击音效是可接受的,但不鼓励。osu!mania 不受此规则限制。
谱面的歌曲文件和打击音效文件不应出现任何不必要且能听到的失真效果, 如削波、闷音或爆音——如果失真是明显非艺术家本意或不属于歌曲本身特色的。最好通过聆听音频本身来判断,而不是只通过软件检查。
歌曲不应被人为延长以突破本标准中掉血时间对最低难度的限制。 包括但不限于:重复播放歌曲的部分段落,降低整首歌或者歌曲一部分的
BPM,或者增加一小段突兀不合曲的音乐等。如果制作
歌曲串烧,或者音频文件短于 30 秒,则可忽略此条准则。
如果谱面结尾空白部分大于等于歌曲全长的 20%,则应截短歌曲。
歌曲串烧或混成曲等,应做到干净利落的混合,并尽量使单曲之间自然平滑过渡,歌曲与歌曲之间不应出现突兀停顿或过长的淡入淡出段。 串烧中的各个单曲应具有相似的音质,音量与长度。这是为了确保串烧谱面能与其他谱面一样获得连贯的游戏体验。交叉淡入淡出的过渡是可接受的,但应谨慎使用,且通常不超过 5 秒。节拍匹配且精心设计的过渡总是比交叉淡入淡出更好。
如果只编入 2 首歌曲,那么它们之间应该有比较清晰且紧密的联系。 这方面的例子包括但不限于:同一系列歌曲的不同迭代,词或主题相关、音调和/或流派相似等。
谱师自主剪辑歌曲,应保留原曲的总体印象和强度。 重大改变原曲结构的剪辑(如去掉或重新排序歌曲的前奏、主歌、副歌、尾声)会导致曲目被曲解,并常常造成不令人满意的游戏体验。这不适用于官方剪辑或对官方剪辑的复现。
游戏音效中除了主动打击音效外,都应使用 MP3 (.mp3) 或 Ogg Vorbis (.ogg) 文件格式。 这些文件通常在相同体积下具有更长时间,而
.wav 文件则会太大。但当 WAV 格式能产生更小的文件大小时,应使用 WAV 格式。
尽量避免将 soft、normal 音效组中的镲音效 (hit finish) 替换为极其常用的自定义音效文件。 若替换了镲音效 (hit finish),并将其用作自定义音效的军鼓音效 (snare) 或者低音 (bass),对于任何禁用谱面自定义打击音效的玩家来说可能会非常刺耳。建议将常用自定义音效文件用于替换口哨/拍手音效,因为这些样本使用得更频繁。osu!taiko 谱面有特定的自定义音效准则,不受这一准则的限制。
必须在谱面集的每个难度上都设置背景图片。 可以为不同的难度设置不同的背景图片。
对于背景图片有以下要求:
最小宽度: 160 像素
最小高度: 120 像素
最大宽度: 2560 像素
最大高度: 1440 像素
最大文件大小: 2.5MB
视频的尺寸不得超过 1280 像素宽,720 像素高。 另外,应该避免把较低分辨率的视频重编码,放大到较高分辨率。这样可保证视频文件不会变得不必要的大,或在视频解码时占用过多计算资源。
视频编码必须使用 H.264 标准。
视频的偏移量必须与歌曲完美同步。 错误的偏移量会带来误导性的视觉表达。如果同一个视频被用于多个难度,其偏移量必须一致。
视频文件不应含有音轨。 osu! 不会使用视频文件中的音频轨道,并且,删除音轨能够缩减谱面文件大小。即使视频文件原有的音轨没有声音,也应将其删除。
如果要使用其他社区成员制作的自定义皮肤元素,请事先获得许可。 尊重他人的工作是非常重要的,大多数人会很乐意你在自定义谱面皮肤中使用他们制作的皮肤元素,并标注他们的工作!因此,如果你不知道某一皮肤元素是由谁制作的,则不应使用它。
游玩皮肤元素必须可见。 如果这些元素不可见,将可能会降低谱面的游玩体验,甚至导致谱面无法正常游玩(
cursormiddle.png 除外,因为它会影响光标拖尾的行为)。只有在不影响游玩体验,并有充足理由时,才能让游玩皮肤元素完全透明。
自定义皮肤元素必须裁剪干净,这样它们的轮廓周围就不会有像素锯齿或阴影。
不能使用过大尺寸的自定义皮肤元素,这可能会导致默认皮肤内不重叠的元素在自定义后相互重叠。 只有自定义皮肤元素的可见部分适用这条规定。若自定义皮肤元素重叠,则可能会影响谱面的游玩体验。
若要自定义某一个游玩皮肤元素,还必须自定义这一整个皮肤组的必需元素,以避免谱面自定义皮肤元素与玩家自定义皮肤元素发生冲突。 如果使用标记为“可选”的自定义皮肤元素,那么这一整组的”可选“元素必须全部自定义。如果不使用“可选”的元素,也可以直接跳过。然而,如果一组内部分”必需“的自定义皮肤元素在任何情况下都不会使用,或者强制启用默认皮肤时,也可以跳过这些”必需“元素。
故事板图片 (Storyboard Image): 指故事板使用的图片,它们都存放在谱面文件夹中。
精灵图 (Sprite): 一个表示故事板中一张图片或一组图片的对象。
时间 (Time): 表示某一对象在时间轴上的位置,以毫秒为单位。这通常能在谱面编辑器的设计页看到。
命令 (Command): 游戏有 Move(移动)、Scale(缩放)、Fade(淡化)、Rotate(旋转)等命令。这些命令能操纵并改变精灵图的位置、大小、朝向、透明度等。每条命令都有开始时间和结束时间。
坐标轴命令 (Axis Specific Command): 指仅仅在特定坐标轴方向上影响精灵图的命令,例如 MoveX (X 轴方向移动)和 MoveY。(Y 轴方向移动)
激活时间 (Active): 指控制对象的命令从开始到结束这段时间。
正在渲染 (Rendered): 通常用来描述在屏幕中,且未完全淡化成透明的精灵图。
osu! 像素 (osu!pixel): 谱面编辑器设计页中的最小尺寸。可以在设计页右上角看到它,例如 x: 104; y: 88。
故事板图片所包含的总像素数量不能超过 1700 万,这是为了保证大部分电脑能在短时间内加载完成。 此外,你需要根据故事板编辑器内部最大尺寸(854 x 480 osu! 像素)来缩放图片。
谱面在加载时,不能引发解析错误。 即解析器无法读取故事板指令的某一部分。
宽屏支持 (Widescreen Support) 设置必须在包含故事板的谱面难度之间保持一致, 除非特定难度的故事板设计用于不同的宽高比。
在歌曲结束后,应关闭所有精灵图、停止命令。 为了某些故事板的特定效果需要,这可以延长到歌曲结束后几秒钟,但更长则没有必要。
可考虑在含有旋转指令的故事板图片周围留有 1 像素宽的透明边框,以保证插值算法工作正常。 osu! 没有图片的抗锯齿算法。因此,如果用作旋转的故事板图片边缘非常锐利,旋转中的锯齿将会非常明显。
尽可能避免任何明显的性能问题。即使经过优化,保持稳定的帧率对于谱面的游玩体验也至关重要。 请在摸图时测试谱面来确认这一点。
避免使用在游玩过程中容易与打击音效混淆的故事板音效。 这违背了听觉反馈这一概念,因为故事板音效将独立于玩家的操作而自动播放。
避免使用不合逻辑、相互冲突、已经作废的命令。 结束时间早于开始时间或绑定条件不可能触发的命令要么无法按预期工作,要么已经过时,应予以删除或调整以使其正常工作。同类型且时间区间重叠的命令应调整其时间区间和参数,使其不再重叠。
如果谱面难度包含宽屏故事板,应开启宽屏支持 (Widescreen Support) 设置。 同样的,如果故事板是为 4:3 分辨率设计的,则应关闭此功能。如果没有制作故事板,此设置不会影响谱面中的任何内容。
尽量优化故事板。 无论如何都要做到这一点。具体如以下所示:
避免精灵图或谱面背景图片在渲染时,被其他元素遮挡至完全不可见。 出于性能考虑,当元素不可见时,最好将它们淡化为透明。如果要将谱面的背景图片淡化为透明,请将相同的背景图片名称作为精灵图,Background 或 0 作为第二个参数,然后使用淡化命令,相应地将其淡出。
避免精灵图在整个渲染过程中部分离开屏幕或被视觉遮挡。 在这些情况下,除非是故事板内某种效果所需,否则应裁剪图像的相应部分。
避免在故事板图片周围留有不必要的透明区域。 出于性能考虑,应尽可能根据所需效果裁剪图像。
若要多次使用某条命令,请使用循环 (Loop) 指令,除非会影响视觉效果。 使用循环指令能大量减少代码行数,从而缩减故事板文件大小。
当使用一个常用命令可以实现相同的效果时,请不要混合使用两个坐标轴分量命令。 使用单条命令而不是两条命令,能缩减故事板文件大小。
使用在保持合理质量的同时文件大小最小的图像文件格式。 不同于 .jpg 格式,.png 格式由于采用了无损压缩方式,对于较大的图像往往占用更大的存储空间。
避免使用重复的图片。 使用两个完全相同的图像副本只会增加不必要的文件大小。
避免同时使多个精灵图处于激活状态但未渲染的情况。 无论元素是否可见,游戏依旧会计算并处理命令。如果这个精灵图长时间不可见,请关闭此精灵图,并在之后需要展示时创建一个新的精灵图。
在同一个精灵图上使用多个同类型指令时,尽量在它们的触发时间之间留出至少 16 毫秒的间隔。 每秒 60 个命令足以使任何精灵图在视觉上平滑过渡。这样做可以缩减故事板文件大小,并且减少故事板加载时间。
由触发器 (Triggers) 激活的精灵图要在使用完毕后淡化为透明。 触发器会从其第一个可能的命令开始激活,并一直保持活动状态直到谱面播放结束。所以最好在不使用后隐藏这个精灵图。