見出し画像

【勝利の女神NIKKE】命中率の検証をちゃんとやる話

はじめに

こんにちは。趣味で指揮官をやっている trick です。
今回は命中率の検証をやっていきます。

重要な事実と誤解

命中率の検証をしてくれている人は多数いますが、最近になって判明した以下の重要な事実を見逃しているものが多いです。

NIKKE は auto 射撃中はレティクルが広くなり、弾がばらつきやすくなります。

例えば以下の動画で、命中率 100% なのにコアヒットしていない、という記述がありますが、この動画では全編 auto で検証している様子なので、前述の影響が考慮できていないと思われます。

今回は、命中率とレティクルの関係性を数値的に検証していきます。

どのように検証するか?

レティクルの大きさは、NIKKE のゲーム画面で実際にサイズを測ってみるしかないので、最もレティクルが大きく、計算がしやすい SG で検証していきます。命中率バフを操作しやすいバニーソーダにご登場いただきましょう(※)。

※ 私のバニーソーダは命中OPが 8.29% ついているので、命中 0.0% のレティクルのみ、メイデンを使用しました。

頑張れバニーソーダ!


検証にはちょっと邪魔だった^q^

さらに、命中率を盛るために、モダニアやドレイクなども使用し、バースト時、非バースト時、auto の有無でそれぞれのレティクルをスクショに収めまくります。

こんな感じで命中を調整する

これらの編成で命中率毎のレティクルサイズを測り、レティクル半径と命中率の関係を ChatGPT 先生等で回帰分析してやればよいわけ。なお、画面は FullHD (1920 x 1080) のフルスクリーンモードを使用します。

取れたデータ

まずは命中率毎のレティクル画像を示します。

それぞれのレティクルの直径をピクセル単位で測ると以下の通りでした。

レティクルの直径を測って表にしたもの

ChatGPT 先生に線形回帰問題として解いてもらいましょう。

こんなプロンプトを送ればよいであろう

結果はこうなりますね。

これにより、命中率 x に対して以下の式でレティクルサイズを推定できます:
レティクルサイズ(auto無し): y=−1.3951x+140.5412
レティクルサイズ(auto): y=−1.4285x+168.3931

レティクルサイズは命中率の一次関数であることは明らかです。画像で測ったことによる誤差があるので、ここからはサンプル数をもっと多くとって精度を上げるか、仮定を置いて計算してしまうかになります。今回は、それぞれの数式を以下のように仮定しました。

SG のレティクルの直径(手動)= −1.40x + 140 [px]
SG のレティクルの直径(auto)= −1.45x + 170 [px]
※ x は命中率 [%]。
※ 後者の式、-1.40x + 168 [px] かもしれんね。。。140 px の 20% サイズアップが 168 [px] だし

これらについて再度、命中率 100.0 % までグラフを描いてみるとこうなりますね。

このグラフからわかることは以下の通りです。

  1. 手動操作で命中率を 100% にすれば、レティクルサイズは 1 dot に収束すると予想される。

  2. auto 操作では、命中率を 100 % にしても半径 12.5 ピクセル程度のレティクルになってしまう。命中率 100 % でコアヒットしない現象はこれによる(auto 操作では命中率が下がっているというより、レティクルのサイズに値(※)が加算されていると解釈した方が良い可能性がある)
    ※ 仮定した式では2つの系統の傾きが異なるので、これは命中率に対する可変値と解釈できるが、命中 0% 時のレティクルサイズを 20% 程度水増ししている(= 固定値を足してる)、という風に計算している可能性もある。

auto 操作にした時のロスは、レティクルサイズが同じ時の、2 つの直線間の 命中率軸方向の距離を見ればよいですね。仮定した式では命中率バフ量によって値が変わりますが、ワーストで 20%、ベストで 18% 相当の命中率ロス、と解釈できることがわかります。

赤い矢印の分が、auto 操作時の命中率のロスに相当する。

ところでレティクルの範囲で弾はどのようにばらけるのか?

レティクルが円形であることから、おそらく極座標系で r(中心点からの距離)と Θ(どの角度にばらけるか)をそれぞれランダムにしているんだと思います。

極座標系を知らん奴はおらんよな?

先ほどの数式はレティクルの直径で計算していましたが、極座標系で表現するには半径で考えた方が都合が良いので計算式を修正しましょう。

SG のレティクルの半径(手動)= −0.70x + 70 [px]
SG のレティクルの半径(auto)= −0.725x + 85 [px]

で、この半径の範囲内で r をランダムにしてやれば、円形のレティクル内で弾ばらけますよねぇという寸法。ただ、ランダムつってもどの分布に従ってるのかまでは集計がしんどい(動画を凝視して一発ずつ分析しなければならない)。普通正規分布を想像しますが・・・r について一様分布である可能性もある。


こういう感じか?
あるいはこうか?

レティクル半径(r)がボスのコアの半径(r_core)よりも小さくなれば、全弾コアヒットするようになるのは自明。でも通常は、r > r_core なので、その時にどの程度コアヒットするのか、は、確率密度関数を r_core の範囲で積分すりゃいいよねという話になるんですが・・・このあたりはさすがにしんどいのでやめておく。

というわけで、ボスのコアのサイズを誰か測ってくれーーー!

で?あと足りない情報は何だ?

  1. ボスのコアのピクセル数
    (距離ごとに変わるのでまぁあれなんですが・・・)

  2. SG 以外でのレティクルサイズの計算式の導出

  3. 特殊な命中仕様を持っているキャラが存在するかどうか?

このあたりを調べれば、それぞれの武器種でどの程度命中を盛ればよいかが大体わかってくるんじゃなかろうか。。

おわり(疲)

いいなと思ったら応援しよう!