关卡文件格式
More languages
More actions
| 本页面参考了非本维基百科的内容。 |
本页面对Rizline关卡文件的文件格式进行说明。
概述
Rizline关卡文件使用JSON格式进行编写。
| Rizline关卡JSON文件类型树 |
|---|
为方便描述,我们约定tick代表一个节拍的时间,即: [math]\displaystyle{ \text{1 tick}=\frac{60}{BPM}s }[/math]。
根结构root
根结构root下有如下参数:
- IfileVersion:文件版本。目前除TempestIN 14关卡文件中此值为
1外,所有官方谱面的关卡文件中此值均为0。 - SsongsName:曲目名称。此项可以为空。
- FbPM:曲目基础BPM的值。
- IchartDelayMs:关卡相较于曲目的偏移值,单位为ms。
- Foffset:目前所有官方谱面的关卡文件中此值均为0.0。
- []themes:储存关卡的主题色。
- []challengeTimes:储存关卡的Riztime时间。
- []bPMShifts:储存曲目的BPM变化。
- []lines:储存关卡的引导线、判定环与音符。
- []canvasMoves:储存关卡的画布移动与画布流速。
- {}cameraMove:储存关卡的摄像机移动与缩放。
color类型
color类型对象包含以下四个键值对:
- Ir:颜色的红色通道的强度值。范围为0-255。
- Ig:颜色的绿色通道的强度值。范围为0-255。
- Ib:颜色的蓝色通道的强度值。范围为0-255。
- Ia:颜色的透明度通道的强度值。范围为0-255。
keyPoint类型
keyPoint类型对象包含以下四个键值对:
- Ftime:应用改变的时刻。单位为tick。
- Fvalue:改变值。
- IeaseType:缓动类型。
- FfloorPosition:累计值。
floorPosition
当FfloorPosition表示高度累计值时,若:
- [math]\displaystyle{ T_i }[/math]表示该画布第[math]\displaystyle{ i }[/math]次改变画布流速的时刻;
- [math]\displaystyle{ V_i }[/math]表示该画布第[math]\displaystyle{ i }[/math]次改变画布流速;
- 此次应用改变的时刻为[math]\displaystyle{ T }[/math];
- [math]\displaystyle{ T_n\lt T\lt T_{n+1} }[/math];
- [math]\displaystyle{ T_1=0 }[/math],
则:
| [math]\displaystyle{ floorPosition=V_n\cdot(T-T_n)+\sum_{i=1}^{n-1}V_i\cdot(T_{i+1}-T_i) }[/math] |
themes数组
[]themes数组用于储存关卡的主题色。themes数组至少并列存储两个对象且可以并列存储多个对象,且这些对象从前至后依次存储常规主题色、第一个Riztime主题色、第二个Riztime主题色(若有),以此类推。themes数组下的每个对象中包含且只包含一个colorsList数组。
colorsList数组
[]colorsList数组用于存储单组主题色。colorsList数组下包含三个color类型对象,这三个对象从前至后依次对应:
- 关卡背景颜色
- 音符颜色、计量条颜色、星数颜色、MOD颜色
- UI颜色(打击特效颜色)
challengeTimes数组
[]challengeTimes数组用于存储Riztime起止时间。themes数组可以并列存储多个对象且至少存储一个对象。这些对象从前至后依次存储第一个Riztime起止时间、第二个Riztime起止时间(若有),以此类推。
challengeTimes数组下属对象
{}challengeTimes数组下属对象中包含以下四个键值对:
- FcheckPoint:检查点,默认为0.0。
- Fstart:Riztime开始时间,单位为tick。
- Fend:Riztime结束时间,单位为tick。
- FtransTime:Riztime转换时间,即由常规段落完全转换至Riztime、由Riztime完全转换为常规段落的持续时间,单位为s。
bPMShifts数组
[]bPMShifts数组存储曲目的BPM变化。bPMShifts数组可以并列存储多个对象且至少存储一个对象,即使曲目的BPM没有变化。这些对象从前至后依次存储第一次BPM变化(若有)、第二次BPM变化,以此类推。
bPMShifts数组下属对象
{}bPMShifts数组下属对象属于keyPoint类型对象,包含四个键值对:
- Ftime:BPM改变的时刻,单位为tick。若BPM无变化,此值为0.0。
- Fvalue:BPM倍率。即改变后的BPM等于基础BPM乘以此值。若BPM无变化,此值为1.0。
- IeaseType:缓动类型。此值恒为0。
- FfloorPosition:BPM改变的时刻,单位为s。若BPM无变化,此值为0.0。
lines数组
lines数组存储关卡的引导线、判定环与音符。lines数组可以并列存储多个对象,并按照绘制引导线的先后顺序依次存储。
lines数组下属对象中包含以下四个数组:
- []linePoints:存储引导线的节点。
- []notes:存储音符,若此引导线没有放置音符则此数组为空。
- []judgeRingColor:存储判定环颜色。
- []lineColor:存储引导线的线色覆盖。
linePoints数组


