WoT の砲拡散係数に関連する各種の値を 実際のクライアントから取得して検証した結果です。

はじめに

WoT の照準拡散や収束がどのように計算されるかについては 照準の拡散と収束 で説明しました。 ここでは、クライアント内部の値を mod を使って取得し、 計算式との比較や、 モジュールの効果についての検討を行っていきます。

使用する mod について

WoT クライアント内部から値を取得するため mod DispersionIndicator を作成しました。 この mod は戦闘時の照準拡散に関連する各種の値を画面に表示し、 戦闘終了後に CSV ファイルとしてデータを出力します。

CSV ファイル名は log.csv 決め打ちで、 戦闘毎に上書きしていくので、 その都度コピーやリネームするなどして退避する必要があります。 保存場所は <WoT_game_folder>/mods/logs/chirimen.dispersionindicator/ です。

CSV に出力しているデータはすべて WoT クライアント内部の変数の値を加工せずにそのまま出力しています。 画面への表示は単位や桁の換算と、丸めを行っています。

テスト条件

クライアントとゲームモード

クライアントは WoT 0.9.21.0.3, ゲームモードはトレーニングでマップはヒメルズドルフです。

使用車輌

使用したのはドイツ Tier 9 重戦車の Mäuschen 。 砲垂直安定装置 (スタビライザー) と改良型射撃装置 (ガンレイ) が搭載できて、 低速、重量タイプで収束遅めの車輌を選択しました。 もっと適当なのがあるって? 手持ちの車輌では他になかったんです(汗)。

Mäuschen

走行条件

拡張モジュールを載せ替えて比較するには、 車輌の速度などを同一にして複数回テストする必要があります。 キー操作の具合で条件が変わらないよう、 安定したテストが可能な条件として、以下の2パターンを選定しました。

  • 最大速度 (Wキー押しっぱなし)
  • 最大速度 + 最大旋回 (WキーとAキー同時押し、TPS視点)

どちらも速度、車体旋回速度、砲塔旋回速度が安定したタイミングを見計らって キーを一斉に離します。ブレーキは使用しません。 最大旋回の方は TPS 視点でマウスには触れないようにし、 砲塔は車体と反対方向に旋回することになります。

テストはヒメルズドルフ南側スタート地点付近の石畳の上で行いました。 テスト時の速度などの条件が揃っていたかどうかもデータで検証します。

乗員スキル

今回のテストでは乗員は同一としました。 テストに関連するスキルについて下にまとめます (所有していない、または関連しないスキルは記載していません)。

  • 車長: 100%
  • 砲手: 100%, 速射 100%
  • 操縦手: 100%, オフロード 100%

乗員リスト

砲手、操縦手のスキルは車長による補正が入って 110% になります。 これはクライアントの画面で確認できます。 速射やオフロードにも車長補正が入るのですがこちらは直接確認することはできません。

拡張モジュール

スタビライザーとガンレイの有無をテストのパラメータとしました。 換気扇は積んでいません。

  • なし
  • スタビライザー
  • ガンレイ
  • スタビ + ガンレイ

テストの様子

テストの様子です。低速なのであっという間に最高速に達します。

テスト走行

重量タイプなので 旋回時にも比較的安定した挙動となりました。

テスト走行

キーを離してから停止するまでの時間差や、 停止時の揺動がみられます。 これらが収束に影響するかどうかもデータの検証で確認できます。

データ処理

mod で取得した CSV ファイルを表計算ツールなどで処理します。

車輌速度の時系列データ

X軸に currentTime, Y軸に vehicleSpeed を採ったグラフです。

車輌速度

currentTime はクライアントの内部時間で、 戦闘開始時は 0 ではありません。

最高速度で安定した後、停止するときの時間のあたりをつけておきます。

キーを離してから停止するまでの時間やその後の揺動などもデータに表れています。

収束開始時間

収束が開始する時間は aimingStartTime に記録されます。

移動時などは常に拡散している状態なので aimingStartTime は currentTime と同一の値ですが、 収束が始まると aimingStartTime は一定の値になります。

以降のグラフでは収束が開始した時間が 0 となるように 時間をオフセットさせています。

テスト結果の概要

速度など

停止直前の 車輌速度 (speed)、 車体旋回速度 (rotate)、 砲塔旋回速度 (turret) をまとめました。 車輌速度は km/h に単位換算しています (CVS データは m/s)。

最大速度時

Wキーを押し続けて最大速度となった状態です。 多少の誤差のばらつきがありますが、 おおむね 20km/h です。 車体の旋回速度は計画通り 0 ですが、 わずかに砲塔が旋回しています。 砲塔の固定が甘かったかもしれません。 右クリックしておいたほうがよかったかも。

case speed (km/h) rotate (rad/s) turret (rad/s)
normal 20.00127983 0 0
stabi 19.99846973 0 1.42E-05
gunlay 20.00055542 0 0
stabi+gunlay 19.99973316 0 8.15E-05

最大速度+最大旋回時

W+Aキーを押し続けて最大速度、かつ最大旋回速度となった状態です。 速度はWキーのみと比べてやや低下しており 18.2 km/h です。 車体旋回速度は -0.261 rad/s で符号がマイナスは反時計回りです。 砲塔旋回速度は車体旋回速度に比べるとば少しばらついていて 0.262~0.267 rad/s となりました。

TPS視点でマウスを静止させているので車体旋回と反対方向に砲塔が旋回するのですが、 この旋回速度を制御するのは困難です。 ただし、この後の比較に影響するほどの誤差ではありません。

