ゲームプレイ ターゲット システムのリファレンス
ターゲット リクエスト ハンドル
ハンドル は、ユーザーが 非同期ターゲット リクエスト を開始するときに作成されます。このハンドルはターゲット データ ストア と相互作用するために使用されます。データ ストアは、システムとタスクがターゲット リクエストを達成するために使用する汎用的なデータ構造体に関するテンプレート化されたクラスです。
ターゲット ハンドルが作成されると、ハンドルは暗黙的に解放されません。非同期タスク データまたは即時タスク データを取得し、コールバックのアクティベート後にシステムがそういったデータのためにハンドルを解放する必要があることを示すフラグを設定するかどうかはクリエイター次第です。その他の場合は、コールバックが終了したときにハンドルを解放するのはユーザー次第です。
ターゲット サブシステム
ターゲット サブシステム は、非同期ターゲット リクエストの追跡と、即時ターゲット リクエストのエントリー ポイントとしての役割を担っています。ターゲット サブシステムには、アクティブなターゲット リクエストに関するデバッグ情報を表示するのに役立つコードが含まれています。
ターゲット データ ストア
ターゲット データ ストア は、ターゲット データ ストアを定義するテンプレート化された構造体です。目的は、ターゲット タスクが操作する必要のある汎用的なデータ セットを柔軟に追加、除去、更新できる手段を提供することです。
これにより、将来的なゲームの成長に合わせて、必要なターゲットの目標を達成するために、新規タスクや基本フレームワークのアーキタイプから拡張されたタスクを作成することができます。
独自のカスタム データ ストアを作成するには、#define ライブラリで提供されるいくつかの定型コードが必要です。
ターゲット システムには、3 つの必須データ ストアがあり、1 つは非同期ターゲット リクエストに必要です。システムがターゲット リクエストを適切に実行できるようにするには、これらのデータ ストアを設定する必要があります。
ターゲット タスク
複数のターゲット タスク が、1 つのターゲット プリセットを構成します。ターゲット タスクは、ターゲット シーケンス の小さな再利用可能な部分であると想定されます。ターゲット タスクには、ビヘイビアを定義するための仮想関数 Init および Execute があります。
これらの関数には、デバッグ情報を画面に描画するための仮想関数が含まれています。ターゲット タスクは、通常、以下のいずれかのカテゴリに該当します。
| カテゴリ | 説明 |
|---|---|
Selection |
選択タスクは、ワールドからアクタを選択し、ターゲット リストに配置します。シンプルな例としては、ライン トレースでヒットしたすべてのアクタの選択、エフェクトの領域内のすべてのアクタの選択、ソース アクタの選択などが挙げられます。 |
Sorting |
ソート タスクは、ターゲットのリストを並べ替えます。プラグインが提供するシンプルな例として、ソース アクタからの距離でのソートが挙げられます。 |
Filter |
フィルター タスクは、ターゲット結果のデータ セットを特定の条件に一致するターゲットに絞り込みます。このプラグインが提供するシンプルな例としては、アクタ クラスでのソートが挙げられます。また、このプラグインは、仮想の ShouldFilterTarget 関数を使用するフィルター タスクの基本的なテンプレートも提供します。 |
このプラグインが提供するターゲット タスクには、以下があります。
TargetingFilterTask_ActorClass |
RequiredActorClassFilters リスト内のクラスに一致しないアクタ、または IgnoredActorClassFilters リスト内のクラスに一致するアクタを除去するシンプルなフィルター タスク。 |
TargetingFilterTask_BasicFilterTemplate |
ターゲットをリストから除去する必要がある場合は、true を返す仮想関数 ShouldFilterTarget を含むフィルター タスクのテンプレート。 |
TargetingFilterTask_SortByDistance |
ソース アクタの位置からの距離でターゲット リストをソートします。TargetDefaultResultsData の距離は Score 変数として格納されます。 |
TargetingSelectionTask_AOE |
ソース アクタの位置を中心とした領域と衝突するすべてのアクタを、オプションのオフセットで取得する選択タスク。複数の形状 (ボックス、シリンダー、球体、カプセル) をサポートするだけでなく、コンポーネント タグで指定されたソース アクタ上でのコンポーネントの使用もサポートします。 |
TargetingSelectionTask_SourceActor |
ターゲット リストにソース アクタを追加する選択タスク。 |
TargetingSelectionTask_Trace |
ライン トレースまたはスイープでヒットしたすべてのアクタを、最初のブロッキング ヒット (またはそのエンドポイント) に追加する選択タスク。トレースはソース アクタの位置から開始し、明示的な方向が提供されていない場合に限り、ソース アクタの前方ベクター (ポーンの場合はその制御回転) の方向にトレースされます。 |
TargetingTaskSet |
ターゲット リクエストがターゲットを見つけて処理するために使用する一連のタスク。 |
TargetingDefaultResultData |
単一のターゲットを表す変数 FHitResult および score を含むシンプルな構造体。 |
TargetingDefaultResultsSet |
フレームワーク レベルで実装されたタスクによって使用される基本的なターゲット結果データ。タスクがターゲット リクエストを完了するために追加、除去、およびソートできるデータ (ヒット結果/スコア) の配列を提供します。 |
TargetingSourceContext |
ソース アクタ、扇動者、位置を含むターゲット リクエストのコンテキスト データを保持する構造体。 |
TargetingRequestData |
ターゲット リクエストに関連するデータおよびデリゲートを保持する構造体。ターゲット リクエストが完了したかどうかと、完了時のネイティブのコールバックとブループリントのコールバックの両方を含みます。 |
TargetingAsyncTaskData |
非同期ターゲット リクエストのブックキーピング データを保持する構造体。 |
TargetingImmediateTaskData |
即時ターゲット リクエストのブックキーピング データを保持する構造体。 |