Custom RichAI + RVO local avoidance malfunctioning

RichAI is setup on a prefab which we have to manage manually because the game is networked, hence the updates must be tick-aligned and happen in their own function that isn’t the native Unity Update

For the “Start” script, I initialize RichAI

            agent.updatePosition = false;
            agent.updateRotation = false;
            agent.canMove = false;
            agent.acceleration = 4;

(Any time you see nt just read as “Networked Transform”)

Then in the network “Update” function:

            agent.MovementUpdate(Runner.DeltaTime, out var nextPosition, out var nextRotation);
            nt.transform.position = nextPosition;
            nt.transform.rotation = nextRotation;
            agent.FinalizeMovement(nextPosition, nextRotation);

this all works great but it all goes to hell as soon as I add an RVOController.

What I actually want is just the local avoidance so that these characters path around each other gracefully. But just by adding the RVOController to the same model has this RichAI logic, suddenly it doesn’t understand how to path correctly:

You can’t see the cursor but suffice it to say those circles that appear on the ground are where the movement is being targeted.

The character suddenly gets stuck on everything and has a really difficult time with pathing. Without the RVOController, the character navigates perfectly fine just without the local avoidance.

I tried looking at this example: A* Pathfinding Project: Custom Local Avoidance Movement Script

and also reviewed the source of the RVOController class, but I don’t see anything directly demonstrating how to use RVOController (or at least any kind of local avoidance) with custom RichAI handling.


What is the typical delta time you are using?

Hi Aron, hope you had a great weekend! Delta time is fixed at 0.01666667

EDIT: Ah I see you’re OOO for the next few weeks. Enjoy your time out. I’ll follow up with this when you’re back.

This one seems to be working fine now! I think the problem had to do with the collider for the ramp shown in the video. It had holes in it apparently, which I recently learned the RichAI would fall through, and I think the RVOController would get stuck near them as shown in the video.