#NavigationAgent3d questions

7 messages · Page 1 of 1 (latest)

open bane
#
  1. Do they need to be moving to actively avoid each other? I am observing them get stuck on other static agents a lot. Not a problem when they are moving though.
  2. If I am using simple shapes, should the radius of agent be correlated or a little bigger than the radius of the shape ?
  3. Should I see the navigationPaths changing when they are navigating around each other? See the image the debug from NavAgent stays the same. I am not sure if they are adjusting paths or just sliding around the collision bodies 😛 Context: flat surface with a simple mesh.

If I am correct when agents are moving it's easier for them to avoid each other, as the RVO finds it hard to apply proper vectors for immobile agents (or they are just opposing forces) Is that correct ?

Thanks in advance !

#

A video of what is sometimes happening. They often get stuck on each other. I bet my settings are somewhat skewed.
Either that or I need to look into local avoidace / boids at this stage

wide pilot
#

RVO avoidance works with velocities, so no, your navigation path does not change, and it also is not designed to solve "formation" movement issues.

#

if agents do not move they still need a velocity to be accounted for in the avoidance, else the RVO avoidance can not set passing sides or predict movement.

open bane
#

I am not sure I understand the second part.
Do you mean If I applied some minimal velocity to agents that are "static" it would help RVO with avoidance? Or that the velocity is taken into account event if it's 0 ?

wide pilot
#

the RVO avoidance runs standalone from the SceneTree and nodes so in order to match what is going on in the SceneTree the velocity and position needs to be set with the physics step, else the SceneTree and the avoidance simulation run in desync. The position is set automatically by the NavigationAgent while the velocity needs to be set with user script. If a node just "stands" in the SceneTree it might still have a velocity in the avoidance simulation if not updated correctly.

#

and just because an agent has no velocity of its own does not mean that it can not be pushed by other agents that take priority in the avoidance, so it might still receive a velocity and get "ordered" to use it by the avoidance simulation. That is why it is important to actually remove an agent from the avoidance if it should not be affected by anything else while standing still, or if it should still be accounted for by other agents increase its priority or change avoidance layer / mask to not be ignored.