概要
このドキュメントでは、ナビゲーション システムのカスタム領域とクエリ フィルタについて学ぶ準備作業として、レベルと 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 (シミュレート)] を押し、エージェントがスフィアに向かって移動する様子を観察します。
このセクションの結果
このセクションでは、目的地に向かって移動し、ナビゲーション クエリ フィルタを使用できるエージェントを作成しました。これで、カスタム ナビゲーション領域とクエリ フィルタ の追加について学習する準備ができました。