Score Saber や Beat Leader にはリプレイを録画して、それを再生する機能が備わっていますが、いろいろ内部を調べていると、どうも Beat Saber 本体にも同様のリプレイ機能が入っているようです。
おそらく開発のテストやマーケティングなどのために用意された機能で、ユーザーが使うことは想定されていません。ただ、おもしろそうなのでこの機能を有効化する方法を探ってみました。
このリプレイ機能は、Beat Saber のコマンドラインオプションに
--enable_recording_tool
を指定し、その後にリプレイ機能用の設定ファイルの場所を指定すると、その設定ファイルの内容に従ったモードで Beat Saber が起動するようです。たとえば Steam 版であれば、
"C:\Program Files (x86)\Steam\steam.exe"
-applaunch 620980 --enable_recording_tool (設定ファイルの場所)
というようなコマンドで Beat Saber を起動する形になります。
では、その設定ファイルはどのように記述するのかというと、一例を挙げると以下のようになります。
{
"mode": "Solo",
"packID": "",
"levelID": "100Bills",
"difficulty": "Expert",
"characteristic": "Standard",
"runLevel": true,
"recordPerformance": false,
"recordingMode": "Record",
"recordingPath": "C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/Recording",
"cameraView": "FirstPerson",
"addDateTimeSuffixToRecordingName": false,
"screenshotRecording": false,
"screenshotWidth": 1920,
"screenshotHeight": 1080,
"framerate": 30,
"playbackScreenshots": [
{
"name": "Screenshots",
"type": "Background",
"includedLayers": [ "Everything" ]
}
],
"practice": true,
"startSongTime": 0.0,
"songSpeedMultiplier": 1.0,
"overrideEnvironments": false,
"saveToOldFormat": true
}
この内容を D:\a.json に保存し、
"C:\Program Files (x86)\Steam\steam.exe"
-applaunch 620980 --enable_recording_tool D:\a.json
というようにコマンドラインを指定して Beat Saber を起動すると、100Bills Expert のリプレイを記録することができます。リプレイファイルは recordingPath に指定したフォルダに保存されます。
プレイ中、画面右には「🔴RECORDING」の表示が点滅し、いかにも記録中です、という雰囲気が出ています。
では、この記録されたリプレイを再生するにはどうするかというと、下記のように設定ファイルの記述を変えて制御します。上記とほとんど同じですが、recordingMode のところを Playback に変更しています。これで、リプレイ再生モードで Beat Saber を起動できるようになります。
{
"mode": "Solo",
"packID": "",
"levelID": "100Bills",
"difficulty": "Expert",
"characteristic": "Standard",
"runLevel": true,
"recordPerformance": false,
"recordingMode": "Playback",
"recordingPath": "C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/Recording",
"cameraView": "FirstPerson",
"addDateTimeSuffixToRecordingName": false,
"screenshotRecording": false,
"screenshotWidth": 1920,
"screenshotHeight": 1080,
"framerate": 30,
"playbackScreenshots": [
{
"name": "Screenshots",
"type": "Background",
"includedLayers": [ "Everything" ]
}
],
"practice": true,
"startSongTime": 0.0,
"songSpeedMultiplier": 1.0,
"overrideEnvironments": false,
"saveToOldFormat": true
}
この状態でさきほどと同じようにコマンドライン指定で起動すると、recordingPath に記録されたリプレイが再生されます。
ご覧のように、ユーザーが使うことは想定されていない機能なので、リプレイ選択画面のようなものもありませんし、使い勝手が良いとは言えませんね。それに、すでに mod で立派なリプレイ機能が実現されているので、わざわざこれを使う必要もないでしょう。ただ、こういう隠し機能ってなんかわくわくしません?