Troubleshooting World Partitioned Dynamic NavMesh - AI Move To 'Aborted' Error

Hi,

I am trying to use World Partitioned Dynamic NavMesh for large levels (16kmx16km), but I can’t get it to work. After what I would like to think is setting everything up correctly, instead of moving, AI agents report “Aborted.”

I am following this guide from the dev portal: https://dev.epicgames.com/documentation/en-us/unreal-engine/world-partitioned-navigation-mesh

I am using version 5.3.2.

Steps to reproduce:

  1. Create a blank template project. Set Project Settings->NavigationMesh->RuntimeGeneration: Dynamic.

  2. Create a new Empty Open World map.

  3. Add a dynamic skylight, directional light, and a scaled-up box static mesh as the floor.

  4. Add nav bounds volume to the level:
    -Location: X: 0,0; Y: 0,0; Z: 0,0;
    -Size: X: 50000,0; Y: 50000,0; Z: 1000,0;

  5. Configure recast navmesh actor:
    -IsWorldPartitionedNavMesh: true

  6. Create a new pawn class with three components:
    -SphereCollisionComponent: Pawn collision preset
    -SphereMeshComponent: No collision
    -FloatingPawnMovement
    Auto Possess AI: Placed In World or Spawned
    CanEverAffectNavigation: false for all components

7: On FloatingPawn’s Begin Play, add a 3s delay and then call “AIMoveTo” to X: 10.0; Y: 10.0; Z: 0.0.
On failure, print the movement result:

8: Place a pawn in the level, hit play, and note that FloatingPawns stays in place and returns ‘Aborted’ as the movement result. Using the “EnableGDT” command and selecting the pawn, you can see in the Navigation tab that FloatingPawn reports “too far from navmesh”.

So there is supposedly a navmesh, although it’s not showing, which is another indication of something being wrong:

Another weird thing I noticed is that although the pawn shows up whenever playing the level, sometimes begin play doesn’t get called on it, or at least the print command doesn’t, but a simple editor restart fixes that problem.

Now, as far as I know, this is the setup that requires the least amount of steps to reproduce, but I have probably tried every single permutation of any seemingly relevant settings. To keep things simple, there is no landscape in the level. I am also not using navigation invokers.

What am I missing? Does anyone have any experience with world partitioned dynamic navmeshes?

Thanks!

Unfortunately, the issue can be replicated in version 5.4 as well, even when using a small navmesh bounds volume.

When setting up the project, the pawns are able to move around without any issues. However, as soon as I enable the ‘IsWorldPartitionedNavMesh’ flag, they start reporting ‘Aborted’ as the movement result.

I would really appreciate any input on this!

Thank you!

I met the same issue

Your acceptance radius is bigger than the target location. Also before doing that you can use

  1. Find Path to Location
  2. If Path Valid
  3. AI Move to

So you can be sure there is a path valid.

Thanks, @RedGrimnir but the pawn is placed at 500;500 in the level, so the acceptance radius shouldn’t be a problem. The reason I am sending the pawn to a location manually instead of selecting a random location in the nav radius is because the operation returns the pawn location, which is another indication of something not being right.

@tancen Any insights?

I’ve tried a lot of things, but not success. I think this is a BUG, after all this is an experimental thing, like water

I’ve abandoned the “World Partitioned Navigation Mesh” and used “NavigationInvoker” instead. I used a few small tactics to solve some problems, such as using a large non-moving “NavigationInvoker” on the town, enemy territory, and some roads, using a small range on the enemy, and then setting them all to “Is Spatially Loaded”.

sadly they build just 1/4 navigition