ゲーム制作 UnrealEngine5

【UE5】敵キャラクターの作成 (AI Controller)

閲覧いただきまして、ありがとうございます。
今回は、敵キャラクタのフリップブックとブループリントクラスを作成して、
前回作成したAI機能を搭載したAIコントローラーブループリントに組み込む作業をしていきたいと思います。

AI機能について ↓
【UE5】AI ブラックボードとビヘイビアツリー (13) - aki★'s technical-Lab (akihisa-h.com)

UnrealEngine5 ゲーム開発はじめました。数えてシリーズ16回目の投稿になります。

敵キャラクターのフリップブック作成

敵キャラクタ(Enemy)のフリップブックを作成しておきます。

フリップブックの作成について ↓
【UE5】スプライトアクションとフリップブック設定 - aki★'s technical-Lab (akihisa-h.com)

敵キャラクターのブループリント作成

敵キャラクターのブループリントをPlayerで作成したブループリントを複写して作成します。

※名前を付けます。(Enemy~_BP)
※コンポーネントのCamera、SpringArmを削除しておきます
※イベントグラフタブを開いて、すべてのノードを削除しておきます。
※PlayerでPaperZDを使用していたので、
AnimationComponent(Animation)の▼PaperZD Anim Instance Classを「None」
にしておきます

AIコントローラー ブループリントの作成と設定

新規ブループリントクラスを作成します。

親クラスを選択
▼すべてのクラス
aicontroller を検索して、選択します。

名前をつけておきます。

敵キャラクタのブループリント(Enemy_~_BP)を開きます。

ポーン
AI Controller Class に
Enemy_AIController_BP をセットします。

これで、Enemy_Bat1_BP に AI Controller Class を設定できました。

(余談ですが・・・)
AI機能を使って自動でアクターを動かすためには、レベルマップ上に、Nav Mesh Bounds Volume の設置が必要です。

設定するレベルマップにて、追加→ボリューム→Nav~を選択します。

ナビゲーションメッシュは、追加しただけではうまく機能しません。
ステージを覆い包むようにナビゲーションメッシュの位置と大きさを調整する必要があります。

表示→ナビゲーションにチェックをつけることで範囲の確認ができます。

敵キャラクターのブループリント(Enemy_Bat1_AIController_BP) を開いて、
イベントグラフを編集していきます。

BeginPlayノードよりRun Behavior Tree ノードを追加します。
BTAsset に先ほど作成した[Enemy_Bat1_BehaviorTree]を
設定します。

ビューポートに、Pawn Sensing を追加します。
※ Pawn Sensing とは、Actorに「視覚」「聴覚」などの感覚を与えることができるコンポーネントです。

今回は、AIの視覚して、「キャラクターが視界に入ってきたら、ビヘイビアツリーで定義した行動を取るという実装をします。

+追加をクリック
PawnSensingを選択して、追加します。

追加されたPawnSensingを選択して、右クリック

イベントを追加より「OnSeePawn」を追加します

イベントグラフに、「OnSeePawn」ノードが追加されます。

Cast To TopDownCcharacter_BP ノードを追加
Playerのブループリントをキャストすることで、
アクセスすることができるようになります。

Set Value as Object ノードを追加します。
ObjectValue入力ピンに接続することで
プレイヤーをObject型として扱うことができるようになります。

BlackBoardと関連付けします。
Get a reference to self ノード(自分自身の情報を参照するためのノード)を追加して

get blackboard ノードを追加します
▼変数→AI→GetBackboardを選択します。

set value as object ノードのターゲットピンに接続します。
Make Literal Name ノードを追加して、名前をPlayerとします。
set value as object ノードの Key nameピンに接続します。

これで、Playerという名前のObject型のKeyにTopDownCharacter_BP を設定することができました。

Enemy_Bat1_BPをマップ(Main01)レベル上に適当な場所に
配置します。

テストプレイすると、敵キャラクタがプレイヤーに向かって
いくようになりました。

今回は、敵キャラクターをAIコントローラーブループリントでオート動作するしくみを実装してみました。

それでは、また。

【UE5】UnrealEngine5でゲーム開発始めました - aki★'s technical-Lab (akihisa-h.com)

-ゲーム制作, UnrealEngine5

error: Content is protected !!