「攻撃しながら近づいてくるAI」を作っています。
公式ドキュメントのAIで近づいてくるビヘイビアツリーを作り終えたあと、メッシュとアニメーションを別のものに差し替えてしっかり動くことを確認しました。
そして、 第5回ue4ハンズオンセミナー このスライドを参考に、弾丸を飛ばして攻撃する動作を一定時間おきにするよう、キャラクターブループリントに「イベントティック」で仕込んだところ、弾はその場でプレイヤーまで発射してくれるものの、こちらへ近づかなくなってしまいました。
AIコントローラも少々改造していて、イベントティック→SetFocusでプレイヤーを向き続けるようにしています。
こちらの細工もテストしましたが、追いかけてくる動作には影響がないように見えました。
具体的な質問は、ビヘイビアツリーが動作しないのには、どういった原因が考えられるのか、ということです。
(ひょっとして、先述の変更点のせいでビヘイビアツリーに影響してしまっているのでしょうか?)
うっかりした初歩的なミスかも知れませんので自身でも原因究明はしているのですが、皆様の知恵をお借りしたく質問いたしました。
考えられるとしたらですが、キャラクターブループリントのEventTickに入れた処理が毎フレーム動作しているため
その処理がビヘイビアツリーに影響を与えているかなと考えられます。
問題の切り分けとして、EventTickの処理をいったんオフにして、ビヘイビアツリーが正常に動作するか
AIコントローラーの改造部分をオフにする、など手を加えた部分をなくして検証すると良いかもしれません
また、具体的なところを質問する際は、
ブループリントやビヘイビアツリーで問題になっている部分のスクリーンショットを添付すると
皆さんから返答はもらいやすいと思います。
nullponull
(nullponull)
3
まず、AIをどのように動かしているかチェックしてみてください。
1.AIMOVETOノードやビヘイビアツリーでMOVETOを使っている等
2.1で上記を使っている場合、移動する処理が有効の間はSetFocusは不要になります。
3.ビヘイビアツリーのタスクで向きを変更してくれるものがあります。(名前は忘れましたが)
おかずさんのブログに詳しくのってます。
最後に、エスパー的な回答ですがAIControllerはPlayerController同様CharacterBPの上位の存在になります。
そのためこちらのTickで常に何かの処理をしている場合そちらが優先されて動作しなくなっている可能性があります。
例えば、AICharacterに何か動作を入れたい場合はそのAICharacterBPに実装するなど実装箇所を見なおしたほうが良いと思いますよ。