Can anything be done to mitigate or make the avoidance better in cases like this? Where there are units blocking or partially blocking an area that a unit must traverse? The unit attempts to go between but ends up getting stuck and spazzing out. It is possible and sometimes the unit chooses to cut close to the corners to get around the units.
When RVO kicks in the Velocity on the RVOController drops to zero. I am driving mecanim animation with this value so as in the video you can see it appears the unit stops walking and begins to float. Once RVO stops the unit returns to walking normally. Is there a different value I should use or a way to overcome this?
Is there anything I can do to make the AI avoid the player to an official capacity? I have put a navmesh cut on the player (using recast graph) and this works, but I know it is not the best thing to do by any means (T.T)
I was able to overcome this by vastly decreasing the wall thickness. For my small units (such as in the video) I need this value to be ~ 0.8. For larger units the value needs to be extra small such as 0.1. This helps to avoid the problem and makes the avoidance look a lot more cleaner. It still can happen in some edge cases of the map however.
I was also able to stop this by decreasing the wall thickness. It gives them more room to go around.
Still have no idea what to do about this. Surely there is some way to do this that I am unaware of?
It has been a few years since I played with the RVO stuff, but I’m pretty sure I just put a RVO controller on my avatar (in addition to his char controller, and maybe updated the RVO controller’s position manually? Can’t remember), and the AI agents avoided me like they would each other. I definitely remember testing AI formations, and I would intentionally run my player down the center of their formations and they would all move out of the way, ahead of time, as I ran towards them. I remember because it was very organic and felt very good.
Thanks for the reply, this is a very interesting solution and I remember trying it earlier but quickly discarding it because the RVO controller was messing with my own character controller code. How did you overcome this. I fiddled around with this just now and came up with these settings:
My Collides with is ‘Default Agent’, ‘Default Obstacle’. So far it seems an agent will go around me, and push me a tiny bit but it seems that the RVO controller with these settings is not overriding my character controller code. But this is all in a test environment I still have to test this in my actual project.
Thanks so much for this suggestion!
EDIT: After some testing, this is not working. The RVO component causes my character to launch into the air, and then immediately ground itself. Trying to see if this can be solved by messing with the settings some more or if this is just the limitation to using this method.