この記事ではFEHのAIが攻撃時にどのようなプロセスを経て攻撃を行うのかを説明します。具体的には以下を決定するまでの流れについて説明します。
- 誰が攻撃するのか(最適な攻撃者の決定)
- 誰を攻撃するのか(最適な攻撃対象の決定)
- どのマスで攻撃するのか(最適な攻撃マスの決定)
以下のような盤面を例として説明します。
敵は全員補助を装備していないこととします。
- 攻撃可能なユニットの攻撃対象を列挙する
- すべての攻撃パターンについて戦闘結果を評価する
- 各攻撃対象を攻撃する最適マスを決定する
- 各攻撃者の攻撃対象候補の中から最終的な攻撃対象を決定する
- 攻撃者候補の中から最適な攻撃者を決定する
- 攻撃する
- まとめ
攻撃可能なユニットの攻撃対象を列挙する
まずは攻撃可能なユニットの攻撃対象を洗い出します。セイロスは攻撃可能な敵がいません。
伝承リリーナはエイル、フレイヤに攻撃可能です。
伝承アルムはフレイヤに攻撃可能です。
まとめると各ユニットの攻撃可能な敵は以下です。
- セイロス
- なし
- 伝承リリーナ
- エイル、フレイヤ
- 伝承アルム
- フレイヤ
すべての攻撃パターンについて戦闘結果を評価する
敵の攻撃パターンをすべて列挙し、それらの攻撃パターンで発生する戦闘の戦闘結果を評価します。具体的には以下の情報を計算しておきます。
- 戦闘の勝敗(勝ち、負け、引き分け)
- ダメージ率
- [ダメージ率] = [与えるダメージ] * 3 - [受けるダメージ]
- ここで計算されるダメージはHPの変化量を表す(敵のHPを超える分のダメージは加味されない)
- 回復はマイナスダメージとしてカウント
- 範囲奥義はメインターゲットへのダメージのみ[与えるダメージ]に加算する
- 戦闘後に付与される弱化
- 戦闘後の敵の奥義カウント変動量
- 戦闘後に攻撃相手の奥義カウントがどのように変動するか
伝承リリーナが防御床からエイルへ攻撃した時の戦闘結果は以下のようになります。画像は割愛しますが、伝承リリーナがフレイヤの上のマスからエイルを攻撃した時の戦闘結果も同様に計算しておきます。
伝承リリーナからフレイヤへ攻撃時の戦闘結果は以下のようになります。
伝承アルムからフレイヤへ攻撃時の戦闘結果は以下のようになります。各攻撃対象を攻撃する最適マスを決定する
前の項目で計算した情報を使用して、各攻撃対象について以下の優先度に基づいて攻撃に最適なマスを決定します。1から条件を評価し、優劣がつかない場合は高い番号の条件を評価していきます。
- 最高の戦闘結果:勝ち > 引き分け > 負け
- ダメージ率:最高
- 防御地形:はい > いいえ
- 敵の脅威数:最低
- テレポートを必要とする:はい > いいえ
- 特殊な地形:飛行地形>森>溝≧通常(騎馬の場合のみ、溝>通常)
- 必要な移動マス数:最低
- 下のマスほど優先
- 左のマスほど優先
伝承リリーナがエイルに攻撃可能なマスは以下の2マスのみです。
これらの2マスの優先度を比較すると防御地形のマスの方がダメージ率が高く、優先度が高いので、エイルを攻撃するのに最適なマスは防御地形のマスとなります。
伝承リリーナがフレイヤに攻撃可能なマスは以下の1マスのみです。
伝承アルムがフレイヤに攻撃可能なマスは以下の1マスのみです。
各攻撃者の攻撃対象候補の中から最終的な攻撃対象を決定する
前の項目で計算した戦闘結果に基づいて、各攻撃者が誰を攻撃するのが最適なのかを決定します。以下の優先度で攻撃対象を決めます。1から条件を評価し、優劣がつかない場合は高い番号の条件を評価していきます。
- 最高の戦闘結果:勝ち > 引き分け > 負け
- 守備または魔防のいずれかを2以上弱化できる:はい > いいえ (「デバッファー」状態のみを持つアタッカーを比較)
- ダメージ率:最高
- 奥義カウントを増加させることができる:はい > いいえ
- スロット番号:最高(編成順が右側ほど優先)
「デバッファー」状態というのは特定のスキルを装備した場合のみになり得る状態です。具体的なスキルについては敵AIの行動順序の攻撃の優先順位の項目の条件2に記載しています。
攻撃対象の候補が複数いるのは伝承リリーナだけになります。伝承リリーナの攻撃対象を上記の優先度に基づいて決定します。伝承リリーナからエイル、フレイヤへの戦闘結果を確認します。
いずれも伝承リリーナが勝利することが分かります。すなわち、条件1については優劣がつきません。
条件2については伝承リリーナはデバッファーになるための条件を満たさないので「いいえ」となり、優劣がつきません。
条件3のダメージ率の比較に移ります。ダメージ率は以下の計算式で計算できます。
- [ダメージ率] = [与えるダメージ] × 3 - [受けるダメージ]
- ここで計算されるダメージはHPの変化量を表す(敵のHPを超える分のダメージは加味されない)
- 回復はマイナスダメージとしてカウント
- 範囲奥義はメインターゲットへのダメージのみ[与えるダメージ]に加算する
エイルへのダメージ率は51×3=153です。フレイヤへのダメージ率は45×3=135です。エイルへの攻撃対象の優先度が高いことが分かります。このように、いずれも一撃で倒せる場合はHPが高い方が攻撃対象として優先されます。
以上より、攻撃対象は以下のようになります。
- 伝承リリーナの攻撃対象はエイル
- 伝承アルムの攻撃対象はフレイヤ
攻撃者候補の中から最適な攻撃者を決定する
最後に伝承リリーナと伝承アルムのどちらが攻撃するのが最適なのかを以下の優先度に基づいて決定します。1から条件を評価し、優劣がつかない場合は高い番号の条件を評価していきます。
- 最高の戦闘結果:勝ち > 引き分け > 負け
- 「デバッファー」状態を持ち、対象を守備または魔防のいずれかを2以上デバフすることができる:はい > いいえ
- 最良のターゲットに対して「アフリクター」状態を持っている:はい > いいえ
- ダメージ率:最高
- アタッカーの移動範囲: 最高(基本は 騎馬>歩行=飛行>重装 だが移動制限や移動力アップを加味する)
- ターゲットの奥義カウントを増加させることができる:はい > いいえ
- スロット番号:最高(編成順が右側ほど優先)
この条件の「アフリクター」状態というのは特定のスキルを装備した場合のみになり得る状態です。具体的なスキルについては敵AIの行動順序の攻撃の優先順位の項目の条件3に記載しています。
伝承リリーナからエイルへの戦闘結果を確認します。
伝承アルムからフレイヤへの戦闘結果を確認します。
この2つの戦闘結果を比べると条件1で優劣がつくことが分かります。伝承リリーナは攻撃対象であるエイルに勝つことができますが、伝承アルムからフレイヤに攻撃した場合は引き分けとなります。よって、伝承リリーナの方が伝承アルムよりも攻撃優先度が高いことになります。
攻撃する
最適な攻撃者は伝承リリーナで、伝承リリーナの最適な攻撃対象はエイル、最適な攻撃マスは防御地形のマスであることが決まったので、攻撃します。
以下が攻撃後の盤面です。
この盤面で、また同じように行動可能なユニットの中で攻撃対象の決定から同じ計算を繰り返します。ここで複数攻撃者の候補がいる場合はこれまでと同様の手順で最適な攻撃者を絞り込みますが、残った攻撃者は伝承アルムだけなので、次はアルムがフレイヤを攻撃することになります。
これで敵AIの攻撃の流れの説明は終わりです。
まとめ
攻撃者、攻撃対象、攻撃マスは以下の手順で決定します。
- 各攻撃者の攻撃対象、攻撃可能なマスを列挙
- すべての攻撃パターンについて、戦闘結果を計算しておく
- 各攻撃者の攻撃対象それぞれについて最適な攻撃マスを決定
- 各攻撃者の最適な攻撃対象を決定
- 各攻撃者の中から最適な攻撃者を戦闘結果から決定