Yanfly/YEP.16 - Battle A.I. Core

Last-modified: 2017-11-28 (火) 10:45:29
製作者Yanfly
配布場所http://yanfly.moe/2015/10/19/yep-16-battle-a-i-core/
カテゴリ敵キャラ
関連プラグイン
YEP Battle A.I. Core for Actors with Auto-Battle flag Extension
【外部プラグイン】Battle A.I. Coreと同様のAIを、自動戦闘(オートバトル)するアクターにも搭載可能になるプラグインです。
フォーラム
Battle AI Core TGR extension
【外部プラグイン】TGR(狙われ率)に応じてターゲットを決定するオプションをBattle A.I. Coreに組み込む拡張プラグインです。
フォーラム
AB_EnemyHate
【外部プラグイン】単独では敵キャラのターゲット選択を拡張するヘイトシステムを実装するプラグインです。
 このプラグインで追加されるターゲット選択に使う値「HATE」をBattle A.I. Coreに追加します。
作者サイト

この項目は書きかけです。

プラグイン概要

敵キャラのAI(行動パターン)を拡張するプラグインです。デフォルトでは難しい「HPが減った敵キャラへ回復魔法を使わせる」といった条件に応じて適切な行動を、適切な対象に行わせることができます。ターン開始時ではなく行動前に行動内容を決定する、アクターのとった行動を見て学習する、頭の良し悪しを決めるAIレベルといった要素も追加されます。

使い方メモ

敵キャラのメモ欄に以下のタグを入力します。

<AI Priority>

condition: SKILL x, target

condition: name, target

</AI Priority>

condition: SKILL x, target という部分が行動パターンにあたり、
上から順に条件(condition)を満たすものを探し、
データベースでx番目(または名前がname)のスキルを、対象(target)に使用する、というものになります。

条件 / condition

使用条件と、有効なターゲットになり得るキャラクターの条件を決定する

ALWAYS

常時使用
有効なターゲット:すべてのキャラ

Always: SKILL 1, Random ;ランダムな対象にスキル1を常時使用

ELEMENT X case

属性番号X(または属性名name)の属性有効度を調べ、それがcaseなら使用
100%なら‘Neutral’、 100%超なら‘Weakness’、100%未満なら‘Resistant’、0%なら ‘Null’、0%未満(吸収する)なら‘Absorb’を指定します。
有効なターゲット:属性有効度を満たすキャラ?

Element 1 Weakness: 火炎攻撃, Lowest HP% ;火に弱く、最もHP%が低い対象に火炎攻撃を使用

Element 1 Resistant: 火弱化, Highest HP% ;火に耐性があり、最もHP%が高い対象に火弱化を使用

EVAL eval

任意のコードを条件式に設定する
有効なターゲット:戦闘不能でないすべてのキャラクター

Eval user.name() === ‘こうもり A’: Skill 10, Highest HP% ; 使用者が こうもり A という名前なら、スキル10を最もHP%の高い対象に使用

group ALIVE MEMBERS eval / group DEAD MEMBERS eval

生存中(戦闘不能でない)キャラの数または死亡中(戦闘不能状態の)キャラの数を条件にする
有効なターゲット:groupのキャラ
group’は‘party’(プレイヤーパーティ) または ‘troop’(エネミーパーティ)を指定
eval’は条件式を指定

Party Alive Members > 2: Skill 10, Lowest HP% ;プレイヤーパーティの生存人数が2より大きいなら、スキル10を最もHP%が低い対象に使用

Troop Dead Members <= 4: 復活, Highest ATK ;エネミーパーティの生存人数が4以下なら、復活を最もATKが高い対象に使用

Troop Dead Members === $gameVariables.value(3): Skill 12, Random ;エネミーパーティの生存人数が変数番号[3]と同値なら、スキル12をランダムな対象に使用

stat PARAM eval

指定パラメーターを条件式に設定する
‘stat’は、 ‘atk’, ‘def’, ‘mat’, ‘mdf’, ‘agi’, ‘luk’, ‘maxhp’, ‘maxmp’, ‘hp’, ‘mp’, ‘hp%’, ‘mp%’, ‘level’ のいずれか
有効なターゲット:スキルの対象グループであり、なおかつ条件を満たすキャラクター

HP% param <= 50%: ヒール, Lowest HP% ;HP%が50%以下のキャラのうち、最もHP%が低いキャラを対象にヒール

MP param > 90: マナドレイン, Highest MP ;MP90超のキャラのうち、最もMPが高いキャラを対象にマナドレイン

ATK param > user.atk: パワーブレイク, Highest ATK ;使用者よりATKが高いキャラのうち、最もATKが高いキャラを対象にパワーブレイク

LEVEL param > 10 && target.notState(5): Blind, Random ; レベル10超で、なおかつステート[5]でないキャラのうち、ランダムな対象にブラインド

type PARTY LEVEL eval

RANDOM x%

x%の確率でランダムに使用する。
有効なターゲット:すべてのキャラ

STATE === state x / STATE !== state x

SWITCH X case

TURN eval

VARIABLE X eval

ターゲット / target

<<nothing>>

有効なターゲットグループ内のランダムな対象

First

有効なターゲットグループ内の最初(先頭)の対象

Highest x / Lowest x

パラメーター[x]が最も高い(低い)対象
[x]に使用可能なパラメーター

MaxHP,HP,HP%

MaxMP,MP,MP%

ATK,DEF,MAT,MDF

AGI,LUK,Level

 

コメント

クリックで展開