AI

Last-modified: 2023-10-24 (火) 15:14:19
 

AIはクエストのエネミー制作には必須。
また、自キャラをNPCとして動かす際にも編集しておきたい。
初期状態のままではリアクションも満足に行えないので、是非変えておこう。

設定されたAIは一番上からチェックされ、条件が達成していれば採用される。
つまりは上が優先されるので、順番にも気を遣おう。
設定画面右側の矢印で順番は変更できる。

 

AI設定でよく使う条件

トリガー

複数トリガー
複数の条件をひとつの条件として設定する。
下記の各条件を、「複数のうち全て満たす時」だけ行動させたい時や、「どれかひとつでも満たした時」に行動させたい時に使う。
ステータス
特定のステータスの数値を参照する。
HPが一定以下になった時、相手の防御が高い時、などを条件にする時に使う。
状態
バフやデバフなど、対象が特定の状態になっているかを参照する。
特定のバフが切れた時の掛け直しや、重複しないデバフを同じ対象に使わないようにする場合などに使う。
条件キャラクター数
範囲内の、指定した条件に一致する対象の数を参照する。
後述する「ターゲット・対象の絞り込み」の内容をトリガーに含める場合に使う。

ターゲット・対象の絞り込み

複数ターゲット
複数の条件をひとつの条件として設定する。
下記の各条件を、複数満たした対象や、どれか一つでも満たした対象を狙う時に使う。
キャラクター条件
指定した条件に一致する対象を選択する。
敵・味方の判別や、スキルの射程距離内かどうかを判別させたい場合などに使う。
距離
自分から近い・遠い対象を選択する。
もっとも近い敵を狙う、などの行動をさせたい時に使う。
ランダム
対象を無作為に選ぶ。
他条件と併用し、上記の条件を満たした上で、対象をバラけさせたい時などに使う。

ターゲットの種類

ターゲットの種類には、以下の三つに大別される。

  1. 候補の順番を並び替える「順番系」
  2. 候補から除外する「除外系」
  3. 地点を対象とする「地点系」
順番系
対象候補を並び替えるものが属する。
「最も近い」「HPが低い」「ランダムなキャラクター」など。
除外系
対象を絞り込むものが属する。
「距離が○○」「HPが〇〇以下」「敵」など。

順番系と除外系を適用したあと、先頭のキャラクターが行動の対象として扱われる。

例として、以下のキャラクターがいたとする。

キャラクターABCDE
HP3020503010
DEF75152

このキャラクター群に除外系である「防御が3以下」を適用すると、以下のように絞り込まれる。

キャラクターCE
HP5010
DEF12

このキャラクター群に順番系である「HPが低い」を適用すると、以下のように絞り込まれる。

キャラクターEBADC
HP1020303050
DEF25751

順番系を複数適用する場合

作戦は上から適用されるため、下にある並び替えほど上書きされて優先される。

除外系と違い、順番系は適用するタイミングで結果が変わる。
順番系による並び替えは、安定ソート(ソート前の順序がソート後も保持される)である。
そのため「ランダムなキャラクター」を使う場合は、順番系の中で最も上に書く必要がある(ランダムにすると、ランダム以前のソートに意味がなくなってしまう)。

 

例として、以下のキャラクターがいたとする。

キャラクターABCDE
HP3020503010
DEF75152

順番系である「防御が低い」「HPが低い」をこの順番で適用すると

キャラクターEBDAC
HP1020303050
DEF25571

と並び替えられる。
「HPが低い」だけを適用した場合と見比べてみてほしい。

また、「HPが低い」「防御が低い」の順で適用すると

キャラクターCEBDA
HP5010203030
DEF12557

と並び替えられる。

「必要に応じて移動する」のチェックがある場合

  1. 上の順番系のターゲットと除外系のターゲットを適用する。
  2. 「射程内の(除外系)」を適用する。
  • いれば行動。
  • いなければ以下を実行。
  1. 「道のりで最も近い(順番系)」を適用する
  2. MOVEと射程、対象までの道のりから移動のみか、移動→行動かを判別する
 

アクション

