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%);

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS