三国志真戦 ダメージ計算式
総ダメージ=(武将属性依存ダメージ+兵士数依存ダメージ)(1+攻撃側ダメージ増加倍率ー守備側ダメージ軽減倍率)(1+クリティカルダメージ)×R
R=ランダム率=±104.4%
兵士数依存ダメージ=0.1877・(兵士数)の0.32乗・x
武将属性依存ダメージ=0.0005・xの2乗 + 0.9・x + 4.5
x = 属性差
兵刃ダメージの場合、x = 自軍の武力 - 敵軍の統率
計略ダメージの場合、x = 自軍の知力 - 敵軍の知力
とりあえず、検証スタートです。
自軍の武力と敵軍の統率を調べておきます。
次に、兵士数依存による実際のダメージのデータを取得します。
試行回数 17回のデータは以下の通り
ここから得られるデータは、兵士数がどれだけ少なくとも200程度のダメージは出るということです。
兵士数が10でも同様の結果になるため、武将の属性値に依存した部分があります。
それが以下の式になります。
武将属性依存ダメージ=0.0005・xの2乗 + 0.9・x + 4.5
x=属性差です。
ここでは、武力270から敵の統率70を引いた200程度がxになります。
ここでは、武将によるダメージは204.69となるので、ほぼ属性値の差によるダメージは合っています。
続いて、兵士数を10で固定して、属性値の差による通常攻撃のダメージは以下の通り
この点をプロットすると、ほぼ2次関数となります。
さきほど出した2次関数
y=0.0005x^2 + 0.9x + 4.5
に代入すると
バラツキはしますが、ほぼ実際のダメージに近い値が出ます。
実際のダメージと異なるのは、ランダム関数の±104.4%が最後に掛けられるためであると推測できます。
属性値によるマイナスの依存度はないため、マイナスの場合は0として扱われるようです。
よって、兵士数1で、属性値の差がマイナスの場合でも、5ダメージ程度は与えられる計算になります。
まとめます。
通常攻撃のダメージは、2つに分かれている。
1:武将の属性値に依存するダメージ
武将属性依存ダメージ=0.0005・xの2乗 + 0.9・x + 4.5
(x = 属性差:自軍の武力ー敵軍の統率)
すると、兵士が1でも属性差が200程度あれば、200程度の通常攻撃のダメージを与えられる。
これは、実際に取得したサンプルデータとも一致するため、概ねこの2次関数に近いものが算出される。
プロットしたデータに基づいて、関数を作ると2次関数だが、そもそもxの2乗にかかる値は0.0005と非常に低いため、0.9にxを掛けた値に近い値が出る。
そのため、簡易的に計算する場合は、属性値の差に1.4を掛けた値で代用しても良いと思われます。
続いて、兵士数依存ダメージについて
兵士数依存ダメージ=0.1877・(兵士数)の0.32乗・x
兵士数のダメージは、兵士数の0.32乗に係数0.1877を掛けた値を取得したデータから算出できます。
よって
兵士数依存ダメージ=0.1877・(兵士数)の0.32乗・x
と言えます。
上記の2つの値を加えたものが基本ダメージとなり、そこからこちらのダメージ増加バフや相手のダメージ減少バフなどが掛けられ、最後にランダム関数が4.4%の範囲で加わるとほぼ、理論上のダメージが計算できます。
まとめます。
簡単に総ダメージを計算するには
(武将の属性差依存のダメージ) + (兵士数依存のダメージ)
を加えたものになる。
それぞれの計算式は、以下の通り。
武将属性依存ダメージ=0.0005・xの2乗 + 0.9・x + 4.5
兵士数依存ダメージ=0.1877・(兵士数)の0.32乗・x
例えば、上記の値で簡単に計算すると、
自軍武力270 敵軍統率70 属性差200 兵士数10000の場合
武将属性依存によるダメージは204.69
兵士数依存によるダメージは715.92
通常攻撃のダメージ期待値は920.60
となります。
以上で、武将の属性と兵士数によるダメージ計算の説明を終わります。