关卡文件格式 - Rizline中文维基
Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
本页面参考了非本维基百科的内容。

本页面对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类型对象。若创建引导线时未添加判定环,则对象内rgba的值均为0。
  • []endColor:结束颜色,即到下一个起始时间前或引导线结束时判定环的颜色。两者之间判定环颜色均匀过渡。此对象为color类型对象。若创建引导线时未添加判定环,则对象内rgba的值均为0。
  • Ftime:起始时间,即应用startColor时对应的时间。单位为tick。

lineColor数组

[]lineColor数组用于存储引导线的整体颜色。lineColor数组可以并列存储多个对象。若未指定整体颜色,则此数组为空。此数组生效时会将其颜色的rgba通道与节点的rgba通道混合后应用于对应节点,并保留节点的透明度值。

lineColor数组下属对象

{}lineColor数组下属对象包含以下参数:

  • []startColor:起始颜色。此对象为color类型对象。
  • []endColor:结束颜色,即到下一个起始时间前或引导线结束时的引导线整体颜色。两者之间引导线整体颜色均匀过渡。此对象为color类型对象。
  • Ftime:起始时间,即应用startColor时对应的时间。单位为tick。

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。
Cookies help us deliver our services. By using our services, you agree to our use of cookies.