-
-
Notifications
You must be signed in to change notification settings - Fork 2
mobのAI
Mobの動き方やスキルの実行を制御します。各種トリガーでの実行やループでの実行ができます。
AI
┣ Death
┣ Time
┣ Damage
┣ Initial
┣ Attack
┣ Block
┣ Tick
┣ Passenger
┃ ┣ Type
┃ ┣ Check
┃ ┗ Call
┣ ProjectileDamage
┃ ┣ Physical
┃ ┣ Fire
┃ ┣ Ice
┃ ┣ Lightning
┃ ┣ Light
┃ ┗ Dark
┣ TurnCount
┗ Turn #List
┗ {
┣ Index
┣ Target
┃ ┣ Look
┃ ┣ Radius
┃ ┣ MinRadius
┃ ┣ IgnoreBlocks
┃ ┗ Rotation
┣ Move
┃ ┣ Front
┃ ┣ Side
┃ ┗ Up
┣ Rotate
┣ Skill #List
┃ ┗ {
┃ ┣ Interval
┃ ┃ ┣ Min
┃ ┃ ┣ Max
┃ ┃ ┗ Current
┃ ┣ Loop
┃ ┃ ┣ Max
┃ ┃ ┣ Range
┃ ┃ ┗ Current
┃ ┣ Once
┃ ┣ MP
┃ ┗ Call
┣ Once
┗ Exit
┣ Loop
┃ ┣ Max
┃ ┗ Current
┣ Condition
┗ Time
必須。MobAIのルートタグ。
任意。CallOnDeath
タグの付与が必要。Mobが死亡した時に実行するスキルを指定する。
mobの仕様#Call類
任意。PortalCooldownの設定とCooldownRequired
,CallOnTimeOut
タグの付与が必要。MobのPortalCooldownが0になった時に実行するスキルを指定する。
mobの仕様#Call類
任意。CallOnDamage
タグの付与が必要。Mobがダメージを受けた時かつHitDamageTaken
が付与されているときに実行するスキルを指定する。
mobの仕様#Call類
任意。CallOnInit
タグの付与が必要。Mobが召喚したときに実行されるスキルを指定する。
mobの仕様#Call類
任意。CallOnAttack
タグの付与が必要。Mobがプレイヤーに直接攻撃したとき、Mobが投てきしたエンティティ(撃った矢など)がプレイヤーに当たったときに実行されるスキルを指定する。
mobの仕様#Call類
任意。CallOnBlock
タグの付与が必要。SmartMotionを使用したうえで、ブロックに当たった際に実行されるスキルを指定する。
mobの仕様#Call類
任意。HasAI
,CallOnTick
タグの付与が必要。毎tick実行するスキルを指定する。Turn[].Skillの後に実行される。
mobの仕様#Call類
任意。HasAI
タグの付与が必要。騎乗状態について毎tickチェックする。
以下子タグの説明。
必須。対象のMobの上下どちらを確認するかを指定。"up"
or "down"
のみ有効。
必須。Mobの有無を確認するかを指定。bool値のみ有効。true
の場合は存在するかどうかを確認する。false
の場合は存在しないかどうかを確認する。
必須。条件を満たした時に実行するスキルを指定する。
シート状だとCall_Passenger
mobの仕様#Call類
以上Passengers
の子タグの説明。
味方側の弾に指定する攻撃力。Physical
,Fire
,Ice
,Lightning
,Light
,Dark
の各属性攻撃値を指定する。
Turn
がある場合必須。Turnのリストの数を記入する。
CallSkillのChangeTurn.Setで使用する。
任意。HasAI
タグの付与が必要。リスト型。リスト内の行動パターンを繰り返し実行する。
以下子タグの説明。
必須。現在のTurnリストの順番を記入する。1から採番する。
CallSkillのChangeTurn.Setで使用する。
任意。Mobの敵対対象を探索する。敵対対象の位置には0-0-0-0-2
が用意される。
以下子タグの説明。
必須。どの種類のMobに敵対するかを指定。"Player"
,"Friendly"
,"Enemy"
,"Mob"
,"All"
,"Parent"
,"Child"
,"Fixed"
のみ有効。
"player"
はプレイヤー、"Friendly"
はプレイヤー含むFriendlyチームに入っているエンティティ、"Enemy"
はEnemyタグが付いている敵エンティティ、"Mob"
はMobタグが付いているエンティティ、"All"
は全てのMob、"Parent"
は紐づけられたParentのエンティティ、"Child"
は紐づけられたChildのエンティティが対象となる。
"Fixed"
は自身の向きに対し相対的に固定の向きを見る。Rotation
でどの方向を見るかを指定する。またこの場合Radius
とIgnoreBlocks
の指定が必要ない。
Look
がFixed
以外ならば必須。探索範囲(半径 m)を指定する。double型の数値が有効。
Look
がFixed
以外ならば任意で、Radius
の指定が必須。探索範囲(半径 m)を指定する。double型の数値が有効。
Look
がFixed
以外ならば必須。探索時に当たり判定のないブロック(block:no_collision)を無視するかどうかを指定する。bool値のみ有効。true
の場合、ブロックがあればその時点で探索を中断する。false
の場合、ブロックがあっても探索を続行する。
未指定の場合、false
と同じ挙動をする。
以上Target
の子タグの説明。
Look
がFixed
ならば必須。"LeftUp"
,"LeftDown"
,"RightUp"
,"RightDown"
が有効。値の通りの方向を向く。
任意。Mobの移動を制御する。
それぞれには最大10.23(約10m)まで指定できる。
以下子タグの説明。
任意。Mobの正面方向の速度を指定する。double型の数値(0.01単位)が有効。Mobの前側に0-0-0-0-2
がいた場合、前方向の速度になる。Mobの後ろ側に0-0-0-0-2
がいた場合、後ろ方向の速度になる。
任意。Mobの横方向の速度を指定する。double型の数値(0.01単位)が有効。Mobの左側に0-0-0-0-2
がいた場合、左方向の速度になる。Mobの右側に0-0-0-0-2
がいた場合、右方向の速度になる。
任意。Mobの上下方向の速度を指定する。double型の数値(0.01単位)が有効。Mobの上側に0-0-0-0-2
がいた場合、上方向の速度になる。Mobの下側に0-0-0-0-2
がいた場合、下方向の速度になる。
以上Move
の子タグの説明。
任意。floatのリスト型。水平・垂直方向の回転速度を指定する。Ratate[0]
は水平方向、Rotate[1]
は垂直方向。
正の値のときはその角度だけ回転させる。負の値のときはTarget
タグのエンティティをちょうど向くように回転させる。
任意。リスト型。リスト内のスキルを繰り返し実行する。
以下子タグの説明。
必須。スキル発動までのインターバルを指定する。このタグを指定しなかった場合、スポーン後に即スキルを発動し、次回のインターバルを0-2147483647 から決定する。
以下子タグの説明。
任意。次回のインターバルの最小値。int型の数値が有効。
シート状だとMin_Interval
任意。次回のインターバルの最大値。int型の数値が有効。
シート状だとMax_Interval
任意。現在のスキル発動でのインターバル。スポーン後最初にスキルを発動するまでの時間の指定もできる。int型の数値(1以上)が有効。
以上Interval
の子タグの説明。
シート状だとCurrent_Interval
任意。現在のスキルを何回繰り返すかを指定する。
以下子タグの説明。
任意。2巡目以降のLoop.Currentを指定する。
シート状だとMax_Loop_Skill
任意。2巡目以降のLoop.Currentをランダムに指定する。
Max~Max+Rangeで決定される。
シート状だとRange_Loop_Skill
任意。現在のスキルの残り繰り返し回数。0になった時に次のスキルをセットする。最初にスキルがセットされた時に繰り返す回数も指定できる。
以上Loop
の子タグの説明。
シート状だとCurrent_Loop_Skill
任意。現在のスキルがSkill
リストで繰り返される残り回数を指定する。Loop
が終わって次のスキルがセットされる時にOnce
がカウントする。0になった時にこのスキルはSkill
リストから削除される。指定しない場合、このスキルはずっと繰り返される。
任意。スキル実行に必要なMPを指定する。スキル実行前に判定し、実行後に消費する。
スキルのConditionでMPが変動し、必要なMP > 現在のMP
になった場合、実行後のMP消費はなくなる。
必須。実行するスキルを指定する。
mobの仕様#Call類
シート状だとCall_Skill
以上Skill
の子タグの説明。
任意。現在のターンがTurn
リストで繰り返される残り回数を指定する。ターンが終わって次のターンがセットされる時にOnce
がカウントする。0になった時にこのターンはTurn
リストから削除される。指定しない場合、このターンはずっと繰り返される。
任意。この行動パターンを終了し、次のパターンをセットする条件を指定する。
以下子タグの説明。
任意。Skill
リストの中がループした時にカウントする。
以下子タグの説明。
任意。2巡目以降のループのカウントを指定する。
シート状だとMax_Loop_Exit
任意。現在のループ残り回数。最初にパターンがセットされた時の回数も指定できる。Skillの順序が1つ消費された際に回数が減り、0になった時にこの行動パターンを終了する。
以上Loop
の子タグの説明。
シート状だとCurrent_Loop_Exit
任意。Conditionに成功したらこの行動パターンを終了する。
mobの仕様#Call類
シート状だとConditon
任意。この行動パターンの時間(tick)を指定する。0になった時にこの行動パターンを終了する。int型の数値が有効。
シート状だとTime_Exit
以上Exit
の子タグの説明。
以上Turn
の子タグの説明。
上にMobが乗っているかどうかを確認する。
{
AI: {
Passengers: {
Type: "up",
Check: true,
Call: [{Name:"<Skill>"}]
}
}
}
スキルを AAABBAAABBAAABBBBBB… と実行する。
#AAAで一つ、BBで一つと考える。
#AAAは3回だけでいい。
{
AI: {
TurnCount: 2
Turn: [
{
Index: 1
Interval: {
Min: 10,
Max: 60,
Current: 35
},
Loop: {
Max: 3,
Current: 3
},
Once: {
Current: 3
},
Call: [{Name:"A"}]
},
{
Index: 2
Interval: {
Min: 20,
Max: 35,
Current: 27
},
Loop: {
Max: 1,
Range: 2,
Current: 2
},
Call: [{Name:"B"}]
}
}
]
}
現在のTurnを終了して次のTurnに移動する処理があるが、終了する条件が
Exit.Loop
,Exit.Time
,Exit.Condition
,CallSkill ChangeTurn
と複数個ある。
これらの条件を一つでも満たすと次のTurnに移動し、それ以外の条件は満たしていても無視されることがある。
条件がチェックされる順番は、
- ChangeTurn
- Condition
- Loop
- Time
である。
Exitの条件を複数個使用するときはチェックの優先度を考えて使用するとよい。
Copyright © 2024 TUSB Corporation. All Rights Reserved.
このページの内容もしくは直接リンクを他サイトやSNSへの転載もしくは引用する事を禁止します。