【メダロットS】ダメージ計算の試み メモ
こんにちは。防御時のダメージ計算式はもうちょっとで完成というところまで来ました。ただし、そのもうちょっとというのが最難関で、いつ解けるかわかりません。ちょうどluxさん(Twitter)に紹介していただいた折、現状の理解を簡単にメモしておきます。
防御時のダメージ計算式
成功1次項
防御時のダメージ は、攻撃側の成功 、威力 、攻撃スキルレベル 、防御側の耐性 、回避 、補助スキルレベル によって与えられます。
(1)
は二つの項 と にわけると見通しが良くなります。
(2)
式(2)のように、 は成功と回避を変数に含み、 は含みません。 はさらにある成功 を境に次のように書けます。
(3)
(4)
ここで、 は成功の1次関数パラメータと見なすことができます。ただし、 は定数ではなく、次のような威力、耐性、攻撃スキルレベル、補助スキルレベルの関数として表せます。
(5)
式(5)からわかるように、 はスキルレベルを含めて威力が高いほど大きく、また耐性が高いほど小さくなります。
式(3)と式(4)をスイッチするある成功 もまた定数ではなく、次の式(6)のように耐性、回避、補助スキルレベルの3つのステータスによって決まります。
(6)
成功のダメージ寄与の度合いを決めるものだと見なせた に対し、 は成功のダメージ寄与の始点を決めるものといえ、この値以下の成功値ではダメージが増えません。また、 と違い威力にはよらず、唯一回避ステータスが影響するパラメータでもあります。
ここまで、式(3)から式(6)まで、成功の1次項 はパラメータの値まで含めて詳細にわかっています。測定データが膨大なこともあり、解析手順の説明は日と記事を改めて行う予定です。
成功を含まない項
さて、解決していないのが成功を含まない の方です。式(2)より は式(7)ように表せます。
(7)
すなわち、測定した から式(3)から式(6)により計算した を引くことで、 を求めることができます。これは大変強力な式で、 から への変換を行うことで、あらゆる条件のダメージから成功と回避の寄与を除外し、(各スキルレベルを加味した)威力と耐性のみからなる関数として解析することができます。
#3で測定した成功と威力が一定のデータについて、式(7)から を求めました(図3)。
図3のように、横軸を補助スキルレベルを加味した耐性 で取ると は単調減少します。このことから は回避によらず、耐性によってのみ軽減されることがわかります。#3にて を横軸に取るとダメージが単調減少するように見えると報告しましたが、それは の に含まれる回避の影響を分離できなかったことによる性質の良くない近似だったと判明しました。
今度は攻撃スキルレベルを加味した威力 を横軸に取り、#4の対ビーストマスターの威力評価で計測したもの、luxさんによる対ヒメダッカーの計測データを含む、ある耐性相手に威力を変化させて取ったダメージから変換した を図4にプロットしました。
概観として、耐性の高いものから低いものまで威力がゼロに近づくと もゼロに近づきます(最低ダメージおよび がゼロであることも確認)。しかし、威力ゼロ近傍での傾きは耐性によって大きく異なります。耐性が低いものほど低威力でも傾きが大きく、威力の増加に伴ってわずかに傾きを増加させて1.53程度( ではなく の傾きであることに注意、 が威力の増加関数であるため、 の傾きより小さくなる)に落ち着きますが、これが収束なのかはわかっていません。対して高耐性ほど低威力側での傾きが寝ており、大きく曲がりながら が増加します。
現在、この原点での収束と曲がり具合をヒントに、関数の決定およびそのパラメータに耐性を落とし込む作業を進行しています。成功の1次式 の決定にあたっては諸々の思い込みが足を引っ張っていましたが、 は独立変数まではっきりわかっているのによほど難しいです。一にも二にも曲がっていることが悪さをしています。
おわりに
防御時のダメージについては成功と回避の寄与の分離に成功し、残すところは耐性と威力のカーブフィッティングのみ、しかしこれが一番厄介という状況です。ひらめき次第で明日にも解けるかもしれないし、1ヶ月経っても結論が出ないかもしれません。当面はこの解析を第一に続けていくつもりですが、計測データの共有や解析の質問等あれば喜んで応じます。いつでもお気づきの点を教えてもらえると幸いです。