概要
このドキュメントでは、ナビゲーション システムのカスタム領域とクエリ フィルタについて学ぶ準備作業として、レベルと AI エージェントを作成する手順を説明します。
なお、完全なサンプル プロジェクト をダウンロードすることもできます。サンプル プロジェクトには、このガイドで取り上げるすべてのマテリアルが含まれています。
目的
-
新しいレベルを作成し、レベルにナビゲーション メッシュ アクタを配置してナビゲーションをセットアップする。
-
特定のクエリ フィルタを使用してターゲットに移動するように ThirdPersonCharacter ブループリントを変更する。
1 - 必要な設定
-
Unreal プロジェクト ブラウザの [New Project Categories (新規プロジェクト カテゴリ)] セクションで [Games (ゲーム)] > [Third Person (サードパーソン)] テンプレートの順にクリックします。
-
[Blueprint (ブループリント)] と [No Starter Content (スターター コンテンツなし)] オプションを選択し、[Create] をクリックします。
このセクションの結果
新規のサードパーソン プロジェクトを作成し、領域のクラスとナビゲーション クエリ フィルタの作成について学ぶ準備ができました。
2 - テスト レベルを作成する
-
メニューバーで [File] > [New File...] の順にクリックします。
-
[Basic] レベルを選択して [Create] をクリックします。
-
アウトライナ で [Floor] スタティック メッシュ アクタを選択し、[Details (詳細)] パネルで [Scale (拡大・縮小)] を X = 10、Y = 10、Z = 1 に設定します。
-
[Place Actors (アクタを配置)] パネルに移動し、「Nav Mesh Bounds Volume」を検索します。これをレベルにドラッグして、Floor メッシュ上に配置します。
-
[Nav Mesh Bounds Volume] を選択した状態で [Details] パネルに移動し [Scale] を X = 5、Y = 10、Z = 1 に設定します。
-
[Place Actors] パネルの [Shapes] カテゴリに移動します。[Sphere (スフィア)] アクタをレベルにドラッグします。
このセクションの結果
このセクションでは、新規レベルを作成し、ナビゲーション メッシュとスフィア アクタを追加しました。スフィア アクタを目的地に歩くエージェントを作成する準備が整いました。
3 - エージェントを作成する
このセクションでは、ターゲット アクタに向かって移動するエージェントを作成します。
-
コンテンツ ドロワー で右クリックし、 [New Folder (新規フォルダ)] を選択して新しいフォルダを作成します。このフォルダに「NavigationSystem」という名前を付けます
-
コンテンツ ドロワー で、 「ThirdPersonBP」>「Blueprints」 の順に移動し、 [ThirdPersonCharacter] ブループリントを選択します。これを「NavigationSystem」フォルダにドラッグし、 [Copy Here (ここにコピー)] オプションを選択します。
-
「NavigationSystem」フォルダに移動して、ブループリントの名前を「BP_NPC_CustomZone」に変更します。ブループリントをダブルクリックして開き、イベント グラフ に移動します。入力ノードをすべて選択して削除します。
-
イベント グラフ を右クリックし、「Add Custom Event」を検索、選択します。イベントに「MoveNPC」という名前を付けます。
-
[My Blueprint (マイ ブループリント)] パネルに移動し、 [Variables (変数)] の隣の 追加 (+) ボタン をクリックして新しい変数を作成します。変数に「Target」という名前を付けます。
-
[Details] パネルに移動し、[Variable Type (変数の型)] ドロップダウンをクリックします。「Actor」を検索して、[Object Reference (オブジェクト参照)] を選択します。[Instance Editable (インスタンス編集可能)] チェックボックスをオンにします。
-
Target 変数を イベント グラフ にドラッグして [Get Target (Target を取得)] オプションを選択します。以下のように、Target ノードからドラッグして「Is Valid」マクロを検索、選択します。
-
イベント グラフ を右クリックし、「Get reference to self」を検索して選択します。
-
Self ノードからドラッグして、「Get AIController」を検索、選択します。
-
AI Controller ノードからドラッグして、「Move to Actor」を検索、選択します。
-
Is Valid ノードの Is Valid ピンを Move to Actor ノードに接続します。Move to Actor ノードの Acceptance Radius を 50 に設定します。Target 変数をドラッグして Move to Actor ノードの Goal ピンに接続します。
-
Move to Actor ノードの Filter クラス ピンを右クリックして [Promote to Variable (変数へ昇格)] を選択します。[Details] パネルに移動して [Instance Editable (インスタンス編集可能)] チェックボックスをオンにします。
-
イベント グラフ を右クリックし、「Event Begin Play」を検索して選択します。Event Begin Play ノードからドラッグして「MoveNPC」を検索、選択します。
-
ブループリント を コンパイル して 保存 します。完成したブループリントは、次の画像のようになります。
-
BP_NPC_CustomZone ブループリントをレベルにドラッグします。[Details] パネルに移動し、 [Target] の隣のドロップダウンをクリックします。以下のように、「Sphere」を検索、選択します。
-
[Simulate (シミュレート)] を押し、エージェントがスフィアに向かって移動する様子を観察します。
このセクションの結果
このセクションでは、目的地に向かって移動し、ナビゲーション クエリ フィルタを使用できるエージェントを作成しました。これで、カスタム ナビゲーション領域とクエリ フィルタ の追加について学習する準備ができました。