Top > EQS
#contents ---- * 参考 [#cc19b484] - Environment Query System - UE4 Document https://docs.unrealengine.com/latest/JPN/Engine/AI/EnvironmentQuerySystem/index.html - [UE4] EQSで群れを動かす - historia http://historia.co.jp/archives/4996 - Setting Up Advanced AI - youtube https://www.youtube.com/watch?v=NZZtMNdJk5o - UE4 EQS Tutorial Pt1 - youtube https://www.youtube.com/watch?v=8WxiTehK6Kc * メモ [#b3ba77e5] UE 4.13 - ナビメッシュが生成されていないとテスト出来ない。 - 特定のアクター、Locationからだけ抽出したい場合、「EnvQueryContext_BlueprintBase」を継承したContextを作成してクエリに設定する https://docs.unrealengine.com/latest/JPN/Engine/AI/EnvironmentQuerySystem/QuickStart/10/index.html - 設定中の自作contextを編集した場合、レベルを開き直さないと適用されない時がある - FlyモードなCharacterMovementがEQSのGridで検索する場合、EQSのProjection DataのTrace ModeをNoneかGeometryにしないと動作しないっぽい? -- 合わせてMoveToの「Use Pathfinding」のチェックを外す必要がある ** EQS Testing Pawn [#v4c29ce7] 数値の可視化。「EQSTestingPawn」を継承したアクターをシーンに配置。 - アウトライナーで選択しないと表示されない - エディターで触った後に更新されるだけで、リアルタイムに更新は出来ないっぽい? https://docs.unrealengine.com/latest/JPN/Engine/AI/EnvironmentQuerySystem/EQSPawn/index.html 上記を解消した自作クラスを用意してみた [[EQS-EQSTestingPawnの改造]] * ジェネレーター [#v70dabe8] ** composite [#ib862656] テストを複数のジェネレーターで計算した結果を返す。 画像はSimpleGridジェネレーター+Circleジェネレーター。 &ref(eqs_composite01.png,,60%); * テスト [#q53b338b] ** clamp [#i1bd4d8a] &ref(eqs_clamp01.png,,60%); ** テスト対象が複数あった場合の合成方法 [#s7024403] QueryContextが複数有る場合。 「Multiple Context Score Op」で結果の合成方法を指定できる &ref(eqs_op.png,,100%); ** 「Trace」でItemと指定したオブジェクトとの間の遮蔽物をtestする [#q2c6a714] &ref(eqs_trace01.png,,60%); ** 自作する(C++) [#l5b202d6] [[EQS-テスト自作]] * Behavior Tree [#q686d08d] ** Behavior Treeとの変数の受け渡し [#r6bc5621] + EQS側で「Data Binding」を「Query Params」に。 + 「Param Name」に受け渡し用の変数名を入れる。 + Behavior Tree側でEQS再生ノード・サービスの「Query Config」にメンバー追加。 + 「Param Name」が先程の変数名になるので、ここの数値がEQSに渡される。 -- Param Nameが出てない場合は、一回ノード作り直したら出てくるはず(リロード) &ref(eqs_bt_var01.png,,60%); &ref(eqs_bt_var02.png,,60%); * サンプル [#da588247] ** プレイヤーの近くを除外する [#ka10e92c] &ref(eqs_sample01.png,,60%); ** プレイヤーと敵の射線上にあまり入らないようにする [#k0e9835a] &ref(eqs_sample02.png,,60%); ** 敵の射線上から左右に回避 [#rbc40e77] &ref(eqs_sample03.png,,60%); ** CurrentLocationジェネレーター+Traceテスト使って遮蔽されてない敵だけ抽出 [#n09c452b] &ref(eqs_currentlocation01.png,,60%); |