必要に応じて「移動」を宣言する。
チェックを入れると、アクション等の前に勝手に移動を行ってくれる。
MOVE分移動してもレンジ内に対象が入らない場合、アクションそのものをしてくれない
よって、作戦の下の方に、敵に近づくだけの移動命令も仕込んで置いた方が便利。
弓装備時で距離1に隣接された場合、「攻撃(必要に応じて移動)」の1命令で、離れて攻撃しようとしてくれる。
これ以外に敵から逃げる移動命令を加えていると、移動移動攻撃の結果AP不足となり、攻撃できないので気を付けよう。
このアクションを宣言したら、以降は宣言しない
チェックをすると、そのアクションで行動が終了する。

考え方

  • 敵のDEFに応じて、攻撃とスキルを使い分けてみる。
  • 敵が1体のみの場合は専用の行動にしてみる。
 

リアクション

宣言済みのアクションよりも優先する
チェックをすると、アクションのAPを無視してリアクションを取る。(抵抗はAPを消費しないため、)
なお、「アクションの行動者が敵の場合」を設定すると、ストレスなくリアクションをしてくれるだろう。
味方のヒールやブレッシングを抵抗しないよう、特に抵抗だけは設定しておこう。
version:0.8.11.7現在、自分に影響の無い攻撃をAIが無視するので、以前コマンドが存在していた「対象が自分の場合」は不要になっている。
ただしこの弊害で、NPCのガーディアン発動者は、守る先の攻撃に対して自動でリアクションしないため注意。
余談だが、現存する「対象者が自分の場合」は、範囲攻撃に巻き込まれた時にリアクションしなくなるので設定しない方がいい。

考え方

  • 敵のHITに応じて、回避と防御を使い分けてみる。
  • 十分なDEFがあるなら、低ATKからの通常攻撃はリアクション放棄してみる。(ただし、ATKは固定値しか指定できない)
 

AI例

ここでは、PC用の具体的なAI例を掲載する。

全クラス共通

