Beat Saber は、ノーツを切る VR ゲームですが、このノーツの動きにはすこし変わった特徴がありますね。よくある音ゲーのように直線でまっすぐ飛んでくるわけではなく、前方の一定間隔離れたところから浮き上がってくるような動きになっていることは、みなさんもご存じの通りです。
この浮き上がりの開始位置は、各譜面ごとに決められた値が入っていますが、ユーザー設定の Jump Distance でそれを上書きすることも可能です。正確な計算方法は下記の記事で触れています。

ビートセイバーでは、VR空間内で自由に立ち位置を変えることができます。プレイエリアが許す範囲で、いくらでも前に、あるいは後ろに立つことが可能です。 このとき、ゲーム内ではいったいどういう違いが発生しているのか、どちらに立ったほうが有利なのか、考えたことはありませんか? ノーツを切るタイミング ビートセ...
それではノーツの高さはどうやって決まっているのでしょうか?浮き上がってくる最高点の高さは、下記記事で調べてみたことがあります。

ビートセイバーにある身長設定 (Player Height)、この数字が実際どのようにノーツ位置に影響するか知りたくありません?影響は高さだけなのか、どのくらい変わるのか。 ノーツの高さは、一定位置 (Note Jump Offset) から浮かび上がり、重力に影響されながら浮かび上がる勢いがだんだん落ちつつ、ノーツを切るべき位置で...
それでは最高点以外の、浮き上がり途中の中間位置の高さはどのように決まっているのかというと…
(高さ方向(y 座標)だけを考えたとして)
位置 = 初期位置 + 初速 * 時間 - 0.5 * 重力 * 時間 * 時間
となります。この式なんか見たことありませんか?高校で習いましたよね。物理の斜方投射です。
斜方投射 - Wikipedia
https://ja.wikipedia.org/wiki/%E6%96%9C%E6%96%B9%E6%8A%95%E5%B0%84
ここにある下記の式
g が重力
t が時間
v0 t sinΘ が初速
y0 が初期位置
とそのままですね。ビーセイのノーツは斜方投射だった!
それではノーツの高さの違い、いわゆる上段ノーツ、中段ノーツ、下段ノーツの違いはどこから生まれているのか、というと、ノーツの段の違いによって、下記のように重力と初速がそれぞれ変化するようになっています。
重力 = (最高位置 - 初期位置) * 2 / 到達時間^2
初速 = 重力 * 到達時間
*最高位置 = 下段0.85, 中段1.4, 上段1.9 + 身長で+/-補正
*初期位置 = 0.25
*到達時間 = Note Jump Duration * 0.5 = (Note Jump Distance / NJS) * 0.5
これによって、ちょうど到達時間のところで、ノーツが浮き上がりきった状態になるような形になっています。
Beat Saber のノーツの動き、意外と込み入った制御をしていて、奥が深いですね。学校の勉強なんて役に立たない、使わない、なんて話もよく聞きますが、ふとした機会にこういう見覚えのある式が出てくると、ああ、やったやった、って懐かしい気持ちになりません?