今回は、私がEQSで自作のGeneratorを使用する際に少し戸惑った点についてお話していければと思います。
はじめに
Generatorはほとんどの場合、Env Query Contextが必要なので作りましょう。
とりあえず、実験段階なので BP_testContextという名前のEnv Query Contextクラスを作成しました。
今回、Env Query Contextの詳しい話はしませんので、よく知りたい方は公式ドキュメントをどうぞ。
BP_testContext
BP_testContextでOverrideした関数は、ProvideLocationsSetだけです。
こちらはVector型の配列を返すだけの基本的な関数です。
Generatorを自作
今回はこんな感じのGeneratorを自作しました。Generatorの作り方ですが、こちらをどうぞ。
こちらの Do Item Generationですが、Overrideしただけです。
感のいい方ならお気づきでしょうが、引数のContext Locationsには先ほどの、BP_testContextのVector型の配列が入ってきます。
準備完了!
さっそくEQSのクラスを作成して実装していきましょう。
今回はこんなEQSクラスを作成しました。
Behavior Treeで動かすぞ!
いざプレイ!
あれ....動かない....。
本題
ずばり、原因はコレ
GeneratorタブのContextと、Generated Item TypeがNoneになってるのが問題です。
これだと、何をしようがBehavior Treeで動きません。(正確には失敗が返される)
直せばイイじゃん
動かない......。
神に祈ろうが、お風呂に入ってサッパリしようが動きません。
すべての元凶は、自作したGeneratorにありました。
GeneratorもEQSと同様に、Context、Generated Item Typeを変更しないと上手く動作しないらしいのです。
動いた!一件落着!!
お疲れさまでした。もし同じことで悩んでいる方が私の記事を見て、少しでも助けになったのであれば幸いです。