お久しぶりです。ごりです。
今日は簡単な敵探索をEQSを使って実装したいと思います。
まず「EQS_FindEnemy」の名前のEQSをつくります。
今回使うGeneratorは 「ActorOfClass」です。
半径はお好みで設定。今回僕は半径1000で行っています。
探索する相手クラスを「BP_Enemy」としています。
とりあえず現状でEQSを実行すると以下のようになります。
赤色を探索を行うキャラクター、青色を敵キャラクターとしています。
敵キャラの位置にアイテムが生成されていることがわかります。
このアイテムの中からテストを行って一つの敵キャラクターに絞っていきます。
今回僕が行ったテストは
・プレイヤーから一番離れている敵
・プレイヤーから見える敵
の2つです。
まずプレイヤーから一番離れている敵のテストを実装していきます。
テストの中から「Distance」を選択。
TestPurposeを「ScoreOnly」にするだけです。
今回は一番離れているてきなので。SocringEquationを「Linear」のままにしていますが、
一番近い敵を探索したい場合は「InverseLinear」を使うと良いです。
設定し終わるとこのようになります。
プレイヤーから離れるほど大きなスコアがついています。
では次にプレイヤーから見える敵のテストです。
これは「Trace」のテストを追加します。
TestPurposeを「FilterOnly」にし、
「Boolの一致」のチェックを外します。
これだと正しく計算されているかわからないので障害物をおいてみます。
プレイヤーから見えない敵キャラはスコア計算対象外となっていますね。
これで簡単な敵探索のEQS完成です。
このようなビヘイビアツリーを作成して動かすとこのように動きます。
ここ間違ってるなどありましたらコメントお願いします。
次回はランダムウォークでも作成したいと思います。
ではまた。