Environment Query System ユーザー ガイド

EQSアセット作成と使用の一般的な方法を説明します。

このページでは、Environmental Query System (EQS) アセットの有効化、作成、および編集の一般的なワークフローについて説明します。

EQS の有効化

EQS の使用を開始する前に、[Editor Preferences (エディタの環境設定)] メニューから EQS を有効にする必要があります。

  • [Editor Preferences (エディタの環境設定)] > [Experimental (実験的)] > [AI] セクションで、[Environmental Query System] オプションをオンにします。

    Enable the **Environment Query Editor** option

EQS クエリの作成

EQS アセットを作成するには、次の手順を実行します。

  1. コンテンツ ブラウザ で、[Add New (新規追加)] ボタンをクリックして、[Artificial Intelligence (人工知能)] で、[Environment Query] を選択します。

    Click the +Add button in the Content Drawer, then under Artificial Intelligence, select Environment Query

  1. 新しい EQS アセットの名前を入力します。

    Enter in a name for your new EQS asset

Environment Query の他、コンテンツ ブラウザではカスタムのジェネレータアセットおよび Context ブループリント アセットを作成できます。

EQS クエリの編集

EQS アセット内で、ジェネレータ を使用すると、テストされ重み付けされることになる位置またはアクタを生成します。コンテキスト を提供し、テスト でジェネレータのどのアイテムが最も良い選択肢であるかを特定できます。次のセクションでは、EQS アセット内でこれらのそれぞれを作成する方法を説明します。

ジェネレータを追加するには、次の手順を実行します。

  • EQS のグラフで右クリックして、希望のタイプのジェネレータを選択します。

    Enter in a name for your new EQS asset

    ジェネレータを追加したら、Root ノードをドラッグしてジェネレータに接続します。

    Drag off the Root node and connect it to your Generator

    Root には複数のジェネレータを接続できますが、クエリでは一番左のジェネレータのみが使用されます。

テストを追加するには、次の手順を実行します。

  • ジェネレータを右クリックして、追加するテストを選択します。

    Right-click on a Generator and select a Test to add

    テストを追加すると、ジェネレータに接続されているように表示されます。テストを選択して、[Details (詳細)] パネルでプロパティを調整します。

    Select the Test to adjust properties in the Details panel

コンテキストを定義するには、次の手順を実行します。

  • テストの [Details (詳細)] パネルで、 EnvQueryContext を希望のコンテキストに変更します。

    Change the EnvQueryContext to your desired Context

    プロパティ名は、テストのタイプに基づいて変わります。詳細については、「テスト」を参照してください。

EQS Query のプレビュー

エディタで EQS クエリの結果をプレビューできます。ウェイト付け/フィルタリングされた結果がデバッグ球体で表されます。

You can preview the results of an EQS Query inside the Editor

この画像では、レベルのプレイヤー キャラクターが見える位置を返す EQS クエリをデバッグしています。

詳細については、「AI デバッグ」または「EQS Testing Pawn」を参照してください。

Behavior Tree で EQS を使用する

EQS Query を作成したら、Behavior Tree 内で タスク の一部としてクエリを実行できます。

  1. Behavior Tree 内で右クリックして、Run EQS Query Task ノードを追加します。

    Right-click and add the Run EQS Query Task node

  2. [Run EQS Query] で、実行する [Query Template (クエリ テンプレート)] (目的の EQS アセット) とこのクエリで返される [Blackboard Key (ブラックボード キー)] を割り当てます。

    Assign the Query Template to execute and the Blackboard Key it should return

    返されるブラックボード キーが最も高いウェイトの結果 (オブジェクトまたはベクター) になります。この例の EQS クエリでは、プレイヤーの場所を特定し、その場所を MoveToLocation という名前のブラックボード キーに提供します。

    必要に応じて、[Query Config (クエリ設定)] オプションを使用して、EQS アセットに渡すパラメータを追加できます。

ネイティブ コードで EQS を使用する

EQS Queries は通常 Behavior Tree 内で実行しますが、ネイティブ コードから直接使用することも可能です。以下のの例は、特定のゾーンでスポーンするためにキャラクターまたはアイテムの安全な場所を探す仮想クエリを示しています。

    // これらの名前は、クエリで使用される変数名と一致する必要があります
    static const FName SafeZoneIndexName = FName(TEXT("SafeZoneIndex"));
    static const FName SafeZoneRadiusName = FName(TEXT("SafeZoneRadius"));

    // ゾーンのインデックスと安全半径に基づいて、安全なスポーンポイントを見つけるためのクエリを実行します
    bool AMyActor::RunPlacementQuery(const UEnvQuery* PlacementQuery)
    {
        if (PlacementQuery)
        {
            // クエリ リクエストをセットアップします
            FEnvQueryRequest QueryRequest(PlacementQuery, this);

            // クエリ パラメータを設定します
            QueryRequest.SetIntParam(SafeZoneIndexName, SafeZoneIndexValue);
            QueryRequest.SetFloatParam(SafeZoneRadiusName, SafeZoneRadius);

            // クエリを実行します
            QueryRequest.Execute(EEnvQueryRunMode::RandomBest25Pct, this, &AFortAthenaMutator_SpawningPolicyBase::OnEQSSpawnLocationFinished);

            // クエリを開始したことを示すために true を返します
            return true;
        }

        // クエリの開始に失敗したことを示すために false を返します
        return false;
    }
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル