XaiJu
nalulululuna
nalulululuna

fanbox


ノーツの当たり判定 (ビートセイバー豆知識)

今回はビートセイバーのノーツの当たり判定について書いてみようと思います。


ビートセイバーのノーツの当たり判定は、目に見えるノーツモデルの外側に大きい直方体と、内側に小さい立方体の二種類用意されています。

twitter post: 1337526866035404801

大きいほうの当たり判定は、セイバーとノーツが同じ色の場合のみに反応し、同色セイバーをこの部分に当てればノーツが切れる一方で、異なる色のセイバーがここに当たっても、ミスにはならず何も起こりません。


小さいほうの当たり判定は、セイバーとノーツが異なる色の場合でも反応し、このときはミス(バッドカット)判定となります。


何のためにこのような仕様になっているのかというと、単純にプレイフィールを良くするためです。人間、自分に都合の良い嘘は気持ち良く流す一方で、不利になる嘘に対しては大きな理不尽を感じるものです。ですので、ゲーム作りの流儀として、プレーヤーに利する当たり判定は大きく、害する当たり判定は小さく、というのが定石になっています。


上の画像の通り、この2つの当たり判定の違いはかなり大きいので、下の動画の0:05のような赤青が同じ場所に重なったノーツでも、ほぼ同時に赤と青のセイバーでこの場所を振れば、両方のノーツがミスなく切れるようになっています。

twitter post: 1333752884178030594


気になる当たり判定の大きさは、現行バージョンのビートセイバー(1.19.0)では以下のようになっています。(以下Unityの1単位を1mとして)


大きいほうの当たり判定:

縦 50cm 横 80cm 奥行き 100cm (当たり判定の中心は、ノーツの中心から25cm手前)

小さいほうの当たり判定:

縦 36cm 横 36cm 奥行き 36cm

見た目の大きさ (およそ):

縦 47cm 横 47cm 奥行き 47cm (公式のデフォルトノーツ)

縦 40cm 横 40cm 奥行き 40cm (カスタムノーツのデフォルトテンプレート)


また、ノーツを切ったとき、どのくらい中心近くを切ったかで0~15点の加点が入りますが、この最大の15点が入る大きさはどのくらいでしょう。この部分の計算は


n = 1.0 - Clamp01(distance / 0.3);

score = RoundToInt(15.0 * n);


という処理になりますが、わかりやすく直すと下記のようになります。


1. 30cm - 中心までの距離[cm]、マイナスになったときは0点

2. 1.を2で割って四捨五入(厳密には四捨五入ではなく.5の場合、偶数のほうに丸める)


つまり、中心から20cm離れていれば、(30-20)/2=5点、10cm離れていれば(30-10)/2=10点、わかりやすいですね。そして、最大15点を出すためには中心から1cm未満であればよいので、直径2cmの範囲を狙って切る、ということになります。


ちなみにセイバーのほうの当たり判定は直線です。太さはなく、セイバーの刃部分の先端と末端を結んだ長さ 1m の直線が、判定に使用されるセイバーの実体です。また、どんな見た目のカスタムノーツやカスタムセイバーを使用しても、当たり判定は変わりません。

(Twitter)


(Twitter)


ノーツの当たり判定 (ビートセイバー豆知識)

More Creators