NavMesh Invoker on Player instead of NPC

We have a large tiled world (20 km on a side) and want to use the Dynamic NavMesh.

The normal way is to add a NavMesh Invoker to the NPCs and then the area around them gets a NavMesh on-the-fly.
And that works fine.

What we want to do is put the NavMEsh Invoker on the Player so the NavMesh area is only near the player.

This way with 4000 NPCs only the ones near the player are active and important so there is no wasted time on
far away NavMesh generation.

When I add the NavMesh Invoker to a Player, it does not appear to work.

Any ideas how to get this working?

On possible solution…

We put the invoker on every NPC but diable it and enable it.

Here is a test Blueprint that toggle s the enabled every 10 seconds.
In the editor I can see the nav mesh appear and go away.

I actually tried to add the navmesh invoker on the player and it worked just like you expected. The reason I didn’t use it because if there is no NPC around the player, the player still needs to generate navmesh around itself which is a waste.

One way I use to optimize the navmesh invoker is changing its TileGenerationRaidus at runtime based on its LOD. The lower LOD (0, 1) gets a large radius and the higher LOD (2, 3…) gets a smaller radius. I tested even the radius is 0, the NPC still generates navmesh in its current tile.

In order to do this, you need to expand the Navigation System which is in the engine code. I am not sure if it is possible to you.

Hopefully, helps.


how can i move player with navmesh? i can’t do that , i want in the area move my player,then out the area ,cant move the player