Cytus是雷亚游戏公司(Rayark)于2012年1月发布的一款音乐游戏。
绝对称得上是一款品质上乘的游戏。
对于我们游戏开发者而言,最想了解的,就是它核心内容的制作方式了。
那么,今天我们就来解析一下它所使用的谱面文件吧。
首先,我们来一个文件全貌一览(取自Cytus,Deemo章节Hua-sui-yue,简单难度):
VERSION 2
BPM 148.001968
PAGE_SHIFT 0.300000
PAGE_SIZE 1.621600
NOTE 0 6.526000 0.900000 1.200000
NOTE 1 8.148000 0.350000 0.000000
NOTE 2 8.959000 0.650000 0.000000
NOTE 3 9.567000 0.150000 1.200000
NOTE 4 9.567000 0.850000 1.200000
NOTE 5 13.013000 0.250000 0.000000
NOTE 6 13.824000 0.600000 0.000000
NOTE 7 14.635000 0.100000 0.816667
NOTE 8 14.635000 0.850000 0.800000
NOTE 9 16.256001 0.350000 0.000000
NOTE 10 17.066999 0.700000 0.000000
NOTE 11 17.878000 0.150000 0.816667
NOTE 12 17.878000 0.900000 0.800000
NOTE 13 19.499001 0.250000 0.000000
NOTE 14 20.309999 0.650000 0.000000
NOTE 15 21.121000 0.350000 0.000000
........................................................
NOTE 226 141.526001 0.500000 0.000000
NOTE 227 142.642868 0.250000 0.000000
NOTE 228 142.692932 0.200000 0.000000
NOTE 229 142.742996 0.150000 0.000000
LINK 217 218 219
LINK 143 144 145 146 147 148 149 150 151 152 153 154 155
LINK 221 222 223 224
LINK 227 228 229
LINK 126 127
从上面数据可以看出,是用明文写成的。
所以,我们就省却了读取二进制这么一个环节。
接下来,咱们分析一下,上面的数据都是什么意思。
VERSION 2
BPM 148.001968
PAGE_SHIFT 0.300000
PAGE_SIZE 1.621600
VERSION 2
-- 这是文件固定的格式版本说明,一般都是 VERSON 2
BPM 148.001968
-- BPM是每分钟节拍数,后面的数字会随着音乐的不同而不同。
PAGE_SHIFT
-- 该字段用于确定第一个NOTE的位置。
-- 该位置是以扫描线从下方折返回来,到第一个NOTE的击打时间之间的间隔来计算的,单位为“秒”。
PAGE_SIZE
-- 扫描线两次这番之间的时间间隔,单位为“秒”。
-- 注意,BPM总是等于 (240 / PAGE_SIZE)。
接下来是关于打击点部分。
这一部分包含了除锁链之外的全部打击方式,包括(单个NOTE、长按NOTE)
为了简单明了,我根据空格来分隔为5列的表格。
NOTE | 0 | 6.526000 | 0.900000 | 1.200000 |
NOTE | 1 | 8.168000 | 0.350000 | 0.000000 |
NOTE | 2 | 8.959000 | 0.650000 | 0.000000 |
NOTE | 3 | 9.567000 | 0.150000 | 1.200000 |
NOTE | 4 | 9.567000 | 0.850000 | 1.200000 |
第一列是NOTE,也就是打击点。固定。
第二列是序号,默认从0开始,正序排列。
第三列是时间点,从音乐文件开始播放算起,单位为“秒”。
第四列是NOTE的横向坐标,范围是(0 - 1)。
第五列是长按的时间,单位为“秒”。若此列全为0则无需长按。
最后是LINK部分,这一部分是用于表示锁链NOTE的。
LINK 217 218 219
LINK 143 144 145 146 147 148 149 150 151 152 153 154 155
一行表示一个锁链,列数不固定。
两个NOTE之间用空格分割。
总体而言,这个格式非常简单,而且这款游戏的核心内容都不在格式中体现。
更多的逻辑比如:锁链箭头的方向指向等等,这些都是游戏本体中计算得出的。
以上就是本文的所有内容,如果您有任何疑问,请在下方评论区中评论。
感谢您的支持!