見出し画像

三国志真戦 中華ダメージ計算式検証(途中経過)

2023年8月くらいかな。X(旧Twitter)上に中華プレイヤーが解析した三国志真戦のダメージ計算式とされる画像が流れました。

こちらの計算式、X上では結構精度高いなどと比較的高評価だったように思えますが、そもそも計算式の算出は近しい値が出るように逆算して作っていくので大きなブレはそんなに出ないものです。

さて、こちらの計算式ですが、いくつかのパートで説明されていました。

1.基礎計算部
2.ダメージバフ・デバフ部
3.その他の要素

バフ・デバフの部分については、様々なプレイヤーによって解析されているので省略するとして、いくつか気になった部分を検証していこうと思いました。

1.資料の内容についての解釈

1.乱数

与ダメージにはバラつきがあることは広く知られており、そのバラつき幅がどの程度なのかは分かっていませんでした。
この資料では、96%~104%つまり±4%として結論づけられています。

2.最低保証ダメージ

攻撃側兵数によって、最低値となるダメージが決まっていると言うものです。
基本的なダメージは、「攻撃武力ー防御統率」で確定されるので武力が低いとマイナスとなることがあります。
この場合は最低値をダメージとして算出するということになります。

3.兵数基礎ダメージ

最低保証値とは別に攻撃側兵数による基礎ダメージが決まっているというものです。
最低保証値も同様ですが兵士数に依存するものの、表示されていない兵数(例えば1500)はどうなるのかは不明です。

4.属性係数

基本的なダメージ計算は、「攻撃武力ー防御統率」となりますが、それぞれの武将のレベルにより武力、統率の属性値に対してある一定の係数が掛かると言うものです。
こちらの係数はレベル5毎の値が示されていますが、その間のレベルでの係数はどうなるのかは不明です。

5.凸数補正?

レベル毎に2,3%のバフが掛かるという訳になりそうですが、これがどういうものなのかよく分かりません。

2.検証方法

各情報を検証するにあたり、どのようなやり方が望ましいのか考えてみました。

・攻撃側は兵数を一定に保ち攻撃を行なう
・属性を確定させた敵部隊にひたすら攻撃してデータを蓄積する
・データは先制した通常攻撃のみを蓄積する
 (兵数依存のデータがあるため)

条件を整理し、以下の条件でデータを蓄積していくことにしました。
1.先制するため白馬義従編成とする。もしくは速度を極限まで上げ必ず先制できるようにする
2.敵を土地Lv5NPC部隊とする(相性をノーマルにするため騎兵、弓兵のみ)
3.攻撃側兵数は1000固定とする
4.攻撃武将はランクアップしない(無凸)
5.攻撃武将は兵法書は覚えない

3.検証結果

現時点で確認できたLv20,兵数1000での結果

試行数としてはもう少し欲しいところではありますが、傾向としては確認できそう。
と言うより検証部隊のレベルが上がってしまった;;

データは、実際に与えた与ダメージを記録し、(最大値+最小値)÷2を中心値としています
それぞれの試行数がどのくらいか、中心値から最大値(最小値)まで振れ幅はどのくらいあるかを記録しています。

1.乱数


乱数の値については、振れ幅の値を見れば確認できます。
端数処理の関係もありますが、概ね±5%となっています。

2.最低保証ダメージ

こちらの3武将は統率が160台と攻撃側の武力に対してかなり高くなっています。
そのため、ダメージを与えにくく、18と19しか出ません。
つまり最低保証ダメージと言う事になります。
18と19という2種類出てくるのは、前項の乱数が影響しています。

上記結果から、Lv20における兵数1000の最低保証ダメージは18.5と考えて間違いないと思われます。
18や19としないのは、乱数を加味した際、18であれば17というダメージが出るはずなのに出てこない、19であれば20というダメージが出るはずなのに出てこないことから、18.5としました。

3.属性係数


属性には係数が掛かるということですが、得られたデータをグラフにしたものがこちらです。

防御統率と与ダメージ(左)、攻撃武力と与ダメージ(右)の関係グラフ

武力の場合、グラフの傾きが平均して武力に対し約0.9の傾きとなっていることが分かります。
一方統率の場合、グラフの傾きが平均して統率に対し約ー1の傾きとなっていることが分かります。

中華式を見ると係数を掛けた属性値の差に対し0.9を掛けるとあります。
Lv20では係数1だったので、0.9を掛けるという意味合いの信ぴょう性はあるかも知れない。。。そのような結果となっていますが他のレベル帯もデータ取りしてみる必要はありそうです。

しかし、一方でこのような結果も得られています。

李傕のレベル上昇毎の与ダメージ変化

これは、李傕をLv20から武力に補正を加えずデータ取りしている内容です。
レベルが上がる毎におよそ3~5程度の与ダメージが増えています。
李傕の武力成長値は1.71なので、中華式での係数に従うとレベル上昇毎に武力の変化では1.71×0.9=1.539しか与ダメージは上昇しないということになりますが、実際にはそのような結果にはなっていません。

上記係数以外にも何かしらレベル(もしくはレベル差)に起因する係数があるのかも知れないと推測させるデータです。

4.計算式(Lv20 兵数1000 無凸)

中華式の②③のバフについては多くの検証結果が出ているので割愛し、①の部分についてのみ、得られた結果から計算式を確定したいと思います。

・得られた結果
  兵数1000の最低保証値は18.5
  武力係数は0.9
  統率係数は1(敵Lv27)
   ※属性差に掛ける0.9は他のレベル帯との比較も必要なので現時点ではないものとします。

上記結果から
 与ダメージ=最低保証値 + 兵数基礎ダメージ + (攻撃武力 × 係数) ー (防御統率 × 係数)
      = 18.5 +兵数基礎ダメージ + (攻撃武力 × 0.9) ー (防御統率 × 1)
となります。

兵数基礎ダメージはいくつなのか?
これについては、逆算するしかありません。
得られた与ダメージから、最低保証値と属性差を引くことで兵数基礎ダメージを算出します。

例えば、武力122.49の時の潘璋に対する与ダメージ92で計算すると
 92ー18.5-(122.49×0.9)+123.81=87.069
87 という値が出てきます。

よって、

与ダメージ = 18.5 + 87 + (攻撃武力 × 0.9)ー(防御統率 × 1)
です。

上記式で実測値と計算値の誤差と確認すると

となり、誤差は平均すると0.1となります。

なおN/Aは、最低保証値となったデータを示しています。
最低保証値となるのは何か規則性はないのか?
その目線で見た時に一つの事に気付きます。

計算式で最低保証値を加算する前の表を見ると、0近傍となっている箇所が全てN/Aとなっています。

中華式の資料では、属性差がマイナスの場合という記述が見られましたが、実際には兵数基礎ダメージも含めてマイナスの場合となりそうです。

4.まとめ

Lv20 兵数1000についての検証結果となりますが、
得られたデータから中華ダメージ計算式で出している係数は多少のズレはあるものの概ね一致すると言う事が分かりました。
しかし、表示されていないレベル、兵数についてはおかしい部分もあるので、データを積み重ねてより精度を高めていく必要がありそうです。


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