XaiJu
nalulululuna
nalulululuna

fanbox


ノーツを切るべきタイミングと位置 (ビートセイバー豆知識)

ビートセイバーの譜面データには、各ノーツが曲開始から何拍目(beat)で切るべきか、という時間情報が入っています。この拍(beat)を曲のbpmで割ると、分に換算されます。さらに60を掛けると秒になります。


例えば公式曲 Jaroslav Beck - Beat Saber のノーツ配置データ(Easy.dat)はこんな感じ。_timeの横の数字が、その時間情報になります。


"_notes":[

{"_time":8.0,"_lineIndex":2,"_lineLayer":0,"_type":1,"_cutDirection":1},

{"_time":14.0,"_lineIndex":3,"_lineLayer":0,"_type":1,"_cutDirection":3},

{"_time":16.0,"_lineIndex":1,"_lineLayer":0,"_type":0,"_cutDirection":1},

{"_time":24.0,"_lineIndex":2,"_lineLayer":0,"_type":1,"_cutDirection":3},

...(以下略)


Mediocre Map Assistant 2でこの譜面を開くと、ちょうど8のところに最初のノーツが、14のところに次のノーツがあるのがわかりますね。


譜面情報(Info.dat)は

"_beatsPerMinute":166.0,

のように166bpmとなっているので、ノーツを切るべき時間は順に


2.89秒

5.06秒

5.78秒

8.67秒

...


となります。(例外として、途中でbpm変更イベントが入る譜面もあります)


それでは、この「切るべき時間」のとき、ノーツはどこにあると思います?プレーヤーの体の真横でしょうか?それとも、セイバーの刃部分の長さは1mあるので、プレーヤーから1m離れたところでしょうか?


正解は、プレーヤーの頭(HMD)から0.9m手前(1.24.0現在のバージョンでは0.65m)です。これはビートセイバー内部のノーツを発生させている処理を追っていくとわかる数字なのですが、これだけで終わるのも何なので、実際に見てみましょうか。


追記:

下記の動画の通り、昔のバージョンでは0.9mだったのですが、最近のバージョンでは0.65mになっています。(1.22.0/1.24.0で確認)


youtube post: YzYnsYix_gg

動画では、検証のためmodで頭位置を原点(z=0)に強制固定して、曲の再生速度は1/10にしています。ノーツの上に出ている座標のZ軸が奥行き方向。このように、ノーツは2.89秒の時点で0.9mの地点を通っているのがわかると思います。

この位置よりも奥や手前で切る場合は、(理論的には)音とのズレが生じていることになりますが、みなさんが普段ノーツを切っている位置はどのあたりだと思います?これも感覚で知ることは難しいので、切ったタイミングが早いか遅いか表示するmodをそのうち作ろうと思ってます。


振りの大きさやノーツの中心を切れたかどうかではなく、タイミングのみで点数を出すmodもおもしろいかもしれませんね。ビートセイバーを純粋な音ゲーとして遊ぶ形になります。


(YouTube)


ノーツを切るべきタイミングと位置 (ビートセイバー豆知識) ノーツを切るべきタイミングと位置 (ビートセイバー豆知識) ノーツを切るべきタイミングと位置 (ビートセイバー豆知識)

More Creators