case speed (km/h) rotate (rad/s) turret (rad/s)
normal 18.22239933 -0.2613908947 0.2666110207
stabi 18.23236599 -0.2612173259 0.2670653999
gunlay 18.23128452 -0.2613663375 0.2666457346
stabi+gunlay 18.23536320 -0.2610534132 0.2617032490

拡張モジュールに関連するパラメータ

スタビライザーの効果は additiveFactor に、 ガンレイの効果は aimingTime に反映されます。

case additiveFactor aimingTime
normal 1.0 2.205177307
stabi 0.8 2.205177307
gunlay 1.0 2.006711483
stabi+gunlay 0.8 2.006711483

aimingTime はカタログ値 2.30 s に砲手スキル 110% 、 さらにガンレイがある場合は補正係数 0.91 を乗じて 下式のように計算されます。 算定式の詳細は 照準の拡散と収束: 照準時間 aimingTime を参照してください。

ガンレイなし

ガンレイあり

拡張モジュールに関連しないその他のパラメータ

目標拡散係数 (idealFactor) の計算に使われるパラメータです。 multFactor には砲手のプライマリスキル、 factorsMovement にはスムーズな運転スキルが、 factorsTurretRotation には速射スキルの効果が影響します。 拡張モジュールの影響は受けないので全て同一の値です。

case multFactor factorsMovement factorsRotation factorsTurretRotation
normal 0.9587727785 0.719994247 11.45915604 5.256887913
stabi 0.9587727785 0.719994247 11.45915604 5.256887913
gunlay 0.9587727785 0.719994247 11.45915604 5.256887913
stabi+gunlay 0.9587727785 0.719994247 11.45915604 5.256887913

拡散乗数 (multFactor)

砲手のプライマリスキル効果が計算されます。 車長補正で 110% (100+10) として扱われます。

算定式の詳細は 照準の拡散と収束: 拡散乗数 shotDispMultiplierFactor を参照してください。

移動時拡散係数 (factorsMovement)

カタログ値 0.20 (km/h)-1 に対し、 下式のように m/s 系への単位換算と 操縦手のスムーズな運転スキル効果が計算されます。 ここではスムーズな運転スキルがないので 0% として扱われます。

算定式の詳細は 照準の拡散と収束: 移動時拡散係数 chassisShotDispersionFactorsMovement を参照してください。

車体旋回時拡散係数 (factorsRotation)

カタログ値 0.20 (deg./s)-1 に対し、 下式のように rad/s 系への単位換算が行われます。

算定式の詳細は 照準の拡散と収束: 車体旋回時拡散係数 chassisShotDispersionFactorsRotation を参照してください。

砲塔旋回時拡散係数 (factorsTurretRotation)

カタログ値 0.10 (deg./s)-1 に対し、 下式のように rad/s 系への単位換算と 砲手の速射スキル効果が計算されます。 車長補正で速射スキルは 110% (100+10) として扱われます。

算定式の詳細は 照準の拡散と収束: 砲塔旋回時拡散係数 gunShotDispersionFactorsTurretRotation を参照してください。

照準拡散の推移

照準拡散の時系列データの比較です。 収束開始時の時間が 0 となるようにして、 各テストでの照準拡散角度の値をグラフにしました。 角度はラジアンを100倍したものを表示しています。

収束開始時から収束完了までの照準拡散は指数関数となります。 算定式の詳細は 照準の拡散と収束: 照準拡散係数 aiming-factor を参照してください。

表には収束開始時の拡散角度と、収束完了までの時間を示しました。 ただし、収束完了は約0.1秒間隔で計算される値を元に判定しているので得られる精度は0.1秒程度です。

最大速度時

最大速度から停止したときの照準拡散です。 収束時間はスタビの方がガンレイよりも約0.2秒早くなります。

最大速度からの収束

case DispersionAngle (rad/100) AimingEndTime (s)
normal 1.502265302 3.184936523
stabi 1.221374961 2.667968750
gunlay 1.502214093 2.850952148
stabi+gunlay 1.221445263 2.517944336

最大速度+最大旋回時

最大速度かつ最大旋回から停止したときの照準拡散です。 こちらも収束時間はスタビの方がガンレイよりも早くなりますが 差は約0.1秒と縮まっています。

最大速度+最大旋回からの収束

case DispersionAngle (rad/100) AimingEndTime (s)
normal 1.829603783 3.618164063
stabi 1.480184494 3.168945313
gunlay 1.830031113 3.286132813
stabi+gunlay 1.477736835 2.885009766

スタビとガンレイの優位は逆転するか

前述の比較結果を見ると、 最初の拡散が大きくなり、 照準時間が長くなるほどスタビとガンレイの優位さは減少していき、 いつかは逆転するようにみえます。 では、どの程度拡散が大きくなればガンレイが追いつき、そして逆転するでしょうか。

拡張パーツ無しで照準が収束しきるまでの時間を、 照準時間のカタログ値 $T_a$ を基準として $\alpha T_a$ (s) と表します。

スタビの収束時間は $0.8 f_s \cdot e^{-\alpha/s}$、 ガンレイの収束時間は $f_s \cdot e^{-\alpha/0.91s}$ と表せるので、 両者が同じ時間となる条件は下式となります。 $f_s$ は収束開始時の拡散係数、 $s$ は砲手スキルによる係数です。

これを解くと、約2.16 となります(砲手110%の場合)。

つまり、カタログ値の 2.16倍収束に時間がかかるくらいに拡散する場合だとガンレイが優位ということになります。 これは拡散係数でいうと 11.9、絞りきった状態の約12倍に拡散した状態に相当します。