關卡檔案格式 - 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.