谱面文件规范
Dododo 谱面是 .ddd
纯文本格式的文件。谱面文件由两部分组成,文件头和行的列表。这两个部分由 ---
分隔。
以下只是一些规则。在阅读以下内容时,我们默认您已经对乐谱及乐谱的符号有一定的了解。
文件头
文件头由几个谱面基础设置组成,每个设置对位于一行中,与其对应的信息由 :
(冒号和空格)分隔。
以下设置可用:
title
音乐的名称。
此设置应始终设置为为简单、简短、唯一、直接的名称,以便玩家可以快速识别音乐。
musicAuthor
音乐的作者(艺术家)。
为简洁起见,作者的名字和中间名可以缩写为首字母。如果有多个作者,建议全部写出并用 &
连接名称。如果多个作者以不同的方式创作音乐(作曲家、作词家、演奏者等),建议在括号中写出此类信息。例如 W. A. Mozart (Composer) & S. Ligoratti (Player)。
beatmapAuthor
谱面的作者(谱师)。
您可以使用您的昵称。
difficulty
谱面的难度。
通常设置为 1 到 15 的整数。如果没有指定,难度就会默认设置为“未知”(不带引号)。虽然不推荐,但对于极其困难的谱面,您可以将难度设定为大于 15 的数字或“???”。
难度是用来衡量谱面难度的指标。
audioUrl
音频文件的 url。
如果不设置,则玩家必须上传音频文件(如果通过上传文件播放),否则游玩时玩家将听不到任何音乐。
start
从哪里开始播放音乐,以毫秒为单位。
如果未设置,则音乐将从头开始播放。
在某些情况下,用作音乐的音频对于音游来说太长了,如果通过 url 提供,会不容易修改。所以,您可能必须截取音乐的某个部分(片段)。start
和 end
参数可以为您提供这些功能。
end
在哪里结束播放音乐,以毫秒为单位。
如果未设置,音乐将一直播放到最后。尽管如此,您仍应始终在谱面中指定此项,因为可以节省游戏预加载音乐的元数据(用于计算长度)以提高其性能。
volume
播放音乐的音量。1.0为原音量。
它可以在通过 url 提供音频文件时使用,因为在这种情况下无法修改音乐。
offset
播放音频时谱面开始的时间(位置)。可能是正的也可能是负的(还有可能是0)。
与 start
不同在于,start
之前的音乐不会播放。请注意,如果 start
和 offset
都指定了,音频开始播放于 start
,而谱面开始于 start + offset
。
pseWarning
是否开启光敏性癫痫警告。
如果您的铺面内含有高频闪烁等任何其他可能引发光敏性癫痫患者癫痫发作的东西,您应当将此选项设定为 true
。
在玩家开始游玩您的铺面之前,如果此选项被开启,则会向玩家发出警告。
该谱面包含画面闪烁或移动的几何形状, 这可能会引发光敏性癫痫患者的癫痫发作. 建议在观看或游玩此谱面之前关闭装饰性判定线表演. 如果您出现任何症状, 例如头晕, 视力下降, 面部抽搐, 四肢抽搐, 迷失方向, 慌乱, 或暂时失去意识, 请立即停止游戏并咨询医生.
行
每一行由一个或多个声部组成。 每一声部又由多个音符和小节线组成。 每一音符又都有时值以及押数(完成一个音符所需要按下的键的数量)、是否为长音、是否有连音线等属性。
在谱面中,以控制语句或空行分隔不同的行。 所以在编写谱面文件时,请不要在同一行不同声部的中间插入控制语句或空行。
在谱面文件里,
以井号 (#
) 开头的行都将被忽略。
可以用它写注释来让其他谱师查看谱面文件时能够更好理解(就算标了也看不懂其实)。
在谱面文件出问题时,您也可以用它注释掉一部分控制语句以通过排除法快速找出错误。
控制语句
在每一行的注释之前,您可以给这一行添加一些控制语句。 每个控制语句由关键字和若干个用空格分隔的参数构成。 关键字大小写敏感,因为它们是各个控制语句的识别符。 如果您想要查阅控制语句规范,请查看控制语句
数学表达式
一些控制语句使用数学表达式作为参数,解析这些数学表达式的功能来自 math.js 。 Dododo 中存在两种不同的表达式:含 x 的表达式和不含 x 的表达式。 当我们提及到表达式而并没有提到是否该表达式是否含 x 时,我们默认此表达式含 x。