Ai Move To Navigation Tolerance

Hi,

I currently have an AI character who wants to move to an AStaticMeshActor via the behaviour tree Move To node, however is unable to because the destination actor’s mesh affects the navmesh.

Obviously I can configure the destination actor’s mesh to not affect the navmesh, however I would like to avoid having to do so as it would inhibit movement around those meshes in the future.

Is there any way exposed to add a tolerance to the navigation? The AcceptableRadius parameter doesn’t seem to be used when finding the initial path, just for determining if the character has reached the target. From what I can tell by looking at the source, the navigation requires that the destination location be projected to the navmesh.

In other words: is there any built in functionality for navigating to a position close enough to the destination?

I can modify the navigation logic in AAIController::MoveTo if I need to, but don’t want to duplicate effort.

Bumping for visibility

I’m having exactly the same problem. It would be nice if anyone had a solution. Thanks!

you should be able to use the acceptable radius in conjunction with the stop on overlap option to get the result you desire.

Hi ThompsonN13,

That is exactly what I was trying, but it did not seem to have any effect. However, it seems I may have had a different problem after all. I magically fixed it by playing around with the navigation mesh settings. For some reason I have yet to determine, increasing the Tile Size from 1000 to 5000 fixed it in my case. The behavior tree node is now also functioning as I would expect.

Instead of AiMoveTo You could try MoveToActor
https://api.unrealengine.com/INT/BlueprintAPI/AI/Navigation/MovetoActor/index.html
and set “allow partial path” to true, so it should try to calculate a path even if it can’t reach it completely, so it’ll still move as close as the nav mesh allows.