Environment Query System (EQS) は、Unreal Engine 4 (UE4) の AI ツール内の機能であり、環境に関するデータを収集するために使用できます。データ収集後、ジェネレータを使用して、さまざまなユーザー定義のテストを通じてそのデータに関する質問を行うと、質問のタイプに適した アイテム が返されます。EQS のユースケースの例としては、最も近い体力のピックアップや弾薬を探したり、どの敵が最も脅威となっているのかを把握したり、プレイヤーが見える位置を見つけたりすることが挙げられます (その例を次に示します)。
EQS の背景になる概念的な考え方と理論は、Unreal Engine 3 の Environment Tactical Query (ETQ) システムに基づいています。これについては、記事「Asking the Environment Smart Questions」を参照してください。
EQS の基本
EQS クエリ アセットは コンテンツ ブラウザ で作成でき、専用の Environmental Query エディタ で編集できます。Environmental Query エディタはノードベースのエディタです。このエディタでは、Generator ノードを追加してアイテムを生成したり、それらのアイテムに対して実行する希望のテストやテストを実行するためのコンテキストを追加できます。UE4 にはデフォルトで多くのタイプのジェネレータが用意されています。ただし、ブループリント (またはより迅速に実行するには C ++) を使用すると、独自のカスタムジェネレータを作成できます。
この例では、既存のジェネレータに Distance テストを追加しています。
ジェネレータと同様に、返されたアイテムをフィルタリング (または) スコアリングするために実行できるテストにはさまざまな異なるタイプがあります。ジェネレータとは異なり、カスタム テストは C++ を使用してのみ作成できます。ジェネレータには複数のテストを追加できます。これは、返されるアイテムの結果を絞り込むことができる一般的な方法です。ジェネレータにテストを追加する順序は重要ではありません。テストのフィルタリングはテストのスコアリングの前に実行されるためです。フィルタリングは、返され、スコアリングする必要のあるアイテムを絞り込むために実行されます。テストのタイプについては、下の表を参照してください。
ノード タイプ | 説明 |
---|---|
ジェネレータ | 位置またはアクタ (アイテムとも呼ばる) を生成します。位置またはアクタは実際にテストされ、ウェイト付けされます。 |
コンテキスト | 様々なテストとジェネレータの基準となる枠組みです。 |
テスト | Environment Query がジェネレータのアイテムから「一番良い」選択肢を決定する方法です。 |
これらの各タイプの詳細については、「EQS ノードのリファレンス」を参照してください。
EQS クエリを設定したら、Run EQS Query Task ノードを使用して、ビヘイビア ツリーでそのクエリを実行できます。
EQS クエリの作成と使用に関する詳細な手順については、「EQS クイックスタート ガイド」を参照してください。
EQS の有効化
EQS の使用を開始する前に、[Editor Preferences (エディタの環境設定)] メニューで EQS を有効にする必要があります。
-
[Editor Preferences (エディタの環境設定)] > [Experimental (実験的)] > [AI] セクションで、[Environmental Query System] オプションをオンにします。
EQS Query のプレビュー
エディタで EQS クエリの結果をプレビューすることができます。エディタでは、ウェイト付け/フィルタリングされた結果がデバッグ球体で表されます。
この画像では、レベルのプレイヤー キャラクターが見える位置を返す EQS クエリをデバッグしています。
詳細については、「AI デバッグ」または「EQS Testing Pawn」を参照してください。