2014/10/14

FPSにおける武器の精度について考えてみる

CS:GOを題材に挙げて説明しますが、「精度」の概念が存在するFPS一般において適用できる話になります。ほとんどの人は体感的に分かっていそうな概念を図解してみようというトライです。

●精度とは

この記事で言う「精度」とは、いわゆる初弾精度のことです。この初弾精度とは、
銃を発射した時に一発目の銃弾が着弾する可能性のある範囲の大きさ
です。
着弾する可能性がある範囲が小さい場合を精度が良い(高い)、
着弾する可能性がある範囲が大きい場合を精度が悪い(低い)と言います。
精度の良し悪し

もちろん、連射するにせよ一発しか撃たないしても(初弾)精度は変わりません。
弾丸が着弾する可能性のある範囲は、基本的に円形になります。


CS:GOで言うと、サブマシンガン等が精度が悪く、アサルトライフル系が精度が良いイメージですね。
ちなみにCS:GOでの精度は図のようなBuy Menuの赤線の部分で確認できます。
Buy Menu
AccuracyRangeを見てみると、「思ったより高い」とか「低い」とか感じた武器があると思います。武器の強弱は他のパラメータも大きく関係しているので武器の使用感から感じるものとは少し違った感じになりますね。

●確実に着弾する距離は?

CS:GOの中にあるAccuracy Rangeを元に考えてみます。
(他のゲームでも似たようなパタメタがあると思いますのでご家庭のパソコンで調査して下さい。)
ちなみにこの値ですが、CS:GOのRelease Notes for 7/1/2014によると
- Accurate Range ( The distance up to which 100% of shots will land within a 30cm circle. See cl_weapon_debug_print_accuracy )
ということですので、
30cmの円を狙って撃った場合に確実に着弾する距離の事を示しています。
要するに「完璧なAIMであれば確実にヘッドショットが出来る距離」として良いでしょう。(ちなみにCS:GOの頭のHitboxは四角いので実際はもう少し複雑。)

と言っても、頭に当てれば即死か90hit程度して「ほぼキル」状態に出来るアサルトライフルとは違い、威力の低い武器は胴体に余計に数発入れる必要があったりするので精度以外にも考慮が必要です。


逆に、「これ以上離れるといくらAIMが完璧でも、弾が外れる可能性がある」ということも意味します。AK-47を例に取ると、40mで撃ち合った時、1ピクセル分の誤差もなく完璧にAIM出来たとしても、胴に当たったり頭の横に着弾したりしてヘッドショット出来ない可能性があります。
これが結構重要で、例えばdust2でPit(坂下)とA-Siteの間くらいの遠距離撃ち合っても、弾が当たるかどうかは乱数生成器が選んでいるので運要素が強くなります。AIMが完璧だとしても本当に弾が当たるかどうかは、撃ってみるまで分かりません。

(AKの場合)~31m : 撃てば確実にHSになる                  |  31m~ : どこに当たるか撃ってみるまで分からない

ロングレンジでの撃ち合いでスナイパーライフルが強いのは、「敵がAIMerでもこちらの被弾リスクを確率的に下げて交戦できる為」というのも一つの要因です。

●精度が高いとAIMの許容範囲が増える

前項で精度が高いと確実に着弾出来る距離が長くなる事を説明しましたが、もう少し実戦よりで考えてみましょう。そもそも人体に1フレーム時間以上の応答時間(反射神経)が存在する以上、脳で応答時間分の位置推定を行ってAIMする位置を決める訳で、位置推定の精度の差こそあれ「完璧にAIMする」ということは出来ません。

そこで考えたいのが、「どれ位までAIMの誤差を許容できるか」という事です。

ここではGalilとAK-47を例に考えてみましょう。
GalilのAccuracyRangeは23m、AK-47のAccuracyRangeは31mです。
また、簡単のため敵が23m先に居ると考えましょう。
Hitboxをこんな感じだと想定します。

GalilのAccuracyRangeを考えると
着弾範囲はこんな感じになります。
この場合完璧にAIMされているので
撃てば確実にHSになります。
 では少しずれるとどうでしょうか。

図のように、Hitboxからはみ出た部分が発生します。
はみ出た部分に着弾する可能性もあるので
「確実に」着弾するとはいえません。

AccuracyRangeの大きいAK-47の場合についても考えてみます。
完璧にAIMすればこんな感じ。


先程と同じくらいずらすと・・・
どこに着弾してもHSになります。

精度が高いとAIMが大きく
ずれてもHSに出来ます。


許容できるAIMの誤差をおおよその図にしてみました。
小学校でやる長方形の中を転がる円の中心の軌跡を求めるアレですね :D
許容誤差の範囲
 このように精度が高いと、「確実にHSするのに必要なAIMへの誤差」の許容範囲が大きくなる事がわかります。

AccuracyRangeが長く(50m)AIMの許容範囲が大きい事が、個人的にSG556(SG553)を推している要因の一つだったりします。

●着弾分布

精度に関してもう一つ考慮に入れるべきなのが着弾分布です。
着弾分布とは端的にいうと、「着弾範囲内の中の任意の点に着弾する確からしさ」ですね。
CS:GOは手元にデータがないのでBF3のデータを拝借。
BF3 Accuracy plots, shooting simulator | Symthic
http://symthic.com/bf3-accuracy-plots?attc=Foregrip

図の初弾、つまり黄緑の部分に注目して欲しいのですが、明らかに中央付近の着弾回数の方が多く見えます。これはつまり、乱数生成の際にガウス分布的に着弾を中央に寄るように調整しているようです。
CS:GOの厳密なデータは手元に無いのですが、私の体感では明らかに中央に寄っています。ジャンプ中に射撃すると、ど真ん中に飛んで行く事がままありますし。そもそもAccuracyRangeが31mしかないAKがこんなに当たるはずがありません。

着弾分布を考えると、AccuracyRange以上で交戦しないといけない場合でも頑張ってAIMすれば当たる可能性はそれなりに上がるということですね。がんばりましょう。

●精度が低い場合について考える

逆に精度が低いと何が悪くて、何が期待できるのかについて考えます。
・悪い事 : 弾が外れることが多い
図のようにAccuracyRangeに対してかなり長い距離で交戦した場合に、多くの場合ヒットボックス以外の場所に着弾しますね。

もはやワンチャンしかない感じ


・良い事 : (稀に)AIMが適当でも当たる可能性がある

まぐれHSの図
ジャンプ中AIMも合っていないのに適当に撃ったら頭に当たった、なんて状況が極稀に起きますね。それと似たような感じで、「AIMは合っていないのだけれど武器の精度が低かったので運良く弾がレティクルから外れて飛んで敵に当たった」という状況です。
精度の低い武器で遠距離でもHSがガンガン当たる時は「強い」ではなく「運が良い」という状態表現のほうが正しいです。

まとめ

まとめます。
・一般的に精度が高ければ高いほど良い
なぜなら
・有利な交戦距離が伸びる
・AIMの誤差を許容出来る

・もちろん精度以外の武器性能も大事
・自分の武器と相手の武器の精度差を意識する
・着弾分布的を考えるとAccuracyRange外でもAIMを頑張ると当たるかもしれない

後、精度が高い銃を使うメリットとして全てが自己責任になるってのもありますね。
精度の悪い武器でミスショットしても、原因を武器の精度せいにしてしまい上達しませんし。
AIMの許容誤差あたりは、ちょっと新規性あるかもとか思ったりして、超超基本的な事ですが記事にしてみるテスト。

0 件のコメント:

コメントを投稿