RVO Questions

I have a simulation with many Npc agents (currently using 3.3.9 beta as I am using the paid version). Agents moving around avoid each other very well and it is quite fun to watch with many agents walking around. I am using RichAI with a number of modifications to make it cleaner and more streamlined.

However, I have a few questions:

  1. Agents seem to “sidestep” to move around other agents. When they are close to another agent that is stopped (and locked) they tend to get “stuck” and just slide around the agent rather than explicitly pathfinding around the stopped agent(s). Is this expected, and if so, any suggestions on how to remediate this? It looks pretty bad in some cases (sidestepping works fine if they can look ahead far enough to move out of the way in time).

  2. Is there any way to have an object act as an RVO “avoider” but not actually be a controller? I.e. I would like agents to avoid the main character when pathfinding (like other agents). If I drop the RVO controller on my (rigid body controlled character), the avoidance works fine with other agents (who are using the RVOController) and the player, but I get some unexpected weirdness with the center position of the character (like it is being updated somewhere in LateUpdate or something). I haven’t delved too deeply into the code, as I figured that the RVO controller is probably a little heavy to be dropping onto an object that is controlled by something else. I just want other agents to avoid the player, because it looks very cool to stop the player in the middle of crowded street and see agents deftly move to either side of him.

  3. Agents act strange when they get close to obstacles with primitive colliders. From the documentation it seems you can use primitive colliders and the RVO algorithm will avoid those obstacles (i.e. not requiring the RVO collider to be dropped on them). However, in practice, they generate a path around the obstacle, but then get “stuck” and slide around the obstacle very slowly (as they try to corner around it). I switch back to a character controller and the agents pathfind around the same obstacles just fine. I can’t imagine this is expected. Any insight what I might be doing wrong?