格闘「修正D/間隔」計算の仕方

自分でも忘れそうなので、整理してメモしておく。用語は基本的にStudio Gobli - アットウィキに準じ、必要な予備知識もgobliに一通り目を通した程度とする。今まで紛らわしかった用語も、ここで再定義しておく。
この記事は、変更があれば随時更新予定。

更新履歴

2010/12/22: 初出
2011/03/22: 修正WSD算出時、DA/TAが全段に乗るようになっていたのを修正(実際には初段・2段目のみ)

目的

モンクで時間当たりどの程度ダメージを与えられるかを検討する。モンクは基本的に通常攻撃特化ジョブであり、WSの最大ダメージなどよりも、DA蹴撃WSを含めた、トータルの「時間当たり平均ダメージ」を上げることに意味があると考えられる。

ダメージ計算にはさまざまな要素があるが、特に攻防比・攻防関数については想定する敵によって差が激しい。逆に、D/間隔や、DA率、蹴撃率については敵による差があまりない。そこで、武器や装備を選ぶ基準として、手数を含めたD/間隔を採用する。D/間隔は、わかりやすいように秒単位(60倍)にしておく。

命中率は、通常95%キャップとなるように、装備や食事で命中値を調整するため、これを前提としてよいだろう。

一部武器にはクリティカル率に修正が付くため、これを考慮する必要がある。FF11において近接攻撃のクリティカルとは攻防比+1であるため、攻防関数の分布は非クリティカル時とは大きく異なる。しかし、「時間当たり平均ダメージ」を考慮する観点からは、(分布ではなく)平均値のみ考慮すればよく、通常攻撃の倍撃として近似してもかまわない。
手による攻撃と足による攻撃では、同攻撃力・同クリティカル率と考えられるため、倍率は全通常攻撃から算出した各平均ダメージから求められる。
この倍率は、攻防関数平均に由来する数値なので、敵によって異なる。しかし、非クリティカル攻撃とクリティカル攻撃は、同じ装備で両方発生するので、同じような条件の戦闘なら同じように扱えるという利点がある。例えば、さまざまな敵が混ざったデュナミスなどでの総合実測データが使用できる。このことは、サンプル数を増やすことによる信頼性の向上が容易であることを示している。
攻+の場合にも似たような議論は可能であるが、この場合は同一固定ダメージ*1の武器で別々に集計する必要があり、Lv75時代のマムメリポのようなベンチマークの場がなく、構成・人数もバラバラな現状においては、あまり現実的とはいえないだろう。


わたしの書くすべての記事、またすべてのツールにおいて、これら

  • D/間隔
  • DAや蹴撃などの発生率を考慮したターンあたりの手数
  • 命中率
  • クリティカル倍撃近似

をすべて含んだ指標を、「修正D/間隔」と呼ぶことにする。

以降、修正D/間隔の計算法を書いておく。

通常攻撃

非猫足立ち時のモンクの通常攻撃は、次のように行われる*2 *3

左手→(DA→TA→時々2-N回攻撃)→ヴァルチャ→右手→(DA→TA→時々2-N回攻撃)→ヴァルチャ→蹴撃

時々2-N回攻撃は、以前の仮説および調査

により、

時々2-N回攻撃では、1回攻撃後、確率p=112/256による追加攻撃発生判定をN-1回行なう

としている。典型的な二項分布であり、その攻撃回数期待値は判定回数と発生確率の積で表せる。
ここで、手の固定ダメージをDh、足の固定ダメージをDfとし、DA発生率をp_DAのように書くと、D*手数/間隔は次のように表せる。

add1 = スファライ3倍撃 or グランツファウストアフターマス追加攻撃
add2 = p_DA + 2*(1-p_DA)p_TA + (1-p_DA)(1-p_TA)*N*p_複数回 + p_ヴァルチャ
D*手数/間隔 = [Dh*{(1 + add2) * 2 + add1} + Df*p_蹴撃] / 間隔 * 60

式中、[]は切り捨てではなく普通の大括弧である。
但し、DA>TA>複数回攻撃の順で優先して発動、としている。ヴァルチャ武器による追加攻撃はこれらとは独立である。
マグヌスサインティ(時々2倍撃)は、平均値の観点からはヴァルチャ武器と同等である。

このD*手数/間隔に、命中率、クリティカルC倍撃をかけることで、修正D/間隔が求められる。

修正D/間隔 = D*手数/間隔 * p_命中 * (1-p_クリ + C*p_クリ)

猫足立ち時は次のように計算する。

修正D/間隔 = Df*{2 - (1-p_DA)(1-p_TA)(1-p_蹴撃)(1-p_複数回)^(N-1)} / 間隔 * 60 * p_命中 * (1-p_クリ + C*p_クリ)

WS

間隔はhttp://dl.dropbox.com/u/186647/ff/wsdelay.htmlを使用して求める。通常攻撃と同じステータスにすることに注意。武器隔、sTP、WS攻撃回数、DA率、ヘイスト、あたりが主な注意点か。
通常攻撃と同様、命中率・クリティカル率・クリティカルダメージ倍率を考慮した、修正WSDは、以下のように求める。

修正WSD = (素手D + 武器D + ステータス修正 + SV関数値) * ((初段倍率+1) * {p_DA + 2*(1-p_DA)p_TA} + WS攻撃回数-2) * p_命中 * (1-p_クリ + C*p_クリ)

但し、非クリティカルWSではクリティカル項は掛けない。初段倍率はTP100時、属性ゴルゲ・ベルトは使用するなら考慮する。

修正WSDを、平均WS間隔(単位:秒)で割ることで、修正WSD/間隔が求められる。

修正WSD/間隔 = 修正WSD / 平均WS間隔

総修正D/間隔

単に通常とWSを足すだけである。


この方法では、通常時とWS時の攻撃力の差を考慮していない問題がある。
この攻撃力差による影響は、総与ダメに占める通常とWSの比から、ある程度見積もることは可能であると思うが、実際には常に即撃ちできるとは限らないことから、修正D/間隔同士の比較とは若干ずれる。TP初段倍率修正のWSを使う場合には、修正WSDが増大しがちになる、という問題もある。
即撃ちできるかどうかは、スキルの問題よりも状況によるため、一概には言えない。


欲を言えば、即撃ちしやすいかどうか、装備やWSの攻撃力修正でどの程度攻防比が変化するか、などを考慮し、場合に応じてWS成分に係数を掛けて足すのが望ましいが、現実には難しい。
攻撃力差の無視は、WSダメージの過小評価となっているが、常時即撃ちという前提はWSダメージを過大評価している。このため、WSへの係数は1より大きいとも小さいとも言えず、状況に応じて正の実数をとる、としかわからない。

まとめ

武器や装備の比較においては、D値や隔だけでなく、様々な要素を考慮する必要がある。
その組合せパターンは膨大で、すべてを考慮することはできないが、条件を絞ることである程度の比較はできる。
自分の環境で取得できそうな装備の中から、よりPTに貢献するためには何を使えばいいのか検討することは、けして無駄ではなく、装備ゲーとも揶揄されるこのゲームを楽しむ方法のひとつであろうと考える。

*1:必ずしも同一である必要は無いが、異なる場合はSV差を把握しておく必要がある。

*2:DA/TAの優先順位は未検証。

*3:スファライ・グランツファウストには、左手攻撃時に固有のロジックがある。