AIチュートリアル
参考URL
NavMesh コンテンツ サンプル
https://docs.unrealengine.com/latest/JPN/Resources/ContentExamples/NavMesh/index.html
プロジェクトの作成
Blueprint TopDownを使用する
Nav Mesh Bounds Volume
Model -> [Volumes] -> [Nav Mesh Bounds Volume]を画面にドラッグ
Pキーで表示/非表示切り替え
基本アセットの作成
Blueprintsフォルダの作成
BP_AICharacterを作成する
BT_Followerを作成する
BP_AICharacterのセットアップ
BP_AICharacterをダブルクリックで開く
Meshのスケルタルメッシュを[SK_Mannequin]に設定する
Transform
項目 | X | Y | Z |
---|---|---|---|
Location | 0.0 | 0.0 | -85.0 |
Rotation | 0.0 | 0.0 | -90.0 |
Scale | 1.0 | 1.0 | 1.0 |
Animation
項目 | 値 |
---|---|
Animation Mode | Use Animation Blueprint |
Anim Class | ThirdPerson_AnimBP_C |
CapsuleComponentの大きさをキャラクターが入る大きさにする
- CapsuleComponentを選択する
- Shapeの値を変更する
項目 | 値 |
---|---|
Capsule Half Height | 96.0 |
Capsule Radius | 42.0 |
CharacterMovementの設定を変更する
項目 | 値 |
---|---|
Nav Agent Radius | 42.0 |
Nav Agent Height | 192.0 |
Character Movement: Walking
項目 | 値 |
---|---|
Max Walk Speed | 400.0 |
Class Defaultsをクリック
AI Controller ClassにBP_AIFollowerControllerを設定する
BB_Followerの設定
New KeyをクリックしてKey情報を追加する
Entry Name | Key Type |
---|---|
TargetToFollow | Object |
HomeLocation | Vector |
TargetLocation | Vector |
BP_AIFollowerControllerの設定
処理の実装
Blackboard AssetにBB_Followを設定する
ノードを追加する(Get Blackboard,Get Controlled Pawn)
HomeLocationに値:HomeLocationを設定する
VectorValueにGetLocalLocationのReturnをつなげる
Use Blackboardの実行とSet Value as Vectorの実行をつなげる
Set value as VectorとRun Behavior Treeをつなげる
BP_AICharacterを配置する
BT_Followerを編集する
サービスの作成
Services は Composite ノードにアタッチされ、ブランチの実行中は定義された頻度で実行されるノードです。確認してブラックボードを更新するために頻繁に使用されます。他のビヘイビアツリー システムの通常の Parallel ノードの代わりになります。
BT_Followerを開いた状態で、[New Service]をクリックする
BTService_Bluprint Base Newというファイルが出来るので、名前をBTService_AgroCheckに設定する
変数を設定する
変数名 | 型 |
---|---|
DesiredObjectTypes | EObjectTypeQuery(配列) |
MyLocation | Vector |
AI_CON_Ref | BP_AIFollowerController(Reference) |
TargetToFollow | BlackboardKeySelector |
TargetLocation | BlackboardKeySelector |
DesiredObjectTypesの初期値を設定する
1. 配列を1つ追加する
2. Pawnを設定する
タスクの作成
変数の追加
変数名 | 型 |
---|---|
AI_CON_Ref | BP_AIFollowerController(Reference) |
TargetToFollow | BlackboardKeySelector |
処理の実装
デコレーターの作成
変数の追加
変数名 | 型 |
---|---|
AI_CON_Ref | BP_AIFollowerController(Reference) |
AcceptableDistance | Float |
TargetToFollow | BlackboardKeySelector |
関数の追加と実装
Function [Override] -> [Perform Condition Check]を選択する
ビヘイビアツリーのビルド
サービスを追加
Default
項目 | 値 |
---|---|
Target to Follow | TargetToFollow |
Target Location | TargetLocation |
Service
項目 | 値 |
---|---|
Interval | 0.5 |
Random Devlation | 0.0 |
タスクを追加する
追加したタスクを接続する
Move ToのBlackboardを選択する
左側: Target Location
右側: Home Location
Waitの詳細を設定する
Wait
項目 | 値 |
---|---|
Wait Time | 0.25 |
BTTask_RapidMoveToの詳細を設定する
Default
項目 | 値 |
---|---|
Target to Follow | TargetToFollow |
デコレーターを追加する
Selectorのデコレーターを追加する
Selector:Blackboardの詳細を設定する
Default
項目 | 値 |
---|---|
Observer Aborts | Both |
Selector:BTDecorator Close Enoughの詳細を設定する
項目 | 値 |
---|---|
Acceptable Distance | 100 |
Target to Follow | TargetToFollow |
Sequenceのデコレーターを追加する
Blackboardを追加する
Blackboard(上)の詳細を設定する
Brackboard
項目 | 値 |
---|---|
Key Query | Is Not Set |
Blackboard(下)の詳細を設定する
Brackboard
項目 | 値 |
---|---|
Blackboard Key | HomeLocation |
Is At Locationの詳細を設定する
Condition
項目 | 値 |
---|---|
Inverse Condition | チェック |
Blackboard
項目 | 値 |
---|---|
Blackboard Key | HomeLocation |