Purpose of Project Navmesh Walking?

By default navmesh walking mode ignores all collisions with world geometry (UCharacterMovementComponent::SetNavWalkingPhysics) and uses navmesh polys as a ground level. While it’s being faster, it’s also less accurate and depends on navmesh generation parameters. After all, navmesh is just approximation of walkable space and doesn’t need to be identical with ground’s geometry.

New projection option is meant to improve navmesh walking mode, by adding sparse sampling of static world geometry. It’s doing a vertical line trace (point on navmesh +/- full capsule height * up/down scale) every few frames and smoothly interpolates height. Obviously there is cost in performance due to additional traces, but it’s still cheaper than regular walking mode and can be easily tuned by changing intervals.

Definitely useful for landscape terrains, but if your levels are mostly flat then you probably don’t need any additional projection.

1 Like