グランサガ ダメージ計算式の検討状況
相変わらず検証の真似事をやってますが、世の検証班の方々の凄まじさを思い知るばかりの日々です。
一応前回の記事はこちらになりますが、見てなくても大丈夫だと思います。
言うまでもなく、今回も素人の雑なお試し検証なのでかなり怪しい結果になっています。あくまでも参考までに。
計算式の仮説設定
まずダメージ計算式について以下のように仮説を立てました。
D = F(ATK, END) * (1 - G(DEF) )
ダメージDは攻撃力ATKと耐久力ENDで計算される関数F(ATK, END)があり、それに対して防御力DEFで計算される関数G(DEF)との割合で求められる、というものです。
ステータスの説明からは何となくこれでも納得できそうな気がします。実際にこれが成立するかを検証してみました。
検証その1 赤カサッシーからの被ダメ検証
前回の基礎検証でもやりましたが、1章にいるLv8赤カサッシーからの被ダメを測定しました。使用キャラはラス、耐久力は0。生データとグラフ化したものを示します。
なお、防御力49だけはキュイです。装備欄を開けるタイミングの最低レベルでの防御力が49なので、これ以下に設定するのは非常に困難だと思います。
まぁ見るからに線形ではなく、前回の考察ではここでギブアップしていました。
その後色々考えていると、防御力の平方根で減算しているのではないか?という仮説が思いつきました。
実際にグラフ化してみるとこんな感じ。
乗ってる…ようにも見えるし、ずれてるようにも見えます。
まぁ乗ってると考えると、y軸切片は敵のATKと自身のENDで決まる定数と見れます。一方でx軸切片は何で決まっているのでしょうか?別のデータから推測してみます。
検証その2 影ムムからの被ダメ検証
前回取得したデータを防御力の平方根でプロットしてみます。
耐久力の変化で確かにy軸切片が変わっている一方で、x軸切片はほぼ同じ位置を指しています。傾きも影ムムと赤カサッシーで変わっていることを踏まえると、敵のパラメータに依存していると考えられます。怪しいのはやはり攻撃力ですが、影ムムの攻撃力を知る術はありません。スキル倍率も分かりませんから…。
改めてx軸切片を調べると、おおよそ20950あたりのようです。実際に防御力を変えてみて20950で被ダメージが1になるか確認してみました。
耐久力5742のウィンを使用して確認したところ、防御力20409では21の被ダメ、20742では1の被ダメとなりました。若干ずれてますが見当違いというほどでもないと判断できます。
では影ムムの攻撃力が20500前後か?というと怪しいと思います。何より攻撃力=防御力で被ダメが1になるようだと、アリーナでまともにダメージが入らないはずです。PvEとPvPでダメージ計算が違う可能性はありますが…。今はPvEもPvPも計算式は同じと信じてやっていきます。
検証その3 アリーナでの雑検証
試しにウィンの防御力を18500程度に盛った状態でアリーナに挑んだ所、敵ウィンからの通常攻撃ダメージは1、キュイの通常攻撃は2桁~3桁程度のダメージでした。相手のパラメータを正確に知ることはできませんが、装備と戦力値から恐らくウィンの攻撃力は10000弱、キュイの攻撃力は12000~15000程度だと思います。
つまりざっくりと相手の攻撃力の1.5~2倍の防御力がある場合に被ダメージが1になると推測できます。即ちこれが上記x軸の切片になるものと思われます。
検証を踏まえた仮の計算式
以上を踏まえると、計算式はざっくりと以下のような形になりそうです。
D = F(ATK, END) * ( 1 - sqrt( DEF / (α * ATK ) ) )
αはおおよそ1.5~2の係数。これでy軸切片はATKとENDで決まり、DEF = α * ATKになると被ダメ1になり、その間はDEFの平方根で単調減少する、という今までの検証結果に則った式になっていそうです。
検証その4 与ダメージでの検証
今度は検算も兼ねて、こちらからの与ダメージを見てみます。対象はいつものLv55 影ムム。使用キャラはカルトです。
今回はそのまま殴った場合と、相手に防御10%ダウンのデバフをかけて殴った場合とを測定しました。
デバフ無しの時に与ダメが1になるのは2600前後。つまり敵の防御力は3900~5200程度と推測できます。
さて、ここでもう一度仮説の式を見てみます。
D = F(ATK, END) * ( 1 - sqrt( DEF / (α * ATK ) ) )
ENDは分かりませんが与ダメージD、ATKが既知で、αと相手DEFも目星がついています。さらにDEFの10%差分情報もあるので色々とできそうな気がします。
F(ATK, END)をβとすると、ENDは変わらないので、同じATKの時にはβは同じ値になる、はずです。そういう前提で検討してきてますから。
そうすると、
β = D / (1 - sqrt( DEF / (α * ATK ) ) )
で求められます。例えば攻撃力5325の時、与ダメは741なので、DEFを3900、αを1.5と仮置きするとβは2459と求まります。
これに対してDEF10%デバフ時の数値を入れて検算してみます。
D = β * ( 1 - sqrt( DEF*0.9 / (α * ATK ) ) )
で計算すると、829となります。実際の与ダメは839。なんか……あってるような、違うようなというズレですね。
若干腑に落ちない感じはありますが、大枠としては合っているような気もします。
今後について
とりあえず一人でモンスター相手に出来る検証としてはこの辺が限界かなぁと思ってます。今後詰めていくなら、アリーナでお互いにパラメータを調整し合ってデータを取得する必要があるかと。
個人的に不安に思ってる点はいくつかありまして、
- スキル倍率で各種切片が変わったりしないか
- クリティカル、相性ダメージとの絡みで各種切片が変わったりしないか
- βの部分をATKとENDの関数としているが、DEFは絡まないのか
以前取得したデータは中腹のデータなので、ダメージが0付近の挙動までは見てないのでその辺は結構不安です。
あと3つ目はもっと不安です。でも自分ではもうわからないので後はもっと賢い人たちに任せようと思います。