装備1:攻撃能力+100
装備2:全ダメージ+50%

さあどっちが強いでしょうか?


攻撃能力/防御能力のクリティカル計算は非常に複雑ですし、
キャラクターの今の攻撃能力や、ダメージ%によっても変わるので、
求めるのはかなり面倒な計算が必要になります。

が、求める事は可能なはずですよね?

今の攻撃能力によって変わるといっても、それはつまり、
「今の攻撃能力」と「OAを10上げた時の火力の伸び」
のグラフを作れるはずですよね?


というわけで、今回は、
「攻撃能力(OA)を火力増加率に換算するとどの程度になるのか?」
という事を調査してグラフ化したので、記事にしてみようと思います。


まず、計算式はwikiに書いてあるものを使っただけなので、ここには書きません。

というわけで、いきなり結果のグラフです。
https://cdn.discordapp.com/attachments/297620286478483457/771638973428531248/unknown.png



では、このグラフを使って、一番最初の問題に回答してみます。
クリティカルダメージは+30%、
ダメージ%の合計は2900%と仮定してみます。


まず、クリティカルダメージが+30%なので緑の線を見ます。
次に、緑の線の3100~3200の所を見れば良いのですが、
上の図は細かい数値は見づらいので、拡大したものを用意しました。
https://cdn.discordapp.com/attachments/297620286478483457/771648076208406548/unknown.png
これのを見れば、3100~3200はだいたい1.0009(=+0.09%)ぐらいでしょうか。

攻撃能力100上げる=10上げるを10回やる なので
1.0009^10=1.009
(二項定理を使って近似して1+0.0009*10という計算でもいいですね。)
攻撃能力100は0.9%の火力上昇になります。


全ダメージ+50%の方はどうかというと、
(100%+2900%+50%)/(100%+2900%)=1.016666...
1.66%の火力上昇になります。


よって、最初の問題の回答は「全ダメージ+50%の方が強い」になります。




グラフを見る時の注意点としては、線がガタガタしているので、
倍率が悪くなる手前まで上げて止めるのが効率良さそうに思えますが、
このグラフは敵のDAが2300と仮定した場合ですので、
敵のDAや、その敵が使ってくるOA低下などによっては、
グラフのガタガタが左右にズレることになるります。
なので、狙ってどこかで止めるという事はあまり意味がない気がします。


なのでガタガタを無視した平均値で計算しても問題無いと思われます。

OAを10上げた時のダメージの伸びの平均値(グラフのOA2700~4000の平均)
クリダメ0%:0.037676%
クリダメ30%:0.091465%
クリダメ60%:0.140162%

さらにざっくりといくならば、
たいていのビルドはクリダメ30%前後になる場合が多く、
また、ダメージ%の合計も3000%ぐらいになると仮定すると
「OA100で全ダメージ30%」となります。
これを覚えておくだけで十分かもしれません。


がんばってグラフ作ったけど、
色々考えたら結局はこの平均値で十分だよね(グラフいらないよね)
というちょっと残念な結果ですが、
グラフを作ったおかげでそれが分かったので、
無駄ではなかったと思っておくことにします。


あと、

初めてPTHとクリティカル倍率の仕様を見た時に、
「特定のPTHでクリティカル倍率が上がるって、
 それだとグラフガタガタになるじゃん!綺麗じゃない仕様だなぁ。」
と感じていましたが、半分正解で半分不正解でした。

「同じ威力の攻撃だったとしても、
 攻撃が上手くなればなるほど急所に当てて大ダメージを出せるようになる」
という現実的なイメージをゲーム内で再現しようとすると、
適当にやるとグラフは一定ではなくなってしまうでしょう。
それを、OADAの計算式を上手く設定することで、
ガタガタしつつもほぼ一定になるように補正されています。
これにより、クリティカルに特化したり、逆に全く取らなかったり、
といった特定のバランスが最適解になってしまう事が防止され、
ビルドの多様性の実現に大きく貢献しているのではないでしょうか。
ガタガタだけど、綺麗な仕様だと思います。

コメント