It seems that RVO avoidance is only working with other AI. Is it possible to use it with player as well? If not, how can I achieve it? I can only think of a way, which is to implement RVO myself and use it in a custom AIController.
any help would be appreciated
did you find answers?
Unfortunately I didn’t. I have tried to tell the AI randomly choose between turning left and right once detected the player, and return to walking towards its original destination once it passed the player. It works but it may induce computation overhead.
I know this is a super-old post, but you can make any actor an RVO agent. You can make a movement component that implements the IRVOAvoidanceInterface class. Your class should register itself with UAvoidanceManager::RegisterMovementComponent(), update the RVO in its Tick method with UAvoidanceManager::UpdateRVO(), and implement the rest of the IRVOAvoidanceInterface methods. I simply add this component to any dynamic actor that I want AI to avoid and it works.
Hello,LouDilbert
I did what you said.In the pawn,I create movement component,and I implement the IRVOAvoidanceInterface methods like character movement component.I do RegisterMovementComponent() In this component method SetUpdatedComponent() and update the RVO in its Tick.I can see the movementcoment’s IRVOAvoidanceInterface methods is running.But pawn’s RVO not work.I don’t know what happen.
Thank you so much for helping me.