次の項目は別ページに分割しました。
関連ページ:
FSM AI Template
入手:
FSM AI Template | Unity Asset Store [Official]
インストール
次のいずれかをインストールしていて併用する場合は、「FSM AI Template」に含まれている Invector-3rdPersonController 以下の内容はインストールする必要がない。
Warning: Uncheck the folder “Invector-3rdPersonController” if you already have it on your project.
参考:
Guideline to Import / Update Invector Assets | Invector Forum
AI Controller
- AI Basic Controller (vControlAI):基本的な AI コントローラー
- AI Combat Controller (vControlAICombat):格闘/刀剣/殴打を行う AI コントローラー
- AI Melee Controller (vControlAIMelee):装備した武器により近接攻撃の種類が変えられる AI コントローラー
- AI Shooter Controller (vControlAIShooter):射撃を行う AI コントローラー
同梱ビヘイビア (FSM Behaviours)
近接攻撃/格闘/刀剣/殴打 (Melee)
- FSM_Melee
- FSM_MeleeCompanion
銃撃戦 (Shooter)
- FSM_Shooter
- FSM_Shooter_v2
- FSM_ShooterBoss
- FSM_ShooterCompanion
- FSM_ShooterCover
- FSM_ShooterSniper
その他
- FSM_ArenaMelee
- FSM_ArenaShooter
- FSM_Blind
- FSM_CivilianSimple
- FSM_CivilianToShooter
- FSM_CivilianFighter
- Wizard_FSM
補助システム
- AI Spawner System:ゲーム内に AI でコントールされたキャラクターを生み出すシステム
- AI Cover System:AI Shooter Controller において遮蔽物に隠れる行動を追加する
- AI Companion:キャラクターを同伴する仲間としてコントロールする
- AI Throw Object:オブジェクトをターゲットに向かって投げる機能を提供する
- AI Simple Holder:武器を携帯する際に保持するオブジェクトをコントロールする
Detection
AI がターゲットにする対象をタグとレイヤーで指定する。
- Tags To Detect
- Layers To Detect
参考:
AI doesn’t attack – Invector Forum
Lost Target & Can See Target Decisions – Invector Forum
移動速度
Simple Melee AI (v_AIController)
Locomotion
- Patrol Speed:パトロール中の速度
- Wander Speed:彷徨っている間の移動速度
- Chase Speed:追跡中の速度
- Strafe Speed:横歩き移動の速度
- Strafe:横歩き移動の設定
- Strafe Sideways:横移動を行うかどうかを指定する
- Strafe Backward:距離が近すぎる際に後ろに下がるかどうかを指定する
- Strafe Distance:横歩き移動を開始する距離 (ターゲットが指定した距離以下の場合に横歩きを行う)
- Min Strafe Swape:同じ方向に横移動を継続する時間の最小値
- Max Strafe Swape:同じ方向に横移動を継続する時間の最大値
- Strafe Rotation Speed:横移動における旋回速度
参考:
How to increase AI speed? not being by patrol and chase – Invector Forum
AI animations running slow – Invector Forum
making Zombie AI – Invector Forum
Why do companions walk so slow? – Invector Forum
経路を巡回させる (Waypoint Area)
動画:
参考:
problem with waypoint system – Invector Forum
Wander
参考:
AI find player – Invector Forum
AI Companion
「AI Companion」コンポーネント (vAICompanion) を付与する。
- Friend
- Friend Tag
- Max Friend Distance
- Min Friend Distance
- Force Follow
参考:
AI companion / follow player – Invector Forum
ダメージを与える
AI Shooter Manager
「Aim」タブ
- Damage Layer:ダメージを与えるパーツが含まれるレイヤーを指定する
- Ignore Tags:攻撃対象に含めないキャラクターのタグを指定する
参考:
AI doesn’t attack – Invector Forum
レイヤー/タグ
キャラクター用レイヤー
Player
Enemy
CompanionAI
動画:
参考:
AI doesn’t attack – Invector Forum
AI doesn’t damage player – Invector Forum
Attacking envoirment and sender of a bullet – Invector Forum
Melee AI
動画:
Shooter AI
使い方
- キャラクターのプレハブまたは FBX モデルをシーンに配置する。
- メニューから「Invector > FSM AI > Create New AI」を選択し、「Create New AI」ウィンドウを開く。
- 「Character Model」に、シーンに配置したキャラクターのプレハブまたはモデルを設定する。
- 「Animator Controller」に
Invector@ShooterMelee
を設定し、「FSM Behaviour Controller」にFSM_Shooter
を設定する。 - 「Type of Controller」として、ドロップダウンリストから
vControlAIShooter
を選択する。 - 生成された AI キャラクターに「Enemy」タグが付与され、「Enemy」レイヤーが割り当てられていることを確認する。(他のタグやレイヤーを使用する場合は変更する。)
- モデルの「Head」オブジェクトの下に Empty オブジェクトを追加し、名前を
Eyes
に変更する。「Eyes」オブジェクトをキャラクターの眉間の辺りに配置する。 - 「AI Shooter Controller」を開き、「Detection」タブで「Detection Point Reference」として「Eyes」オブジェクトを割り当てる。
- 「Detect Layer」に
Player
及びCompanionAI
を指定し、「Detect Tags」にPlayer
及びCompanionAI
を指定する。 - 「AI Shooter Manager」を開いて「Aim」タブに切り替え、「Damage Layer」として
Default
、Player
、CompanionAI
、BodyPart
を設定する。 - モデルの「RightHand」オブジェクトの下に「defaultHandler」を作成し、その下にセットアップ済みの武器 (例えば、
AI_vAssultRifle
など) を配置し、「defaultHandler」の位置及び姿勢を調整してキャラクターに武器を持たせる。 - IK Adjust を通常の Shooter と同様に調整する。
- キャラクターに「Hit Damage Particle」コンポーネントを追加し、被弾時のエフェクトを「Default Damage Effects」及び「Cutom Damage Effects」に設定する。
- 「AI Shooter Controller」を開いて、「Agent」タブに切り替えて「Stopping Distance」を
0.5
に設定し、「Combat Setting」タブに切り替えて「Attack Distance」を5
~15
程度に設定する。 - 「Agent」、「Waypoint」、「Detection」、「Combat Settings」、「Shooter Setting」タブを適宜切り替えて、各種パラメータを調整する。
プロパティ
Combat Settings
- Attack Settings
- Min Attack Time:攻撃時間の最小値
- Max Attack Time:攻撃時間の最大値
- Min Attack Count:攻撃回数の最小値
- Max Attack Count:攻撃回数の最大値
- Attack Distance:攻撃中に近付く距離
- Blocking Settings
参考:
射撃武器を使う敵の制作方法 | 特に深い内容はないのあちゃんゲーム作りたいブログ
動画:
How to Add AI Enemy for Shooting Game
Generic AI
動画:
Creating Generic Animal AI Bear Enemy
How to Create Generic AI Enemy Such as Monster or Animal / Tiger AI Enemy
Headtrack
動画:
#9 Headtrack and Look Around FSM
AI Enemy Head Track and Look Around FSM Behaviors
カスタムビヘイビア (Custom Behaviour / FSM Editor)
動画:
FSM Finite State Machine for Creating Advance Custom AI Behaviors
ジャンプ/しゃがみ (Jump / Auto Crouch)
動画:
AI と会話する
参考:
AI detection and talk – Invector Forum
死んだ AI をプールに戻す/状態をリセットする
参考:
Resetting AI for Pooling – Invector Forum
カスタムターゲット
参考:
Attacking envoirment and sender of a bullet – Invector Forum
デバッグ
AI Controller
- Debug Visual Detection:視覚的な検出をデバッグする
- Debug Ray Sight:視線をデバッグする
- Debug Last Target Position:最後に確認したターゲットの位置を表示する
- Current Target:現在のターゲット
- Is Fixed Target:ターゲットが固定されているかどうか
- Received Damage:受けたダメージ
- Is Valid
- Last Value
- Last Type
- Last Sender
- Massive Count
- Massive Value
- Combat
- Is In Combat
- Is Aiming
- Is Blocking
- Can Aiming
- Can Shot
- Waiting Reload
- Shots
- Debug Aim:デバッグ用にエイムの補助線を表示する
- Lock Aim Debug:エイム状態に固定する
- Debug Aim Position:デバッグ用エイムの位置
Visual Detection
キャラクターを選択し、「AI Controller」の「Debug」タブで「Debug Visual Detection」を有効にする。
- 最小探索距離 (Min Distance to Detect):薄い灰色の円/視界に入らなくても検出する範囲
- 視界 (Field of View):黄色の扇形/半径が「Max Distance to Detect」で、角度が「Field of View」
- 追跡範囲:薄い黄色の円/半径が「Max Distance to Detect」と「Lost Target to Distance」の合計した距離/これ以上離れた状態で指定時間が経過するとターゲットを見失う
- 近接戦闘距離 (Combat Distance):薄い青紫色の円/近接戦闘を行う範囲
FSM Debugger
メニューから「Invector > FSM AI > FSM Behaviour > Open FSM Debug Window」を選択して、「FSM Debugger」ウィンドウを開く。または、FSM Editor のメニューで「Tools > FSM Debugger」を選択して、「FSM Debugger」ウィンドウを開く。
- Any State
- Last State
- Current State
各状態からの遷移とそれらの条件、及び判定の状態が表示される。
Debug Message Window
右上の瞳アイコンで「Debug Message Window」の表示/非表示を切り替える。
Debug Message Window には、AI のステートマシンから発生したデバッグ用メッセージが記録される。
サンプルシーン
- FSM_AI_Action-Ranged
- FSM_AI_Action
- FSM_AI_Arena
- FSM_AI_Cover-Throw-Companion
- FSM_AI_Examples
- FSM_AI_IKLab
- FSM_AI_Spawner
アドオン
Ranged_Magic.unitypackage
:範囲魔法Shooter_With_Shield.unitypackage
:盾を使用するシューター
AI の挙動がおかしい
- キャラクターのコライダーを適切に設定する。
- タグ及びレイヤーを適切に設定する。(キャラクター/環境オブジェクト)
- Nav Mesh Agent を適切に設定する。
- 「Radius」及び「Height」をカプセルコライダーの大きさと合わせる。
- Nav Mesh をベイクする。
参考:
Follower AI Companion – Invector Forum
インポート後に正常に動作しない
参考:
Error when I import FSM AI – Invector Forum
スポナー (Spawner)
スクリプト
vAISpawn
:AI Spawn System
アセット
参考:
Spawning System – Invector Forum
Ultimate Spawner – Invector Forum
比較/検討/開発
参考:
FSM AI or Emerald AI? – Invector Forum
boss battle style AI – Invector Forum
紹介記事
Invector の FSM AI | BTA のモデル展示場
更新履歴
FSM AI Changelog | Invector Forum [Official]
フォーラム
FSM AI Template | Invector Forum [Official]
FSM AI Discussion | Invector Forum [Official]
FSM AI Template by Invector | Unity Forum
ドキュメント
AI Documentation | Invector [Official]
公式チュートリアル
#9 Headtrack and Look Around FSM
プレイリスト
AI Template Tutorials – YouTube
Swimming Add-on
動画:
入手:
Swimming Add-on for FSM AI Template | Unity Asset Store [Official]