RVOController bugs when using Lock When Not Moving

Hello, I’m using RVOController for local avoidance (v4.3.84), and I found that I get the best results when I enabled the flag ‘Lock When Not Moving’, however I did notice a few bugs. I’ve attached a gif showing them, and a repro project (use scene Example2).

here’s a video of the issues.

here is the repro project.

@aron_granberg did you have a chance to take a look?


Local avoidance is inherently local. It does not do any global path planning.
There are some improvements I have been thinking of (pretty complex, though), but ultimately locked agents are not a replacement for pathfinding around obstacles.
I’m not quite sure why Scenario 1 happens, though.

The RVO algorithm relies on all agents being able to move. Locking agents is not something that it likes.

okay, do you suggest I refrain from locking the agents then? The reason why I lock them is because I don’t want them to be moved anymore, they would be performing some actions e.g. attacking, casting a spell, etc. and they need to remain still.

For Scenario 3, is there a way we can randomize which way the agent decides to turn, so that it doesn’t turn right all the time and get stuck? This is by far the biggest issue I’m encountering, when having many agents, they all try to turn right and end up getting stuck against the edge of the terrain.
If I can randomize which way the agents turn, left or right, I think that will ease off a lot of my agents being stuck.