使用者:ALFalpha/chartdata
警告:Rotaeno中一切資源,包括圖像、音源、代碼等, 版權均為心動網絡所有,擅自修改、傳播,後果自負! 本頁面嚴禁鏈入及引用! |
---|
本頁面是對Rotaeno譜面格式的簡要介紹。 總論譜面文件存放於(Android apk)/assets/bin/Data/data.unity3d中。事實上,除了曲繪、音頻文件外,絕大多數的小文件都在這裡。 用AssetStudio等軟件可提取出具體的譜面文件。它們名為 <曲目id> [难度] (如:after_rain [IV]),類型為MonoBehaviour,如果事先提取了遊戲的dll文件則可以解析出詳細數據。 "EncryptedV2ChartString": "cgjn/3jVl840+fB7..." 此時得到的譜面是用AES加密的base64字符串。採用適當的密鑰解密,可以得到可供人類閱讀的譜面: # Version 2 # BPM ... # Speed ... # Note ... 解析雖說是人類可讀的譜面,但其中沒有包含任何的額外信息,想要閱讀 譜面以行為界,每行只有用逗號分隔的參數。下面詳細說明它們的作用: BPM這部分每行只有兩個參數:時間點(單位ms)和BPM大小,表示「歌曲進行到該時間點時,譜面BPM變為該值」。 大部分沒有變速的譜面,這部分只有時間原點對應的一行: 例:After Rain 难度IV # BPM 0,160 少數譜面的時間起點不是0,這可能是由音頻延遲引起的: 例:The Formula 难度IV # BPM 50,144 至於有些譜面…… 例:Rush E 难度IV # BPM 0,130 1846,30 5846,35 7560,46 8864,56 9935,67 10831,78 11600,89 12274,68 13156,115 ...(总共108行) 流速這部分每行三個參數:時間點,流速,是否漸變。這裡流速不影響時間;譜面中所有的時間都是歌曲實際進行的時間。 在這部分最早的時間點(如果有)之前,流速默認為1。這裡的流速乘上用戶設置的流速,就是譜面實際的播放速度。 可以通過流速乘上對應的持續時間計算出譜面時間,這是物件出現的位置。 流速可以為0或者負數,Inverted World 難度IV 開幕的黑線表演就是這樣實現的: 例:Inverted World 难度IV # Speed 0,1,1 1000,0.2,1 1667,0.2,1 2000,1,1 2646,6,1 2667,10000,0 2669,-8,0 3333,-0.3,1 4333,-0.3,1 4667,-1,1 5312,-8,1 5333,10000,0 5335,-8,0 6000,-1,1 6333,-0.1,1 7000,-0.1,0 7333,-1,1 7979,-8,1 8000,400,0 8002,-8,0 8667,-0.5,1 9167,0,1 10333,1,1 ... 物件這部分每行前兩個參數是固定的,分別為物件類型和時間點。根據物件類型的不同,還會有一些額外參數。物件可以不按時間順序寫! TAP0,1500,90 Tap對應物件類型0,第三個參數為角度。這裡的角度是按時鐘樣式計算的:0度為正上方,90度為水平右手方,270度為水平左手方。 FLICK1,3175,60 Flick對應物件類型1,第三個參數同樣為角度。 2,135050,120,3,0,4,16,0,0 Slide對應物件類型2,每行代表一個slide組。這裡參數很多,我們命名後逐一介紹: noteType, time, degree, slideHeadType, sildeEndDegree, slideSnap, slideCount, prevCurvature, nextCurvature
如果要寫單獨的大slide,只能寫一個slideHeadType為3,slideCount為1的slide組;要寫連續的大slide,只能一個一個寫。 ROTATE4,0,45,75,0,0 Rotate對應物件類型4。第三個參數為旋轉起點角度,第四個參數為旋轉角度,正數為順時針(紅色),負數為逆時針(藍色)。 然而實際判定並不看這兩個角度,而是看旋轉速度;這兩個參數(和後面兩個參數)是為連接引導線(黑線)而存在的。 CATCH5,11167,1 5,11667,0 Catch對應物件類型5。第三個參數為catch所在的側,0為右手側,1為左手側。Catch總在引導線上,其角度由對應時間點的引導線角度決定。 |