【UE4 EQS】EQSってどういうもの?
こんにちは!
どうもまぬおです
今回はUnreal Engine 4の機能の一つであるEQSの基本的な概念についての記事です
良ければ最後までご覧ください!
EQSって何?
EQSとは(Environment Query System、環境クエリシステム)の略で、動的な環境においても適切な行動選択が行えるように提案されたシステムのことです
AIが自分の周りの環境に目的地の候補をいくつか置き、その候補地それぞれに対して適しているかどうかの点数付けを行い、もっとも点数の高い候補地を選ぶという仕組みです
EQSにおいて、この候補地のことをアイテムと呼びます(テストに出ます)
このシステムの良いところは、アイテムの置き方と点数のつけ方を工夫することでどんな地形にも対応できるということです
この記事ではUE4での使い方ではなく、EQSの仕組みに重点を置いて紹介をしていきます!
EQSで使うもの
EQSで使うものは二つだけ!たった二つだけです
・ジェネレーター
・テスト
ジェネレーターについて
ジェネレーターは、アイテムの置き方を決めるものです
円状に置いたり、格子状に置いたり、特定の位置に置くといったものもあります
UE4でのジェネレーターは以下の種類があります
・Point: Circle
円状に置く
・Point: Cone
コーン状に置く
・Point: Donut
ドーナツ状に置く
・Point: Grid
格子状に置く
・Point: Pathing Grid
ナビメッシュの上に格子状に置く
・Current Location
指定位置に置く
・Actors Of Class
周りの指定アクターの位置に置く
・Composite
複数のジェネレーターをまとめる
…多いですね
でも心配いりません!覚えるべきはたったふたつ!
"Point: Circle"と"Point: Grid"さえ覚えておけばほとんどいけます!
テストについて
テストはジェネレーターで置かれたアイテムを評価するものです
距離で評価したり、内積で評価したり、移動パスが通っていったものもあります
UE4でのテストは以下の種類があります
・Distance
距離で点数をつける
・Dot
内積で点数をつける
・Trace
トレースチェックで点数をつける
・Pathfinding
移動パスによって点数をつける
・Pathfinding Batch
移動パスによって点数をつける(バッチなのでたぶん速い…)
・Gameplay Tags
Project Settingで設定できるGameplay Tagで点数をつける
・Overlap
指定した形の障害物との衝突で点数をつける
・Volume
指定ボリュームとの衝突で点数をつける
・Project
アイテムが床の上にあるかで点数をつける
こっちも結構種類があります
最初の"Distance"、"Dot"、"Trace"の三つをよく使うので、これをマスターしましょう!
実装例その1
ジェネレーター:Points: Grid
テスト:Distance
格子状にアイテムを配置して、遠いほど点数を高くしてみました
(緑に近づくほど点数が高いです)
なるべく遠いところに行きたい時に使えるかも
実装例その2
ジェネレーター:Points: Circle
テスト:Dot
円状にアイテムを配置して、前方向ほど点数を高くしてみました
なるべく前に行きたい時に使えるかも
まとめ
今回は、UE4のEQSについて紹介をしました
どうですか?使いたくなりましたか?
簡単な紹介の記事だったので、詳しい説明はあえてしませんでした
詳しい機能の説明は別の記事で行いたいと思います
次の記事が投稿されたことにいち早く気づいてほしいので、フォローといいねをお願いします
Twitterやってます!
Twitterでも記事の投稿報告を行いますので、ぜひフォローをお願いします!
使用バージョン:Unreal Engine 4.25.1