愛をもってゲームをつくるゴリラのブログ

UE5勉強中のゴリラがいろいろ頑張ります。

EQSで簡単な敵の探索をしてみる

お久しぶりです。ごりです。

今日は簡単な敵探索をEQSを使って実装したいと思います。

 

まず「EQS_FindEnemy」の名前のEQSをつくります。

f:id:m-goolee-y:20170811235343p:plain

 

今回使うGeneratorは 「ActorOfClass」です。

半径はお好みで設定。今回僕は半径1000で行っています。

探索する相手クラスを「BP_Enemy」としています。

f:id:m-goolee-y:20170811235953p:plain

 とりあえず現状でEQSを実行すると以下のようになります。

f:id:m-goolee-y:20170812000541p:plain

 赤色を探索を行うキャラクター、青色を敵キャラクターとしています。

敵キャラの位置にアイテムが生成されていることがわかります。

 

このアイテムの中からテストを行って一つの敵キャラクターに絞っていきます。

今回僕が行ったテストは

・プレイヤーから一番離れている敵

・プレイヤーから見える敵

の2つです。

 

まずプレイヤーから一番離れている敵のテストを実装していきます。

テストの中から「Distance」を選択。

TestPurposeを「ScoreOnly」にするだけです。

今回は一番離れているてきなので。SocringEquationを「Linear」のままにしていますが、

一番近い敵を探索したい場合は「InverseLinear」を使うと良いです。

設定し終わるとこのようになります。

f:id:m-goolee-y:20170812001745p:plain

 f:id:m-goolee-y:20170812002004p:plain

 

プレイヤーから離れるほど大きなスコアがついています。

では次にプレイヤーから見える敵のテストです。

これは「Trace」のテストを追加します。

TestPurposeを「FilterOnly」にし、

「Boolの一致」のチェックを外します。

f:id:m-goolee-y:20170812002726p:plain

f:id:m-goolee-y:20170812003437p:plain

これだと正しく計算されているかわからないので障害物をおいてみます。

f:id:m-goolee-y:20170812003509p:plain

プレイヤーから見えない敵キャラはスコア計算対象外となっていますね。

これで簡単な敵探索のEQS完成です。

f:id:m-goolee-y:20170812003658p:plain

このようなビヘイビアツリーを作成して動かすとこのように動きます。

youtu.be

 

ここ間違ってるなどありましたらコメントお願いします。

次回はランダムウォークでも作成したいと思います。

 

ではまた。