キャラ切り替え後、非操作キャラのAI追従が止まる

こんにちは。

現在、UE5で2体のキャラクター間で操作を切り替えられる仕組みを作っています。
どちらのキャラも、非操作時はAIとしてもう一方のキャラを追従するようにしています。

AI追従の実装には以下を使用しています:

  • Behaviour Tree と BlackBoard
  • BP_AIController
  • NavMeshBoundsVolume を利用したナビゲーション

移動モーションは GameAnimationSample のアニメーションを軸にしていますが、これはおそらく直接の原因ではないと思います。

切り替える前は、非操作キャラが正常に追従して動作しています。
しかし、操作をAIキャラに切り替えたあと、再び元のキャラに戻すと、追従が止まりAIがその場で待機してしまいます。

このような場合、AIのターゲットを更新して追従を再開させるにはどのような処理を追加すればよいでしょうか?
一般的な対処法や推奨される処理があれば教えていただきたいです。

Sea_jetさんの以下の動画を参考にしました

AIのキャラクターが動作するためには、AIControllerへのPossessが必要です
ですが今回の場合、元のキャラに戻す際に、AIControllerにPossessし直していないので、AIが動作しないようになっています

切替時に手放す方のキャラで SpawnDefaultController を実行して、新たなAIControllerにPossessし直すとよいでしょう

1 Like

ご返信いただき、そして SpawnDefaultController を教えてくださってありがとうございます。
最初はこの仕組みがあまり理解できなかったのですが、「切り替え処理と同時だとうまく動かないのでは?」と思い、試しにDelayノードを挟んでみたところ操作を切り替えても追従が維持できるようになりました。
おかげさまで無事解決できました。本当に助かりました!