攻沙私服玩家是可以自己做乐谱的,但是很多玩家都不知道乐谱代码是怎么做出来的。鉴于游戏里和贴吧上很多朋友找我要乐谱的代码,毕竟授人以鱼不如授人以渔。所以今天在这里放出教程,叫大家如何制作自己的乐谱。
首先有必要科普一下,攻沙私服中乐谱用的东西叫做MML(Music Macro Language),所谓 Music Macro Language(音乐宏语言)是电脑上所使用表示乐谱的语言之一,它以循序的方式来表示乐谱。
CDEFGAB:也就是大家都知道音符
+ 为升记号,- 为降记号,比如A+2 升A附点二分音符。
R为休止符,R1全休止符最长,R2 R4.......R64 .(没错是一个点)最短
O指定八度,后面跟随的数字表示乐器演奏哪个八度
> < 控制乐谱高八度或低八度,>表示高八度,<反之。
L 指定音符时值,使用此方式指定如果“A”~“G”或是“R”之后没有接数字的话代表的音符时值为何。常见的默认值为四分音符,如“L4CCCC”表示四个C的四分音符。
V 指定音量大小,后面跟随的数字可指定之后演奏乐器的音量大小,默认100,最大127。
T 指定乐器的速度,例如“T120”表示以120BPM(beats per minute)来演奏。
上面说完了最基本的东西,接来下说说音轨(说实话我不知道怎么翻译好)。我们以下面的这段简单的代码为例,CDEFGAB我们把他这样写。
c r4 e r4 g r4 , // 第一行
r4 d r4 f r4 a //第二行
虽然写法不一样,但是听起来还基本是一回事。
注意上面第一行的逗号,那就是一个音轨结束的标志。我现在来解释下,当第一行运行到C的时候,第二行刚好处于R4,所以你懂得。我们只听到第一行的C,然后当第二行运行到D的时候,这时候第一行刚好处于R4 ,所以我们也只听到第二行发出的D。后面的道理都是和前面一样了,当然我们在游戏里不会这么写,这么写只是为了让大家比较容易理解。
cr4er4gr4,r4 dr4fr4a ←这是正确的做法
我觉得是时候祭出神器了
神器1:MML Player
这是一个歪果仁写的开源小软件,如果你电脑上没有.net环境应该是不能运行滴。这个软件不是必需品,但是游戏里面蛋疼的编辑会让你生不如死,所以我一般都会在这外面修改,Ctrl+a(z,y,c,v)这些快捷键都可以使用的 )。
附上网址https://bitbucket.org/openminded/mml/downloads
这是软件界面(度娘上应该能找到汉化版的)我这里就用英文版了
简单介绍下软件,上面的工具栏就不做过多的介绍了,和其他软件一样,文件、编辑、视图、音轨、控制、设置、帮助。
大家有看到一个红色的齿轮吧(Track1)也就是第一个音轨,然后我们导入MID 点击文件(file)->导入标准mid文件(import standard midi file ),我导入了一个比较简单的mid 文件。
里面只有两个音轨,但是查看track1里面的内容,只有t120一个东西。/* */里面的东西不必理会,这个t120前面有看的都应该知道是什么意思了吧。
然后我们查看track2
密密麻麻的全是字母。
看上面窗口会比较形象,这里就不多做编辑了,File(文件)->export mml to clipboard(导出MML到粘贴板) 或者你可以直接F7取消对track1 的勾选。
点击copy MML 这时候粘贴一下就可以了(记得在代码的最前面加上t120 不要问我t120哪里来的 )。当然这个明显长度太长,4171个char。所以回到3MLE
我相信很多吧友都会猜出来了吧,我把它删到了这里。
这个时候再F7或者这个
402个字符,完全可以接受了,,最后基本就是可以用了。不过攻沙不支持r32这样的写法,要修正。要不然节奏是有问题的,表现就是音轨错位,要写成r32r64后面的音符也需要改写,要选择音符变为浮点音符。
基本上制作乐谱代码的方式就是这样了,有这方面兴趣的玩家可以去尝试下,我个人感觉如果自己学会了,不管什么曲子都可以自己做,不需要求别人了。