敵に2回「移動」して近づくAI(アクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ「移動」を宣言以降は宣言しない
(空欄)に[攻撃]×
敵、かつ、距離が3以下がいない場合最も近い敵に[移動]××
敵、かつ、距離が3以下がいない場合最も近い敵に[移動]×
(空欄)最も近い敵に[攻撃]

敵との距離によって以下の三つを使い分けるAI。

  1. その場で「攻撃」
  2. 「移動」→「攻撃」
  3. 「移動」→「移動」

とにかく近い敵から倒していく近接攻撃PCにおすすめ。
ターゲットの条件に「現在HPの低い順」「FLEEの低い順」などを追加することで、どんな敵から狙うかを明確にできる。

注意点として、以下の弊害がある。

  • 敵の接近は予想しないで行動するため、無駄に2回移動することがある。
  • 「移動」→「攻撃」でAPを7消費すると、リアクションできなくなる

後者は、シーフであれば[攻撃]を[クイックトリック]に変えるなどである程度改善できる。

拡張例
「勇気の~」系アクセサリーを装備するなどで、条件を満たしている時は2回攻撃するようにしたい場合。一番上にこれを追加する。
トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ「移動」を宣言以降は宣言しない
APが8以上の場合に[攻撃]××

簡易近接AI(アクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ「移動」を宣言以降は宣言しない
(空欄)最も近い敵に[攻撃]
(空欄)最も近い敵に[移動]××

上のAIの簡易版。
行動も上と同じく、この三つを使い分ける。

  1. その場で「攻撃」
  2. 「移動」→「攻撃」
  3. 「移動」→「移動」

ショートボウ用AI(アクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ「移動」を宣言以降は宣言しない
(空欄)敵&距離が1に[攻撃]
(空欄)敵&距離が2、から1離れた地点に[移動]××
(空欄)敵&最も近いに[攻撃]
(空欄)最も近い敵に[移動]××

敵との距離によって、以下四つを使い分けるAI。

  1. その場で攻撃
  2. 一歩下がって攻撃
  3. 敵に近づいて攻撃
  4. 2回移動

最低限の仕事はしてくれるだろう。
壁際に追い詰められると何もできなくなるので注意。

汎用AI(リアクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ優先
対象アクションの行動者のHITが10以下の場合自分に[回避]
(対象アクションの行動者のHITが10以下)&(対象アクションの行動者が味方でない)場合自分に[抵抗]
空欄自分に[防御]
空欄自分に[回避]
対象アクションの行動者が敵の場合自分に[抵抗]

汎用リアクションAI。
自身のステータスや戦術に応じてカスタマイズしよう。

アクションの行動者のHIT(表の例は10)に応じて抵抗or回避か、防御かを選ぶ。
防御のできない状態変化系スキルのために、防御の後にもう一度抵抗と回避を入れてある。
「味方でない」指定付きにより、味方からのバフや回復行動には抵抗しない。

クエストの雑魚敵に簡易的に設定する場合は、下2行だけでも良いだろう。

拡張例
味方の範囲魔法に巻き込まれたときに抵抗したい場合などに。
複数トリガーの「どれかのトリガーが有効」とエフェクトを使って、以下のように置き換えよう。
  • 「対象アクションの行動者が敵の場合」の部分を、「(対象アクションの行動者が敵)または(ダメージを含む)場合」に。

汎用リアクション(敵用)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ優先
{(アクションの行動者が敵)または(ダメージを含む)}かつ
(50%)の場合
自分に[抵抗]
{(アクションの行動者のHITが4より小さい)または(50%)}の場合自分に[回避]
{(アクションの行動者が敵)または(ダメージを含む)}かつ
(アクションの行動者のHITが4より小さい)の場合
自分に[抵抗]
空欄自分に[防御]
空欄自分に[回避]
{(アクションの行動者が敵)または(ダメージを含む)}の場合自分に[抵抗]

敵に乗せるための汎用リアクションAI。
hit条件は、最低限確保してほしいhitの値によって変える。

攻撃へのリアクションは以下のようになる

  • hit3以下抵抗のみ:100%抵抗
  • hit3以下回避のみ:100%回避
  • hit3以下抵抗回避:50%抵抗、50%回避
  • hit4以上抵抗のみ:50%抵抗、50%防御
  • hit4以上回避のみ:50%回避、50%防御
  • hit4以上抵抗回避:50%抵抗、25%回避、25%防御

ウォリアー

シーフ

アーチャー

メイジ

引きうちをするAI(アクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ「移動」を宣言以降は宣言しない
(空欄)敵、かつ、道のりで距離が3以下、かつ、最も近い、から1離れた地点に[移動]××
(空欄)最も近い敵に[魔法]
(空欄)最も近い敵に[移動]××

敵との距離によって以下の四つを使い分けるAI。

  1. その場で魔法
  2. 一歩下がって魔法
  3. 敵に近づいて魔法
  4. 2回移動

最低限の仕事はしてくれるだろう。

アコライト

プロテクション持ち用(リアクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ優先
物理ダメージを含む場合自分に[防御]
対象アクションの行動者が味方でない場合自分に[抵抗]
空欄対象アクションの行動者でない&味方に[プロテクション]

味方(自分含む)にプロテクションを飛ばすAI。
自分に物理ダメージが来た場合は、防御することでSPを節約する。

プロテクションの対象が「行動者以外」となっているのは、自分中心のスキルに対して無駄打ちしないようにするため。
防御のトリガーは、エフェクトから設定することができる。
リアクションなしで受けていい攻撃にも反応するので、そこは手動で何とかしてもらう必要がある。

ダンサー

ナイト

アサシン

ドルイド

ミラージュ持ち用(リアクション)

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ優先
空欄対象アクションの行動者でない&味方に[ミラージュ]
対象アクションの行動者が味方でない場合自分に[抵抗]

味方(自分含む)にミラージュを飛ばしつつ、回避できないスキルが自分に飛んできた場合は抵抗するAI。
ミラージュの対象が「行動者以外」となっているのは、自分中心のスキルに対して無駄打ちしないようにするため。
リアクションなしで受けていい攻撃にも反応するので、そこは手動で何とかしてもらう必要がある。

バード

バーサーカー

ウォーロック

ネクロカウンターを貯めるAI(アクション)ver0.11.1.0

トリガー・行動の条件ターゲット・対象の絞り込みアクションタイプ「移動」を宣言以降は宣言しない
ラウンドが1の時自分に[ネクロポーテンス]××
(空欄)自分に[ネクロポーテンス]××
(空欄)自分に[ネクロポーテンス]××

初手に3回、以降はカウントが3になったら2回ネクロポーテンスをするAI。
カウンターが4以上だとスキルを使用しないため、このような動作になる。
ver0.11.1.0現在の動作なので、アップデートによって動作が変わる可能性あり。

クラウン