Cytus是雷亚游戏公司(Rayark)于2012年1月发布的一款音乐游戏。

绝对称得上是一款品质上乘的游戏。

rayspark游戏 rayark游戏有哪些_数据


对于我们游戏开发者而言,最想了解的,就是它核心内容的制作方式了。

那么,今天我们就来解析一下它所使用的谱面文件吧。


rayspark游戏 rayark游戏有哪些_数据_02

首先,我们来一个文件全貌一览(取自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)

rayspark游戏 rayark游戏有哪些_bpm_03

为了简单明了,我根据空格来分隔为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的。

rayspark游戏 rayark游戏有哪些_数据_04

LINK 217 218 219 
LINK 143 144 145 146 147 148 149 150 151 152 153 154 155

一行表示一个锁链,列数不固定。

两个NOTE之间用空格分割。


总体而言,这个格式非常简单,而且这款游戏的核心内容都不在格式中体现。

更多的逻辑比如:锁链箭头的方向指向等等,这些都是游戏本体中计算得出的。


以上就是本文的所有内容,如果您有任何疑问,请在下方评论区中评论。

感谢您的支持!