見出し画像

スプラトゥーン3の弾の命中率について #2 命中率計算

 こんにちは。スプラトゥーン3のシューター等のブキの弾ブレの式から命中率を計算してまとめたので、共有したいと思います。

 今回の記事では命中率計算のための数式やパラメーターを調べていきます。結果だけ見たい人は次の記事へ。

 なお、前回の記事に引き続きこの記事でもつーさんの動画を参考にしています。ほんの少しだけ手法が違いますが、出てくる結果に差はほとんどありません。ぜひご覧ください。

命中率の式

命中率計算

 前回の記事から、ブキが弾を撃って弾が狙った方向からx°以内に収まる確率は、次の式で表されることが分かりました。

$$
P(x,b,s) = (x/s)^{\log_{b}{0.5}} \;\;\;\; (0 \le x \le s) \;\;\;\;\;\;\;\; (1)
$$

「ある角度の内に弾が飛んでいく確率」がこれなので、距離によって変動する「敵に弾が命中する角度」が求まれば命中率が計算できます。なお、今回は「ぴったり相手にエイムを合わせた際の命中率」を計算します。

 その角度は下の図から求まります。下図の直角三角形を利用すれば、度数法で

$$
\frac{180}{\pi} \arcsin{\frac{r_t+r_b}{d}}^{\circ}
$$

と計算できます。$${r_t}$$は敵の当たり判定の半径(ヒト状態)、$${r_b}$$は弾の対人当たり判定の半径、$${d}$$は自キャラの銃口と敵の中心との距離です。

上から見た図
弾の大きさは見やすさのため大きくしてある

 左右の対称性から、右にズレる場合だけ考えればよいでしょう。この角度を(1)式のxに代入すれば、ブキ、b、dが与えられた際の命中率の式

$$
p_{ブキ}(b,d)=(\frac{\frac{180}{\pi} \arcsin{\frac{r_t+r_b}{d}}}{s})^{\log_{b}{0.5}}
$$

を導出できます。あとはそれぞれの値を代入していけばよいでしょう。

計算のために

計算に必要な値 その1

※スプラトゥーンの長さの単位はいくつかありますが、ここではDUを使います。50 DU = 5m = 試し撃ちライン1本分 です。

 イカの大きさ($${r_t}$$)は、ヒト状態でおおよそ3.6DUとされています。ひとまず、ヒト状態の敵への命中率を考えるものとします。

 ブキごとに変化する値は拡散$${s}$$と弾の大きさ$${r_b}$$です。なお、$${r_b}$$はほとんどのブキで2DUですが、ver8.0.0以降のボールドなど一部例外があります。また、$${s}$$は地上撃ちかジャンプ撃ちかにより異なります。

 敵との距離$${d}$$は自由に変更できますが、まずは、「曲射が必要ないギリギリの射程」での命中率を調べます。

計算に必要な値 その2(ブレ値)

 ブレ値$${b}$$はバトル中に、撃ち続けた秒数に応じて変化します。ここでは、各ブキにおける、$${t}$$フレーム撃ち続けた際のブレ値を計算し、それを代入することで、命中率$${p}$$の時間変化を調べることにします。

 ブレ値の変化に関わる、ブキごとに異なるパラメーターは次のようなものがありました。
 ・最小値(地上撃ちとジャンプ撃ちでも異なる)
 ・最大値(地上撃ちとジャンプ撃ちでも異なる)
 ・射撃一発あたりの増加量
非射撃時の減少に関してはいったん置いておいて、地上撃ちでブレ値最小から撃ち続けた場合を考えましょう。

 ブレ最小値を$${b_m}$$、ブレ最大値を$${b_M}$$、一発当たりの増加量を$${k}$$、射撃間隔(何フレームにつき一発撃てるか)を$${rep [\mathrm{F}]}$$としましょう。

 すると、tフレーム撃ち続けた際のブレ値は次のように表せます。

$$
b_{ブキ}(t)=\min(b_m+k \lceil t/rep \rceil,  b_M)
$$

ただし、$${\lceil  \rceil}$$は整数への切り上げで、0F目を撃った瞬間(この時、ブレ値は最小値)としています。よって、結局この式の意味は、「最初はブレ値は最小値で、一発撃つごとにkだけブレは増加する、しかし最大値で止まる」ということです。

計算に必要な値 その3(一部謎残る?)

 あとは、これまで列挙したパラメーターの具体的な値を調べていけばよいですね。それは次のサイトに載っています。

 はい、解析情報です。これで頑張って各ブキの各パラメーターを調べていけばokです。

 調べていくと、いくつかのブキのブレ最大値が表示されていないことに気が付きます。具体的には、スシ、52、ZAP、プライム、ジェット、スペシュ、L3、H3です。これらのブキのブレ最大値はジャンプ撃ちのブレ最ち0.4なのか…?しかしこれらのブキは全てスプラ2ではブレ最大値=0.25のブキなんです。どちらなのでしょうか…?それともどちらでもないのでしょうか?

 スシに関してのみ実験してみました。スシにインク効率ギアを積み、ブレが(仮に最大値=0.4であったとしても)最大になるであろう40発目~163発目までをダミイカに射程端で撃って計数するのを三回行いました。
 仮にブレ最大値=0.4だとしたら命中率は64.34%となり239発当たるはずです。最大値=0.25だとすると命中率74.71%です。
 結果は、372発中281発命中(命中率75.54%)でした。一応、ブレ最大値=0.4を帰無仮説としてp検定をすると、

$$
P_{value}=\sum_{k=281}^{372}  _{372} C_k 0.6434^k(1-0.6434)^{372-k} =2.31 \times 10^{-6}
$$

ブレ最大値=0.4の線はないと考えてよいでしょう。ひとまず、今後はブレ最大値省略の場合は最大値=0.25として進めます。

 今回、命中率の数式を導出し、代入すべきパラメーターの値も集めました。次の記事で、実際に計算した結果を図にして可視化してみようと思います。

この記事が気に入ったらサポートをしてみませんか?