Educate me! Why is this considered a navigable point on the nav mesh?

image

The image kind of says it all! This is a point my character teleported to, inside a static mesh that is set to NavArea_null. The check itself is pretty straightforward, it’s basically an EQS search that gets a navigable point in range before teleporting the character to that point. I’m confused why this happens on occasion. Is it something to do with agent size or something like that?

Maybe it’s because a null nav mesh is a nav mesh and counts for finding points.
You could add a filter to the eqs that eliminates points that cannot be reached

…I’m not sure I follow, maybe I didn’t explain myself properly. The null nav area is simply a setting on the static mesh that is the wall, meaning there is no navmesh inside or on top of it.

I also mentioned in my post that I do have EQS eliminating points that can’t be reached.

Hence my confusion why EQS, and other methods like ProjectPointToNavMesh, return locations that are not only unreachable, but don’t exist since there is no navmesh there.

Here’s a different example of what I’m talking about. I’ve placed these debug spheres using ProjectPointToNavigation along a grid. You can see that I’ve placed the camera just into the mesh for this cliff face so that it straddles it, allowing us to see both sides of the mesh and that the inside of the mesh has no navigation mesh inside it. And yet, ProjectPointToNavigation returns that it was able to cast to the navmesh in that area.


Bumping because I’m really hoping someone has some insight on this sort of thing…

I guess it confused me that the floor where you have the npc is red which means there is nav mesh.
When the nav mesh goes crazy the first thing is to delete the RecastNavMesh-Default to generate a new one
When I talk about EQS I was asking if you have set the “PathExist” filter

Ah, I see the confusion - the floor static mesh also has a red sandy color, ha. It is not the navmesh red.

And, to answer the question - yes, I have tried also with EQS using PathExists, I get the same results both with EQS and my own custom solution.