[]linePoints数组存储引导线的节点。linePoints数组至少并列存储两个对象且可以并列存储多个对象。本数组包含以下参数:
- Ftime:引导线节点所处时刻,单位为tick。
- FxPosition:引导线节点的横向坐标。
- {}color:节点的颜色。此对象为color类型对象。相邻两节点之间的引导线颜色为这两个节点颜色的均匀过渡。
- IeaseType:该节点到下一个节点之间的缓动类型。
- IcanvasIndex:画布索引,即此节点所在的画布。
- FfloorPosition:高度累计值,即该节点在所在画布中距离初始时刻线的垂直距离。
notes数组
[]notes数组用于存储音符。notes数组可以并列存储多个对象,并按照时间先后顺序依次存储。Rizline Editor内不允许在同一条引导线内放置两个击打时间相同的音符。
notes数组下属对象
{}notes数组下属对象内存在以下参数:
- Itype:音符类型,允许的值为0、1和2。其中:
- 0代表Tap音符;
- 1代表Drag音符;
- 2代表Hold音符。
- Ftime:音符(Hold为头部)所处时刻,单位为tick。
- FfloorPosition:高度累计值,即该音符(Hold为头部)在所在画布中距离初始时刻线的垂直距离。
- []otherInformations:额外信息。若音符为Tap或Drag则此值为空。
otherInformations数组
otherInformations数组包含以下三个值:
- F:第一个值,代表Hold尾部所处时刻,单位为tick。
- F:第二个值,代表Hold尾部所在画布。
- F:第三个值,代表Hold尾部的高度累计值。
judgeRingColor数组
[]judgeRingColor数组用于存储判定环。judgeRingColor数组可以并列存储多个对象且至少存储一个对象,即使在创建引导线时未添加判定环。
judgeRingColor数组下属对象
{}judgeRingColor数组下属对象包含以下参数:
- []startColor:起始颜色。此对象为color类型对象。若创建引导线时未添加判定环,则对象内
r、g、b、a的值均为0。 - []endColor:结束颜色,即到下一个起始时间前或引导线结束时判定环的颜色。两者之间判定环颜色均匀过渡。此对象为color类型对象。若创建引导线时未添加判定环,则对象内
r、g、b、a的值均为0。 - Ftime:起始时间,即应用
startColor时对应的时间。单位为tick。
lineColor数组
[]lineColor数组用于存储引导线的线色覆盖。lineColor数组可以并列存储多个对象。若未指定整体颜色,则此数组为空。此数组生效时会将其颜色的rgba通道与节点的rgba通道混合后应用于对应节点,并保留节点的透明度值。
lineColor数组下属对象
{}lineColor数组下属对象包含以下参数:
canvasMoves数组
[]canvasMoves数组用于存储画布移动与画布流速。canvasMoves数组可以并列存储多个对象且至少存储一个对象。
canvasMoves数组下属对象
{}canvasMoves数组下属对象包含以下参数:
- Iindex:画布索引。
- []xPositionKeyPoints:画布的横向移动。xPositionKeyPoints数组可以并列存储多个对象且至少存储一个对象,即使画布未移动。xPositionKeyPoints对象属于keyPoint类型对象。
- []speedKeyPoints:画布流速。speedKeyPoints数组可以并列存储多个对象且至少存储一个对象,即使画布流速是恒定的。speedKeyPoints对象属于keyPoint类型对象。
xPositionKeyPoints数组下属对象
{}xPositionKeyPoints数组下属对象包含以下四个键值对:
- Ftime:画布开始移动的时刻,单位为tick。若画布未移动,则此值为0.0。
- Fvalue:画布移动后的横向坐标。若画布未移动,则此值为0.0。
- IeaseType:画布移动的缓动类型。若画布未移动,则此值为0。
- FfloorPosition:此值恒为0.0。
speedKeyPoints数组下属对象
{}speedKeyPoints数组下属对象包含以下四个键值对:
- Ftime:画布流速开始改变的时刻,单位为tick。若画布流速未改变,则此值为0.0。
- Fvalue:改变后的画布流速。若画布流速未改变,则此值为默认值。
- IeaseType:此值恒为0。
- FfloorPosition:画布流速开始改变时的高度累计值。
cameraMove对象
{}cameraMove对象用于存储摄像机的移动和缩放。cameraMove对象包含以下数组:
- []scaleKeyPoints:摄像机的缩放。scaleKeyPoints数组可以并列存储多个对象且至少存储一个对象,即使摄像机的缩放倍率是恒定的。scaleKeyPoints对象属于keyPoint类型对象。
- []xPositionKeyPoints:摄像机的横向移动。xPositionKeyPoints数组可以并列存储多个对象且至少存储一个对象,即使摄像机未移动。xPositionKeyPoints对象属于keyPoint类型对象。
scaleKeyPoints数组下属对象
{}scaleKeyPoints数组下属对象包含以下四个键值对:
- Ftime:摄像机缩放倍率开始改变的时刻,单位为tick。若摄像机缩放倍率未改变,则此值为0.0。
- Fvalue:改变后的摄像机缩放倍率。若摄像机缩放倍率未改变,则此值为默认值。
- IeaseType:摄像机缩放的缓动类型。若摄像机缩放倍率未改变,则此值为0。
- FfloorPosition:此值恒为0.0。
xPositionKeyPoints数组下属对象
{}xPositionKeyPoints数组下属对象包含以下四个键值对:
- Ftime:摄像机开始移动的时刻,单位为tick。若摄像机未移动,则此值为0.0。
- Fvalue:摄像机移动后的横向坐标。若摄像机未移动,则此值为0.0。
- IeaseType:摄像机移动的缓动类型。若摄像机未移动,则此值为0。
- FfloorPosition:此值恒为0.0。