Replay Mod 合并時間軸
最近因為某種原因,我需要把兩條時間軸縫合成一條,但關鍵幀有點多,一個一個重設太麻煩了,可以編輯 timelines.json 把關鍵幀信息一鍵復制過去,會簡單不少。水一期專欄把成果記錄下來,這樣以后就不會忘了,那么正文正式開始。

一. 認識timelines.json
所有時間軸關鍵幀的信息都保存在 timelines.json 里,所以第一步就是把這個文件弄出來。打開 mc 根目錄的 replay_recordings 文件夾,選中 xxx.mcpr,xxx 是時間軸所在錄像的名稱,一般默認名稱是錄制日期。后綴mcpr改成zip,解壓即可得到 timelines.json,修改前最好先把原文件復制一份,便于修改失敗后回檔。用文本編輯器打開文件,可以看到一堆文字:

這個文件沒有分段空行,字全都擠在一起,有點難以辨認,但還是有規(guī)律的。簡單來說,本文件的數(shù)據(jù)結構如下:

按照這個結構,通過搜索關鍵字 keyframes/segments 可以快速把各個部分拆分出來,再稍微處理一下,看起來就清晰多了。

以下是游戲內兩條時間軸的截圖:

目前我只需要把 test1 和 test2 合并起來,所以 test3 以及其他時間軸就先不管了,可以看出文件里的信息和游戲內顯示的信息完美匹配,說明我們找對地方了,那接下來就開始合并。
二. 移動時間軸
我的目標是把 B?軸連接在 A?軸的后面,如果不加任何處理直接把b軸關鍵幀復制過去,那么兩者會直接重疊,關鍵幀全部混在一起了,這并不是我想要的結果。

所以要先把時間軸b往后移動,有兩種方法。一是可以在游戲內手動把每個關鍵幀拖拽到后面,或雙擊關鍵幀編輯時間軸系數(shù)。二是在 json 里修改關鍵幀的 "time" 信息,統(tǒng)一加上一個數(shù)字,就相當于整體往后移動了,兩個方法效果是一樣的,哪個方便就用哪個。以下是各自得出的成果:


三. 合并時間軸
終于來到最后一步了,選中 B 軸的所有關鍵幀,復制黏貼到 A 軸里,再往?segments 里添加正確數(shù)量的0即可,得到 C 軸,如圖:


最后記得把 json?內所有空行都刪掉,恢復到最初全部混在一起的狀態(tài)。保存文件,替換掉舊文檔,打成 zip 壓縮包,后綴改成?mcpr 后放回原處,進游戲測試是否能用。如果閃退并且 replay mod 報錯,說明文檔有錯誤,仔細檢查改正就行了。
以上就是合并時間軸的全部內容。同理也可以使用這個方法來把一個時間軸拆分成多個,或者進行其他修改操作。

完