こんにちは
簡単なAIの処理についてなんですが
AIをidle(通常状態)はランダムに移動してplayerが500m以内に入ったらついてくるようにしたいです
左のmove to random pointタスクがランダムの移動処理BP(写真1)
BTS_VisionCheckが500m以内かどうかの処理(サービス、写真2)
ブラックボード用列挙型(写真3)
変数
AIStateー
Move TargetービヘイビアツリーのブラックボードでTrueにするとmove toを実行
MAXDISTープレーヤーを追いかけ始める距離
写真1のget all actor にはRecastNavmeshをいれてナビメッシュで移動の計算をしています
T_Sumisaki
(T_Sumisaki)
2
2つ指摘します
- 要件を整理してください。箇条書きで構いません
- Serviceの内容が示されていませんが、どういった処理をしていますか?
なお、見たところ原因はTaskではなくService側にあるように思います
返信遅くなりました
修正させていただきましたのでよろしくお願いしますm
また何か情報が少ないところがありましたらごしきてきください
T_Sumisaki
(T_Sumisaki)
4
Service内にIsValidノードが一つ入っていますが、これのオブジェクト入力がAIControllerになっています。
このケースではAIControllerが途中で失われることはないので、常にAIStateはMoveTargetに設定されることになりますね
(追跡対象のあるなしにかかわらず)
この部分がAIが立ち止まる原因でしょう
本来はFindTargetの出力をIsValidに入れるのが正しい処理であると考えます
ご確認ください
FindTargetの出力をIsValidに入れたところ正常に動作しました
助かりました
ありがとうございますm