今更な攻防比と攻防関数
攻防比から攻防関数を求める式は、公式には発表されておらず、色々な方がデータをとって、推測しています。ログから日記様、BGWIKI様、DPS Calcurator様が有名どころかと思います。DPS Calculatorの式は、洗練されていて、内容を理解しにくかったため、これまでは、ログから日記様の計算式をシートの欄外に放り込んで使用していました。
最近、攻防関数がキャップしてない状態でのダメージを、きちんと計算したくなったので、それぞれが使用している計算式を、見やすい形にまとめてみました。Rは、攻防比です。
攻防関数上限
| ログから日記 | R=0 | R*1.141+0.430 | R≒0.500 | 常に1 | R≒0.749 | R*1.141+0.145 | 同左 | 同左 | R≒1.631 | R+0.375 |
| BGWIKI | R=0 | R+0.5 | R=0.5 | 常に1 | R=0.7 | R+0.3 | R=1.2 | R*1.25 | R=1.5 | R+0.375 |
| DPS | R=0 | R*1365/1024+358/1024 | R≒0.488 | 常に1 | R=0.75 | R+0.25 | R=1 | R*1.25 | R=1.5 | R+0.375 |
攻防関数下限
| ログから日記 | R=0 | 常に0 | R≒0.373 | R*1.141-0.426 | R≒1.250 | 常に1 | R≒1.500 | R*1.141-0.711 | R≒2.383 | R-0.375 |
| BGWIKI | R=0 | 常に0 | R≒0.381 | R*1176/1024-448/1024 | R≒1.252 | 常に1 | R≒1.510 | R*1176/1024-755/1024 | R≒2.441 | R-0.375 |
| DPS | R=0 | 常に0 | R≒0.381 | R*1176/1024-448/1024 | R≒1.252 | 常に1 | R≒1.510 | R*1176/1024-752/1024 | R≒2.421 | R-0.375 |
どの計算式も、攻防比(R)が変化するに従って、攻防関数の計算式も変化していきます。黄色で記載したのは、計算式が変化する境界点です。正しい式であれば、計算式の両端の境界点で、キリの良い数字になりそうなものですが、BGWIKIの攻防関数上限の式を除いて、全ての点において、キリの良い数字になる計算式はありませんでした。「≒」を使用しているところは、計算式が変化する点において、キリの良い数字にならない部分です。1024分率での計算は、一見、理にかなっていそうですが、Rの係数と切片を、整数/1024で探しても、両端ともうまくつながる数字は発見できませんでした。
どの計算式を使用しても、そこまで大きな差は出なさそうですが、low capとhigh capという現象(あまり深く理解はしていません)を計算しようとすると、DPS Calculatorの式を生かしておいたほうが良いため、修正を加えることにします。
戦士のシートを例にとると、まず欄外に、「攻防関数上限」を記載します。手計算した数字を書き込んでもよいですが、せっかくなので、武器種を読み込んで攻防関数を決定し、サポートジョブを読み込んでダメージ上限アップ(256分率)を加算し、アリアと装備の物理ダメージ上限アップの合計を乗算するようにしています。物理ダメージ上限アップについては、Gearタブと、Gear Listsタブに、「PDL(physical damage limit)」というパラメータを追加して対応しました。以下、戦士のDPS Calculatorを例にとります。
| 訂正前 | 訂正後 |
| DataタブのB74の、cRatioは、 =MAX(MIN(B72/$O$3, 2.25)-$O$4, 0) | =MAX(B72/$O$3-$O$4, 0) にして、上限を外す。 |
| DataタブのB80の、Cap Minは、 =MAX(MAX(B77,B78), 0) | =MIN(MAX(MAX(B77,B78), 0), 攻防関数上限) にして、上限を設ける。 |
| DataタブのB84の、Cap Maxは、 =MIN(MAX(B81,B82), 3) | =MIN(MAX(B81,B82), 攻防関数上限) にして、上限を3から変更する。 |
| DataタブのB88の、High Cap %は、 =IF(B83>3, 1-(B86/B85), 0) | =IF(B83>攻防関数上限, 1-(B86/B85), 0) にして、上限を3から変更する。 |
| DataタブのB90の、Avg non-crit pDifは、 =((0 * B87) + (3 * B88) + (1 * B89) + (1 - B87 - B88 - B89) * ((B84 + B80) / 2)) * 1.02 | =((0 * B87) + (攻防関数上限 * B88) + (1 * B89) + (1 - B87 - B88 - B89) * ((B84 + B80) / 2)) * 1.025 にして、上限を3から変更し、係数をランダム振れ幅5%の半分である2.5%にする。 |
pDif(crit)についても、同様に処理しますが、Avg non-crit pDifのところに、(攻防関数上限+1)を入れるようにしてください。
| 訂正前 | 訂正後 |
| DataタブのB92の、wRatioは、 =B74+1 | =B74 にして、攻防比ボーナスを消す。 |
| DataタブのB106の、Avg non-crit pDifは、 =((0 * B103) + (3 * B104) + (1 * B105) + (1 - B103 - B104 - B105) * ((B100 + B96) / 2)) * 1.02 | =((0 * B103) + (攻防関数上限 * B104) + (1 * B105) + (1 - B103 - B104 - B105) * ((B100 + B96) / 2)+1) * 1.025 にして、上限を3から変更し、係数をランダム振れ幅5%の半分である2.5%にする。攻防関数に1を加える。 |
サブウェポンについても同様に処理します。幸いなことに、これまで書いた記事のほとんどで、攻防関数がキャップしていたため、数値に変化は生じませんでした。
コメント