beatmap - 26F-Studio/Quatrack GitHub Wiki
Quatrack的谱面使用纯文本描述,会打字就能写!后缀默认为qbp(Quatrack beatmap)
文件内容由[元数据
](#元数据)和[谱面数据
](#谱面数据)组成
元数据就是除了谱面本体以外的杂七杂八小东西,比如歌曲名、难度、曲师、谱师什么的写在文件开头若干行,目前总共有这些,复制一下改就行
$version=1.0
$mapName=
$musicAuth=
$mapAuth=
$mapDifficulty=
$songFile=
$songImage=1.jpg
$songOffset=25ms
$tracks=4
$realTracks=4
$freeSpeed=true
键 | 默认值 | 说明 | |
---|---|---|---|
$version |
必填 | - | 谱面版本,现在必须是 1.0
|
$mapName |
必填 | - | 曲名 |
$musicAuth |
必填 | - | 音乐作者 |
$mapAuth |
必填 | - | 谱面作者 |
$mapDifficulty |
必填 | - | 谱面难度,仅展示用 |
$songFile |
必填 | - | 音乐文件名(带后缀),只支持wav/mp3/ogg(应该) |
$songImage |
可选 | - | 背景图完整文件名,不写就没背景 |
$songOffset |
可选 | 0 | 音乐播放相对谱面的0时间偏移,不带单位默认 ms
|
$tracks |
可选 | 4 | 谱面使用的轨道数量 |
$realTracks |
可选 | 4 | 对玩家来说的实际轨道数量(取最大),有动画用轨就要写这个 |
$freeSpeed |
可选 | true |
是否允许玩家使用自己的流速设置 |
---O
--O-
-O--
O---
从最基本的开始,这是一个最简单的谱面
O
(大写字母O)代表单点音符,-
(半角减号)代表空白
这四行实际表现就是从左到右打四下,一行一拍(一个四分音符)
注意,是从下往上读哦,你看到什么玩家就看到什么,很直观!
---O|
--O-|
-O--|
O---|
竖线会让这一行音符占据的时间减半(键盘上是回车键上面那个,按shift输入)
---O||
--O-||
-O--||
O---||
每多加一个竖线时间就除以2,这就是16分音符(其实竖线就是简谱里的下划线,侧过来看)
---O~
--O-~
-O--~
O---~
波浪线会让这一行音符占据的时间+1拍(键盘上在1的左边按shift输入)
---O*2
--O-/2
-O--*4
O---/4
你也可以这样改变一行的时间,需要三分音的时候就得用这个
--OO
OO--
--OO
OO--
一行里可以随便摆音符,比如对拍就长这样
A---
----
----
U---
这是一个四拍的有尾判长押,很形象吧
H---
----
----
U---
这是一个四拍的无尾判长押,是不是也很形象!
---O|
--O-|
-O--|
O---|
!200
感叹号开头的行代表从此处开始的BPM是200,因为从下往上读所以写在最下面反倒是开头哦
---O|
!+1
--O-|
!+1
-O--|
!+1
O---|
!200
变速这么写(草 好丑
---O|;!+1
--O-|;!+1
-O--|;!+1
O---|;!200
可以用分号把多条同时执行的命令放在一行里,好看多了对吧!
顺便,因为谱面是从下往上读,所以一行里分号隔开的是从右往左执行,很合理(嗯
自己写的时候建议合理运用分号简化阅读,方便别人的同时也方便自己~
!200,4
“从这里开始一小节四拍”的意思,内部会开始一个计数器记录拍数
++++可以在这里随便标记一些东西,跟注释功能一样,比如“副歌结束”“前40小节”
----*4
!200,4
四个加号是手动小节线的意思,如果此时拍数计数不是4的倍数就会报错,就可以在谱面没播放的时候提前知道哪里拍子数不对,方便查错,同时也方便别人阅读。建议在合适的地方使用一些,小麻烦换大方便~
---O|
--O-|
-O--|
O---|;>1:23.54
时间标记,表示此处相对歌曲开始后的时间,可以用来跳过长度不整的休息段,或者用来暴力设置音符的精准时间(不建议)
>+1beat
>-626ms
把时间往后调1拍和把时间往前调626毫秒
时间支持ms
,s
,beat
(拍),bar
(小节,需要设置过才能用)四种单位,不写默认beat
>start
特殊用法,把时间设置到进入游戏场景的瞬间(本质是把时间设置到3.6秒),有需要在歌曲开始前提前设置轨道动画的时候用这个
需要后面搭配>0
使用,不然会和本来的零时刻开始时间对不上
----X|
----XX|
----X|
----XX|
这是随机2121
四个-
只是为了保持看着整齐,同时表示没有固定音符
右侧每一个X
代表一个“随机不叠单点”(没地方放就会报错,谱面就加载不出来)
----x|
----x|
----x|
----X|
这是四个同一列的单点
大写的X
不叠,反过来小写表示一定会叠(同样,如果上一行全是-
,没地方叠就会报错)
----x|
----R|
----x|
----L|
这是左两个叠右两个叠
L
代表“左侧轨道的一个随机音符”,R
是右侧的。跟X
一样,大写表示不叠,小写会叠
注意,对于L
和R
,奇数k的时候不包含正中间
#Techmino,好玩!
这是一条注释
#
开头的行代表这是说明用文本,不会被解析,可以标记段落或者复杂内容的说明
|2
设置一行需要写的音符数量为2个
当你在4k谱里添加了10个动画轨的时候,可以用|4
来让之后不需要每行写满总共14个音符,方便一些
注意,可能需要配合&(音符重定向)使用
%L2,L1,R1,R2
把四条轨道的名字改为L2
,L1
,R1
,R2
(4k默认就是这样)
%L1,R1,x,x
把前两条轨道的名字改为L1
,R1
(一般情况下会对应到玩家的两个食指),后面两个为无名轨(没名字就不对应键盘键位,会自动禁用对应轨道防止触屏误触,建议做动画的时候就这么空着)
%L2 L1 R1 R2,x,x,x
让第一条轨道同时有四个键的名字!四个键全都能触发第一条轨道,可以用来比如允许键盘用交互来接纵连
注意如果多个轨道都绑定了某个键,那么所有的轨道都会触发,用的时候小心哦
---O|
--O-|
-O--|
O---|;&4321
看起来是从左往右的楼梯?其实这是从右往左的!
&4321
代表让在第1/2/3/4列对应指向轨道4/3/2/1,也就是镜像对称
&2134
就是交换第1/2轨,再&2134
一次会变回来(是相对变化哦,不是直接设置为2134)
---O|
--O-|
-O--|
O---|
&1234,4321
这是随机从左往右或者从右往左的楼梯
&
后面写多个配置就会随机选一个,不写的话就会重置回默认
&A
代表随机打乱四条音符轨道实际指向的位置
^FFFF00,FFC000,FF6000,FF0000
修改2/3/4/5押的颜色为黄色,偏橙,偏红,红(超过5押的没写就跟5押一样)
不写就是使用默认配置(上面这个就是)
可以让多押提示的颜色配合曲绘,演出效果更好哦~
简单解释一下,电脑里用红+绿+蓝合成一种颜色,范围都是0~255,把三个数字转换成两位十六进制然后连起来就可以了。比如黄色是“红+绿,没有蓝”,那就是(255,255,0),就是(FF,FF,00),就是
FFFF00
----X
----*0
OO--
如果非要在一行里完全随机但是上一行有东西怕影响到,可以像这样垫一个没有时间的空行
----X;@
----X;@123
这里第一个随机音符是固定的(不过我也不知道具体在哪),后面那个才是真的随机音符
@
符号代表设置随机种子,@123
后所有随机内容都将变得一样(即使是另一个谱)
@
后跟多个数字(用逗号隔开)就会随机选一个种子,可以预先选好几套随机防止出现太意料之外的情况
参数不填就会使用系统时间,就真的随机了
====E
---O||
--O-||
-O--||
O---||
====S196
这是循环196遍的16分快乐楼梯!
四个等于号是循环标记,S
是开始标记,后面跟循环次数(不写默认2,只重复一次),E
是结束标记
-OO-||
====E
---O||
====M
--O-||
-O--||
O---||
====S196
这是循环196遍的16分快乐楼梯,但是最后一个音符变成一个双押!
循环M
代表,如果是循环的最后一次,那么到了这里就要直接跳到E
标记处结束
(这个参考了实际乐谱的设计,如果你了解的话一看就懂)
/set_judge:30ms,50ms,80ms,120ms,160ms
设置判定区间大小,参数是准度从高到低用逗号隔开的五档时间半径,单位可以是ms或者s,不写默认ms
示例就是游戏默认的判定区间尺寸
注意,这不是谱面属性,是可以打到一半变的,不过不建议(
/set_acc_points:101,100,75,0,-100
设置判定准度分,参数是准度从高到低用逗号隔开的五个百分比数字,最高的必须大于等于100(不然就打不到100了
同样,可以打到一半变的,不过也不建议(
[1]p,-100,0
将一号轨道向左移动100距离
首先是p
,代表移动轨道,[1]
代表1号轨,p
代表操作是“移动”,后面是x和y方向移动的距离(x朝右,y朝下,原点是屏幕中心,默认屏幕范围是-640~640,-360~360)
[1]position,,-100
将一号轨道向上移动100距离
移动命令可以不写x或者y,默认0
本节标题里的p
后面的position
是同义写法,完整单词也许好记一些,写长的也可以用
[1]P,0
将一号轨道移动到x=0,y为初始高度的位置
大写P代表直接设定绝对位置,不是“移动”,不写默认“初始位置”,也就是开始时的位置(之后会允许改,方便一些)
[1]r,60
顺时针旋转60度(绕底部中心),唯一的参数是顺时针旋转多少度(负的就是逆时针啦),不写默认…报错,你有问题
[1]R,60
同样,R
(r
的大写版本)表示直接指向某个角度,不写参数就是回归原位朝上
[1]s,1.5,1
水平拉伸1.5倍,竖直方向1倍(不变)
s
代表缩放轨道,两个参数不写都默认0(不变),单位是“一个轨道”(也就是默认尺寸为1)
[1]S,1.5,1
直接设置两个方向的缩放,不写默认1
[1]d,100
下落速度增加100,默认初始是1000,参数必须写
[1]D,100
设置下落速度为100,不写默认恢复初始
[1]t,-50
透明度减小50%,参数必须写
[1]T,30
设置透明度为30%,不写默认恢复初始
[1]a
反转可用性,无参数
[1]A,false
把轨道可用性设为false
(不可用),不写默认true
(可用)
[1]C,FF0000
把轨道的颜色设为红色,不写默认E6E6E6
(不瞎眼白)
[1]c,800000
把轨道的颜色的红色通道增加80(也是十六进制)(草,真的有用吗,反正我为了大小写命令都有就顺便做了)
颜色码前面可以加负号,比如-FF0000
代表清除红色通道
[1]N,100
把轨道名称显示的透明度改为100%,不写默认0%(隐藏名称)
[1]L,hide
把轨道侧线的显示模式改为hide
(隐藏)只剩底下一截判定线,不写默认normal
(正常)
其他参数:hard
(不再淡出 直接两根实心线),double
(两边对称延伸 没功能只是方便做特效),harddouble
(前两个模式合起来)
因为是在几个模式里切换,故此命令只有大写L的set模式!
跟可用性a命令语法完全一样,只是功能改成开关显示轨道底部的判定线
[1,2,3]s,2
将1、2、3号轨同时水平方向拉伸到两倍大!
需要同时操作多个轨道的时候这样就可以方便很多
[A]s,2
将所有轨道水平方向拉伸到两倍大
A
代表所有的轨道,L
和R
分别代表左右轨道(奇数k不包含正中间)
[A]P
[A]R
[A]S
将所有轨道移回原位,转至朝上,缩放改回1!
[A]P;[A]R;[A]S
为了方便,用之前的分号把他们写在同一行里
OOOO;[A]r,360
一个四押的同时触发一个动画,所有轨道旋转360度!
动画命令太多影响观察,推荐都建议这样排成一行,这样音符就不会被拆开了,方便阅读
以下列出使用不同动画曲线的“将1号轨道顺时针旋转90度”:
[1]<S>R,90
瞬间完成,没有动画效果
[1]<L,2>R,90
在2拍的时间内线性完成动画
时间单位支持ms
,s
,beat
,bar
,不写默认beat
[1]<T,1>R,90
在1拍的时间内以曲线y=-cos(x)的[0,π]段
靠近目标位置
时间单位支持ms
,s
,beat
,bar
,不写默认beat
[1]<E,2.6>R,90
指数靠近目标位置,数字越大越快,凭感觉写一个试试效果就行(
[1]<P,1,2>R,90
在1拍的时间内以曲线y=x^2的[0,1]段
靠近目标位置
时间单位同<L>
指数要求绝对值大于1,1相当于线性,2是平滑启动。负数含义特殊,比如-2就是跟2平滑启动的相反的平滑停止(1和2之间以及超过2的效果不太好描述,自己试)
全部曲线:
瞬间:`<S>`
线性:`<L,持续时间>`
指数衰减(缓减速):`<E,衰减速度>`
幂(缓加速):`<P,持续时间,指数>`
正弦(两头缓动):`<T,持续时间>`
不写高级动画默认就是 <E,12>
()
不写高级动画曲线默认就是<E,12>
(指数衰减,衰减速度为 12),一个比较自然的快速靠近
轨道可以随着时间很容易动态调整,但是音符太多了而且没法在时间轴上指定,所以这里使用“执行命令后这条轨道上出现的音符都会附加此动画”的设计
(1)C,FF0000
将一号轨道上的音符颜色设为红色,不写默认E6E6E6
(不瞎眼白)
(1)C,FF0000,FFFFFF
一号轨道上的音符“由红到白”
具体地说,所有音符都是提前2.6秒生成,此时初始为红色,然后随着时间逐渐变色,碰到线的时候完全变白
(1)C,FF0000,FF0000,FF0000,FFFFFF
一号轨道上的音符“前3/4的时间为红色,最后1/4的时间逐渐变白”
(1)T,50
将一号轨道上的音符的不透明度设为50%,不写默认80%
(1)T,100,100,100,0
同颜色,一号轨道上的音符“前3/4的时间完全可见,最后1/4的时间逐渐消失”
(1)X,-10,10,-10,10,0
同样,一号轨道上的音符“左右摇晃着下落直到碰到判定线”
(1)Y,-10,10,-10,10,0
同样,一号轨道上的音符“上下抽搐着下落直到碰到判定线”
所有这些音符动画的持续时间段都是:
从音符出现(打击提前2.6秒,暂时不能改)到音符打击的瞬间
掉到判定线以后的位置就持续为最后一个值
ctrl+alt+1/2/3/4/5可以调节谱面播放速度,方便调试动画或者校准偏移什么的
下表列出了可以代替符号的命令式写法:
符号 | 对应命令 | 说明 |
---|---|---|
!222 !+1 !180,4 |
/bpm:222 /bpm:+1 | 设置BPM 调节BPM 设置BPM同时设置拍号开始计拍子数 |
>01:23.456 >+26ms |
/time:1:2:3.4 | 时间标记,有加减号表示相对调整,单位支持ms/s/beat/bar,特殊用法 >start 切到正式开始前 |
++++Quatrackiscool |
/bar_line | 手动小节线,确认拍子数是拍号整倍数否则主动报错,后面注释 |
@626 |
/rnd_seed | 设置随机种子,多个随机一个,留空重置随机 |
====E |
/rep_e | 循环尾 |
====M |
/rep_m | 循环断点,最后一次循环不走完 |
====S8 |
/rep_s:8 | 循环头,到下一个循环尾前总共反复8次 |
&2143 |
/redirect_note:2143 | 音符重定向 |
%L2,L1,x,R1 R2 |
/rename_track:L2,L1,x,R1 R2 | 轨道重命名,按键会触发所有包含按键名的轨道。x表示无名(会顺便自动禁用),空格分隔多名 |
^FFFF00,FF0000 |
/set_chord_color:FFFF00,FF0000 | 设置多押颜色,从双押开始,超过的都用最高,留空回到默认 |
|4 |
/set_note_need:4 | 设置每行需要写的音符数量,默认是轨道数 |
以下命令没有符号 | ||
- | /set_judge:30ms,50ms,80ms,120ms,160ms | 设置判定区间大小,参数是准度从高到低用逗号隔开的五档时间半径,单位可以是ms或者s,不写默认ms |
- | /set_acc_points:101,100,75,0,-100 | 设置判定准度分,参数是准度从高到低用逗号隔开的五个百分比数字,最高的必须大于等于100(不然就打不到100了 |
轨道动画和音符动画的命令式写法:
/set_track:要调整的轨道id;<动画模式,参数1,参数2,...>操作名,参数1,参数2,...
/set_note:该id轨道的音符在这条命令后的属性;操作名,参数1,参数2,...
你已经学会Quatrack所有的谱面语法了!
以后还会添加各种各样有趣的新音符/动画命令,有什么需要都可以提!
请持续关注本游戏哟!