FGO ダメージ計算式 完全解説
FGO のダメージは「ATK にバフを掛けていく」ものではない。 性質の違うバフが 6 つのバケットに振り分けられ、バケットの中では加算、バケットどうしは乗算という二層構造になっている。 この構造を取り違えると、同じバフを積んでいるのに理論値が 10〜40% ずれる。
このページは、その構造をゲーム内部データ(NiceConstant / NiceCard / NiceBuffList.ActionList 等)の実値まで降りて解説する。
式そのものは Atlas Academy の fgo-docs(データマイニング由来)を一次資料とし、
GamePress の解説記事と括弧構造まで一致することを確認している。
ここに書いた式は、当サイトの バトルシミュレーター にそのまま実装されている。 バトルログの「計算内訳」を開くと、下で説明する (01)〜(18) の項番がそのままの並びで表示される。 さらにこの実装は、冠位戴冠戦(グランドクエスト)の実戦ログと突き合わせて検証してある (→ 冠位戴冠戦のダメージを実戦ログと突き合わせた記録)。
結論から: 「加算バケットの積」がすべて
先に要点だけ書く。ここだけ覚えて帰っても実用上はほぼ困らない。
- 攻撃力アップは何個積んでも 1 つの括弧の中で足し算になる。
1.5 × 1.3ではなく1 + 0.5 + 0.3。 - カード性能アップ(Buster アップ等)は攻撃力アップとは別の括弧に入る。だから両方積むと乗算的に効く。
- 宝具威力アップとクリティカル威力アップと特攻は、全部おなじ 1 つの括弧に入る。だから同時に積むほど 1 個あたりの効率は落ちる。
- 宝具の特攻(○○に絶大な威力を発揮)だけは、その括弧の外にある独立乗算。
- 敵の防御ダウンは、攻撃力アップと同じ括弧に入る(
1 + 攻 − 防)。独立に掛けてはいけない。 - 全部の乗算が終わったあとに、Buster チェインボーナスと固定ダメージが加算される。この 3 つはクラス相性も乱数も受けない。
ダメージ計算式(全17項)
ゲーム内部値はすべて千分率の整数で保持される(ATTACK_RATE = 230 → 0.23)。以下は倍率に直した表記。
1 枚のカードのダメージ =
(01) servantAtk 攻撃側の最終ATK(Lv・フォウ・礼装込み)
(02) × npDamageMultiplier 宝具倍率。通常カードは 1
(03) × [ firstCardBonus + cardDamageValue × max(1 + cardMod, 0) ]
(04) × classAtkBonus クラス攻撃補正
(05) × triangleModifier クラス相性
(06) × attributeModifier 天地人・星・獣の属性相性
(07) × randomModifier 乱数 0.900〜1.099
(08) × 0.23 ATTACK_RATE(全体の縮尺)
(09) × max(1 + atkMod - defMod, 0) 攻撃力バフ/防御バフ
(10) × criticalModifier クリティカル時 2.0 固定
(11) × extraCardModifier EXTRA 時 2.0 または 3.5
(12) × max(1 - specialDefMod, 0) 特殊耐性
(13) × max(1 + powerMod + selfDamageMod
+ critDamageMod×isCrit + npDamageMod×isNP, 0.001)
(18) × max(1 + damageSpecialMod, 0.001) 特殊威力アップ
(14) × [ 1 + (superEffectiveModifier - 1) × isSuperEffective ] 宝具特攻
(15) + dmgPlusAdd ダメージプラス(攻撃側の固定値)
(16) + selfDmgCutAdd 被ダメージ増減(防御側の固定値)
(17) + servantAtk × busterChainMod Buster チェインボーナス
damage = floor( max(damage, 0) )
項番が (13) → (18) → (14) と飛ぶのは一次資料の採番そのまま。 (18)「特殊威力アップ」は後年になって追加された項で、GamePress 版の解説には存在しない。 この項の見落としが、冠位戴冠戦のダメージが「計算より 2 倍出る」最大の原因だった(後述)。
バケット構造 — どのバフがどこで合流するか
同じ括弧に入るものは加算、違う括弧どうしは乗算。 これが全部である。
| # | バケット | 中で加算されるもの | 括弧のクランプ |
|---|---|---|---|
| A | カードバケット (03) | Buster/Arts/Quick アップ + 全カード性能アップ − 敵のカード耐性 | max(1 + cardMod, 0)。firstCardBonus は掛け算の外で加算 |
| B | 攻防バケット (09) | 攻撃力アップ(全部)と 敵の防御アップ/ダウン が同じ括弧の中で加減算 | max(…, 0) |
| C | 威力バケット (13) | 特攻バフ + 被ダメージ増減 + クリティカル威力アップ + 宝具威力アップ がすべて加算 | max(…, 0.001) |
| D | 特殊威力 (18) | 特殊威力アップ(upDamageSpecial)単独 | max(…, 0.001) |
| E | 特殊耐性 (12) | 特殊耐性単独。減算 | max(1 − …, 0) |
| F | 宝具特攻 (14) | 宝具の Correction 値単独。バケット C とは完全に別物 | なし |
独立に乗算されるのは、上の A〜F と、(02) 宝具倍率 / (04) クラス補正 / (05) クラス相性 / (06) 属性相性 / (07) 乱数 / (08) 0.23 / (10) クリ基礎2倍 / (11) EXTRA 倍率。
覚えておくべき帰結:
- 攻撃力アップ +50% と +30% を重ねても
1.5 × 1.3 = 1.95ではなく1 + 0.5 + 0.3 = 1.8。 - Buster アップを何個積んでも全部
cardModに加算。 - 特攻(威力アップ〔○○〕)を複数積んでも加算。乗算にはならない。
- クリティカル威力アップは
criticalModifier(=2.0)を増やさない。 バケット C に加算される。 - 宝具威力アップも独立乗算ではない。 バケット C に加算される。
- 敵の防御ダウンは
defenceバフの下限クランプにより 実質 −100% で頭打ち。(1 + 攻 − 防)が無限には伸びない。
バフの上下限(内部値)
| 項 | バフ種別 | 既定 | 下限 | 上限 |
|---|---|---|---|---|
atkMod 攻撃力 | atk | 100% | 0 | 500% |
defMod 防御 | defence | 100% | 0 | — |
cardMod カード性能(攻) | commandAtk | 100% | 0 | 500% |
cardMod カード耐性(防) | commandDef | 100% | — | 500% |
powerMod 特攻 | damage | 0% | — | 1000% |
critDamageMod クリ威力 | criticalDamage | 0% | — | 500% |
npDamageMod 宝具威力 | npdamage | 0% | — | 500% |
specialDefMod 特殊耐性 | specialdefence | 0% | −100% | 500% |
damageSpecialMod 特殊威力 | damageSpecial | 0% | — | 1000% |
よくある誤り: 「別々に掛ける」と何%ずれるか
バケットを取り違えた実装・手計算が具体的に何%外すかを、下の検算例2の条件で示す。
| 誤りの内容 | 正しい値 | 誤った値 | ずれ |
|---|---|---|---|
| 特攻 +100% と 宝具威力 +30% を別々に乗算 | 1 + 1.0 + 0.3 = 2.3 | 2.0 × 1.3 = 2.6 | +13% 過大 |
| 敵防御ダウン −20% を独立乗算 | 1 + 0.5 + 0.2 = 1.7 | 1.5 × 1.2 = 1.8 | +5.9% 過大 |
| 宝具特攻 (14) をバケット C に足し込む | 2.3 × 1.5 = 3.45 | 1 + 1.0 + 0.3 + 0.5 = 2.8 | −18.8% 過小 |
クリ威力 +50% を criticalModifier に加算(他に威力バフがある場合) | 2.0 × (1 + 特攻 + 0.5) | 2.5 × (1 + 特攻) | 特攻の量に応じてずれる |
| EXTRA 倍率を無視 | × 2.0〜× 3.5 | × 1 | −50〜−71% |
| Buster チェインボーナスをカード倍率に混ぜる | 全乗算後に + ATK×0.2 | 相性2.0の敵で 2 倍以上に膨張 | 大幅過大 |
特攻バフが 2 個 3 個と増える編成ほど、「乗算積み」の誤差は指数的に開く。
カード倍率と初手ボーナス
NiceCard の実データ。order はチェイン内の順番(1〜3)で、EXTRA は 4。
| カード | 順番 | カード倍率 adjustAtk | 初手ボーナス addAtk | NP adjustTdGauge | スター adjustCritical |
|---|---|---|---|---|---|
| Arts | 1 / 2 / 3 | 1.0 / 1.2 / 1.4 | 0 | 3.0 / 4.5 / 6.0 | 0 |
| Buster | 1 / 2 / 3 | 1.5 / 1.8 / 2.1 | +0.5(1枚目のみ) | 0 | 0.1 / 0.15 / 0.2 |
| Quick | 1 / 2 / 3 | 0.8 / 0.96 / 1.12 | 0 | 1.0 / 1.5 / 2.0 | 0.8 / 1.3 / 1.8 |
| EXTRA | 4 | 1.0 | 0 | 1.0 | 1.0 |
初手ボーナスは「チェインの先頭カードの種別」で決まり、チェイン内の全カードに乗る。 自分が 1 枚目かどうかではない。ダメージに効く初手ボーナスは Buster 先頭の +0.5 だけで、 Arts 先頭のボーナスは NP 獲得側(+1.0)、Quick 先頭のボーナスはスター側(+0.2)に出る。
そして重要なのが、初手ボーナスはカード倍率に足されるのではなく、掛け算の外で足されること。
正: 0.5 + 1.5 × (1 + Busterバフ) Busterバフ+100% なら 0.5 + 3.0 = 3.5
誤: (1.5 + 0.5) × (1 + Busterバフ) → 4.0(14% 過大)
宝具カードの扱い
- 宝具は自分のカード色の order=1 の値を使う(Buster 宝具なら 1.5、Quick 宝具なら 0.8)。
- 宝具は初手ボーナスを受けない。 Buster 宝具でも
firstCardBonus = 0。 - チェインの何枚目に置いても、宝具のカード倍率は order=1 のまま。位置ボーナスは付かない。
npDamageMultiplierは宝具の damage 系関数の値(例: 宝具Lv3 で 1800‰ → ×18.0)。オーバーチャージで倍率が変わる宝具は OC 段階ごとに別の値を引く。
チェインとEXTRAアタック
チェインの種類
| チェイン | 成立条件 | 効果 |
|---|---|---|
| ブレイブチェイン | 同一サーヴァントのカード3枚 | EXTRA アタックが発生 |
| Buster チェイン | 3枚とも Buster | busterChainMod = 0.2 →(17) + ATK × 0.2 |
| Arts チェイン | 3枚とも Arts | チェインに参加したカードの持ち主へ NP +20% |
| Quick チェイン | 3枚とも Quick | クリティカルスター獲得 |
| マイティチェイン | Buster/Arts/Quick が 1 枚ずつ | 下記 |
| 宝具チェイン | 宝具を複数発動 | 2 本目以降のオーバーチャージが上がる |
カラーチェインには宝具カードも自分の色で参加する。 Quick 宝具+Quick+Quick は Quick チェインであり、同色ブレイブでもある。
マイティチェインの仕様
マイティチェイン(MIGHTY_CHAIN_INDIVIDUALITY = 4107)はダメージ式に直接の項を持たない。効くのは次の 2 経路。
- 初手ボーナスを 3 色ぶん同時に受け取る。 マイティ成立時は「先頭カードの種別」ではなく、**ダメージ用は Buster の order=1(+0.5)、NP 用は Arts の order=1(+1.0)、スター用は Quick の order=1(+0.2)**を無条件で使う。 つまり B/A/Q の 1 枚目ボーナスが全部乗る。ダメージ側の +0.5 はチェイン内の全カードと EXTRA に乗るので影響が大きい。
- カードに
mightyChain特性が付き、これを条件にするバフ・特攻が反応する。 グランドサインの「マイティチェイン成立時 攻撃力+30%」などがこれ。
マイティチェインは「宝具を含む 3 色」でも成立し、ブレイブチェインと同時にも成立する。 同一サーヴァントの B/A/Q を選べば、ブレイブ かつ マイティ である。
当サイトのシミュレーターも当初「宝具を除いた 3 枚が 3 色」「同一サーヴァントでない」を条件にしており、 宝具(Quick) + Arts + Buster を全部同じサーヴァントから出すという実戦の形を構造的に取りこぼしていた。 その結果、初手ボーナス +0.5 とグランドサインの攻撃力+30% が両方落ち、通常カードが 15〜20% 過小になっていた。 詳細は 検証記録 — マイティチェインの取りこぼし。
EXTRA アタックの倍率は 2.0 と 3.5 の 2 種類
| 条件 | 定数 | extraCardModifier |
|---|---|---|
| EXTRA 以外のカード | — | 1 |
| EXTRA(通常のブレイブチェイン) | EXTRA_ATTACK_RATE_SINGLE | 2.0 |
| EXTRA(同色ブレイブチェイン=3枚とも同じ色) | EXTRA_ATTACK_RATE_GRAND | 3.5 |
同色ブレイブを組めるかどうかで EXTRA の威力は 1.75 倍変わる。 「宝具(Quick) → Quick → Quick」と「宝具(Quick) → Arts → Buster」では、前者の EXTRA が 3.5 倍・後者が 2.0 倍になる。 実戦ログでもこの切替はそのまま観測できる(→ 検証記録)。
EXTRA カードの特性は cardExtra と faceCard なので、Buster/Arts/Quick アップは条件不一致で乗らない。
乗るのは「全カード性能アップ」と、cardExtra を条件にしたバフだけ。
Buster チェインボーナスは「全部の乗算が終わった後」
busterChainMod = 0.2 は (17) の位置、つまり全乗算の後に servantAtk × 0.2 を加算する。
これは クラス相性・属性相性・カード倍率・乱数の影響を一切受けないという意味である。 クラス相性 2.0 の相手に対してこのボーナスをカード倍率側へ混ぜ込むと、実機の 2 倍以上に膨らむ。 (15) ダメージプラス・(16) 被ダメージ増減も同じ扱いで、相性を受けない固定加算。
クリティカル
criticalModifierはCRITICAL_ATTACK_RATE / 1000= 2.0 固定。クリティカルなら 2.0、そうでなければ 1。これは (10) の独立乗算。- クリティカル威力アップはこの 2.0 を増やさない。 バケット C (13) に
critDamageModとして加算される。 クリ威力 +50% は「2.5 倍」ではなく、2.0 × (1 + 0.5) = 3.0相当(他に威力バフがない場合)。 - 「Buster クリティカル威力アップ」のようなカード種別つきのものも、条件が一致すれば同じ
critDamageModに加算合流する。 - クリティカル発生率は
CRITICAL_RATE_PER_STAR = 100(スター 1 個につき 10%)。カードに配られたスター数で決まる。
クラス補正・クラス相性・属性相性
クラス攻撃補正 (04)
| クラス | classAtkBonus |
|---|---|
| セイバー / ライダー / シールダー / アルターエゴ / ムーンキャンサー / フォーリナー / プリテンダー | 1.00 |
| アーチャー | 0.95 |
| ランサー | 1.05 |
| キャスター / アサシン | 0.90 |
| バーサーカー / ルーラー / アヴェンジャー | 1.10 |
グランドクラス(grandSaber 等)は元クラスと同じ値を使う。
クラス相性 (05)
行が攻撃側、列が防御側。
| 攻→守 | 剣 | 弓 | 槍 | 騎 | 術 | 殺 | 狂 | 裁 | 讐 | 分 | 月 | 降 | 詐 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| セイバー | 1.0 | 0.5 | 2.0 | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| アーチャー | 2.0 | 1.0 | 0.5 | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ランサー | 0.5 | 2.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ライダー | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 | 2.0 | 0.5 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| キャスター | 1.0 | 1.0 | 1.0 | 0.5 | 1.0 | 2.0 | 2.0 | 0.5 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| アサシン | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 | 1.0 | 2.0 | 0.5 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| バーサーカー | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 0.5 | 1.5 |
| ルーラー | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 1.0 | 0.5 | 1.0 | 2.0 | 1.0 | 1.0 |
| アヴェンジャー | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 2.0 | 1.0 | 1.0 | 0.5 | 1.0 | 1.0 |
| アルターエゴ | 0.5 | 0.5 | 0.5 | 1.5 | 1.5 | 1.5 | 2.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 |
| ムーンキャンサー | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 0.5 | 2.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| フォーリナー | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | 1.0 | 1.0 | 0.5 | 1.0 | 2.0 | 2.0 |
| プリテンダー | 1.5 | 1.5 | 1.5 | 0.5 | 0.5 | 0.5 | 2.0 | 1.0 | 1.0 | 2.0 | 1.0 | 0.5 | 1.0 |
シールダーは攻守とも常に 1.0。
クエストや敵によっては classRelationOverwrite でこの表が上書きされることがある(相性が変わるギミック)。
属性相性 (06)
| 攻→守 | 人 | 天 | 地 | 星 | 獣 |
|---|---|---|---|---|---|
| 人 | 1.0 | 1.1 | 0.9 | 1.0 | 1.0 |
| 天 | 0.9 | 1.0 | 1.1 | 1.0 | 1.0 |
| 地 | 1.1 | 0.9 | 1.0 | 1.0 | 1.0 |
| 星 | 1.0 | 1.0 | 1.0 | 1.0 | 1.1 |
| 獣 | 1.0 | 1.0 | 1.0 | 1.1 | 1.0 |
天地人は ±10%。クラス相性の 2.0 と比べると小さいが、有利クラスが用意できない高難易度では効いてくる。
ヒット分配とオーバーキル
ヒット分配
カード全体のダメージを先に 1 回だけ計算し、それをヒット数で分配する。 ヒットごとに式を回すのではない。
最終ヒット以外: hit_i = floor( cardDamage × hitPercent_i / Σ hitPercent )
最終ヒット : hit_last = cardDamage − Σ(それ以前のヒット)
端数はすべて最終ヒットに寄る。 多段ヒット宝具の最後の 1 発だけ表示値が飛び抜けて大きいのはこのため。
この性質は実測でそのまま確認できる。9 ヒット宝具(分配 [2,4,6,8,11,13,15,17,24])で総ダメージ 2,419,032 を観測したとき、
9 発の表示値は上の式の計算結果と 1 ダメージも違わずに一致した(→ 検証記録)。
オーバーキルとその「バグ」
- 暫定累積ダメージ
reducedhpをヒットごとに加算し、対象の HP と比較して、超えたヒット以降がオーバーキルになる。 - ダメージそのものはオーバーキルで変化しない。 変わるのは NP とスター。
| 定数 | 値 | 効果 |
|---|---|---|
OVER_KILL_NP_RATE | 1.5 | オーバーキルヒットの NP 獲得 ×1.5 |
OVER_KILL_STAR_RATE | 1.0 | スター発生率 ×1.0 |
OVER_KILL_STAR_ADD | +0.3 | スター発生率 +30% 加算 |
有名な「オーバーキルバグ」は、reducedhp がカードをまたいでリセットされない一方、比較対象の HP は
カード単位でしか更新されないことから起きる。敵がまだ生きているのに後続のカードが 1.5 倍 NP を得る。
リセットされるのは、宝具カードの実行直前・deadFunction / gutsFunction の発動・ガッツ発動のとき。
NP獲得量の計算式
NP%(1ヒットあたり) =
floor(
floor(
offensiveNPRate 宝具ごとのNP獲得率
× [ firstCardBonus + cardNpValue × max(1 + cardMod, 0) ]
× enemyServerMod 敵の被弾NP補正
× (1 + npChargeRateMod) NP獲得量アップ
× criticalModifier クリ時 2.0
)
× overkillModifier OK時 1.5
)
丸めは 2 段階。オーバーキル倍率を掛ける前に一度 floor、掛けた後にもう一度 floor。
押さえておくべき点:
- NP 獲得率はサーヴァント直下ではなく 「現在装備中の宝具」の下にある。カード種別ごとに値が違うサーヴァントも実在する。
- カードの NP 倍率は Arts 3.0/4.5/6.0、Quick 1.0/1.5/2.0、Buster は 0、EXTRA 1.0。
- 宝具カードは 位置を強制的に 1 枚目として扱い、初手ボーナスも受けない。 結果、Buster 宝具の NP 回収は常に 0。Arts 宝具は ×3.0、Quick 宝具は ×1.0 で回収する。
- NP 獲得に効くカード性能バフは
commandNpAtk(「NP獲得量アップ」ではなく「Artsカード性能アップ」の側)。ダメージ用のcardModとは別枠。
スター発生率の計算式
発生率 = ( baseStarRate サーヴァントのスター発生率
+ firstCardBonus Quick 先頭時 +0.2
+ cardStarValue × max(1 + cardMod, 0)
+ serverRate 敵の被弾スター補正
+ starDropMod スター発生率アップ
− enemyStarGenResist 敵のスター発生耐性
+ criticalModifier クリ時 +0.2(乗算ではなく加算)
) × overkillModifier + overkillAdd
- クリティカルのスター補正は加算 (+0.2)。ダメージ側の 2.0 倍とは性質が違う。
- カードのスター値は Quick 0.8/1.3/1.8、Buster 0.1/0.15/0.2、Arts は 0、EXTRA 1.0。
- 発生率は 300% (
STAR_RATE_MAX = 3000) でクランプされ、1 ヒットあたり最大 3 個。 - スタープールの上限は 99 個。
特殊威力アップ (18) — 見落とすとダメージが 2 倍ずれる
(18) damageSpecialMod は、他のどのバフとも合流しない単独の乗算である。
FGO のバフ一覧では「特殊威力アップ」と表示される。
この項が世に知られていない最大の理由は、サーヴァントが持っていないからである。 冠位戴冠戦(グランドクエスト)の〔剣士の試練〕〔弓兵の試練〕〔槍兵の試練〕のような常設ギミックは、 敵のスキルにもクエストの特性にも入っておらず、クエストのフィールドAIの側から開幕に配られる。
| クエスト | ギミック | 効果 |
|---|---|---|
| 冠位研鑽戦〔セイバー〕 | 剣士の試練 | 味方〔セイバー〕全体の 特殊威力 +100%(永続) |
| 冠位研鑽戦〔アーチャー〕 | 弓兵の試練 | 味方〔アーチャー〕全体の 特殊威力 +100%(永続) |
| 冠位研鑽戦〔ランサー〕 | 槍兵の試練 | 味方〔ランサー〕全体の 特殊威力 +100%(永続) |
+100% が (18) に入るので、該当クラスのダメージはそのまま 2 倍になる。 宝具威力アップ (13) と同じバケットに足し込んでしまうと、この 2 倍が 1.3 倍程度に潰れて、実測と 3 倍以上ずれる。
→ この項の発見から実戦一致までの経緯は 冠位戴冠戦のダメージを実戦ログと突き合わせた記録 にまとめてある。
32bit float と乱数
- ゲームは 32bit float で計算する。64bit で計算すると 1 前後ずれることがある。
JavaScript なら乗算ごとに
Math.fround()を挟むと再現できる。 - 乱数は
randInt(900, 1100) / 1000。下限 0.900 は含み、上限 1.100 は含まない(実質 0.900〜1.099)。 1 回の攻撃の理論値と実測値は、この ±10% の幅の中でしか比較できない。 実測との照合をやるときは、乱数を 1.000 に固定するか複数回の中央値を取ること。
バトルシミュレーター のバトル画面ヘッダに「乱数」トグルがある。
抽選 / 固定1.00 を切り替えられるので、ビルド比較や理論値の検算では 固定1.00 を使う。
検算例
いずれも乱数を 1.000 に固定した 64bit 計算値。
例1: 通常 Buster カード(3枚目・非クリティカル)
| 項目 | 値 |
|---|---|
| ATK | 12,000 |
| 攻撃側 | セイバー(クラス補正 1.0)・属性 地 |
| 敵 | ランサー(相性 2.0)・属性 人(属性相性 1.1) |
| カード | Buster チェイン 3 枚目 → カード倍率 2.1・初手ボーナス 0 |
| バフ | Buster アップ +50% / 攻撃力アップ +30% |
(03) 0 + 2.1 × max(1 + 0.5, 0) = 3.15
12000 × 1 × 3.15 = 37,800
(04) × 1.0 = 37,800
(05) × 2.0 = 75,600
(06) × 1.1 = 83,160
(07) × 1.0 = 83,160
(08) × 0.23 = 19,126.8
(09) × max(1 + 0.3 - 0, 0) = 1.3 = 24,864.84
(10)〜(14) すべて × 1 = 24,864.84
floor → 24,864
期待ダメージ 24,864(乱数込みの実際の幅は 22,378 〜 27,326)。
例2: Buster宝具(特攻 + 宝具威力アップ + 宝具特攻 + 敵防御ダウン)
| 項目 | 値 |
|---|---|
| ATK | 11,000 |
| 攻撃側 | アーチャー(クラス補正 0.95)・属性 天 |
| 敵 | バーサーカー(相性 2.0)・属性 地(属性相性 1.1) |
| 宝具 | Buster 宝具・倍率 600% → ×6.0。カード倍率 1.5・初手ボーナス 0 |
| バフ | Buster +80% / 攻撃力 +50% / 敵防御 −20% / 特攻 +100% / 宝具威力 +30% / 宝具特攻 150% |
(03) 0 + 1.5 × max(1 + 0.8, 0) = 2.7
11000 × 6.0 = 66,000
(03) × 2.7 = 178,200
(04) × 0.95 = 169,290
(05) × 2.0 = 338,580
(06) × 1.1 = 372,438
(07) × 1.0 = 372,438
(08) × 0.23 = 85,660.74
(09) × max(1 + 0.5 - (-0.2), 0) = 1.7 = 145,623.258
(10)(11)(12) × 1 = 145,623.258
(13) × max(1 + 1.0 + 0.3, 0.001) = 2.3 = 334,933.4934
(18) × 1 = 334,933.4934
(14) × [1 + (1.5 - 1) × 1] = 1.5 = 502,400.2401
floor → 502,400
期待ダメージ 502,400。
ここで (13) の特攻と宝具威力を別々に乗算すると 2.0 × 1.3 = 2.6 となり、正しい 2.3 より 約13%過大になる。
この式で計算する
- バトルシミュレーター — 実際のサーヴァント・礼装・敵データを読み込んで、このページの式で 1 枚ずつ計算する。 バトルログの「計算内訳」で (01)〜(18) の各項の実値が確認できる。クエストギミックも再現する。
- サーヴァント図鑑 / カタログ — 宝具倍率・カード構成・クラススキル・スター発生率などの元データ。
- 概念礼装 — 礼装のカード性能アップ・宝具威力アップがどのバケットに入るかは、このページの表と対応する。
- クラススコア — クラススコア盤・グランドサインの各マスがどのバフになるか。
- 編成 — 実際の編成でバフを積んだときの合計値。
関連ページ
- 冠位戴冠戦のダメージを実戦ログと突き合わせた記録 — この式が実戦で本当に合うのかを 3 バトル 9 観測で検証した記録
- スキル対応状況 — 9,643 個のスキル効果のうち、どれがこの式のどこに乗るか
出典
- Atlas Academy fgo-docs — Damage Formula / NP Gain / Crit Stars / 32-bit Float
- Atlas Academy API —
NiceConstant/NiceCard/NiceClassAttackRate/NiceClassRelation/NiceAttributeRelation/NiceBuffList.ActionList(本ページの数値はすべてこれらの実データで確認) - Kyte (Beast's Lair) — How is damage calculated?(fgo-docs の一次出典)
- GamePress — Game Mechanics In-Depth: The FGO Damage Formula / Card Chains / Combat Mechanics(式の相互検証)