If an actor contains multiple primitive components, it uses all of them for calculating navigation bounds even if some of the primitives are not marked as navigation relevant. Toggling navigation relevancy of the primitives once in the scene also does not alter/correct which primitives interact with navmesh generation.

Customer provided solution:

// Engine/Source/Runtime/NavigationSystem/Private/NavModifierComponent.cpp : 39
if (PrimComp && PrimComp->IsRegistered() && PrimComp->IsCollisionEnabled()){ 

// New// Engine/Source/Runtime/NavigationSystem/Private/NavModifierComponent.cpp : 39
if (PrimComp && PrimComp->IsRegistered() && PrimComp->IsCollisionEnabled() && PrimComp->CanEverAffectNavigation()){
Steps to Reproduce
  1. Create an actor BP
  2. Add a collision primitive component (Box/Sphere/Capsule)
  3. Mark this component as navigation relevant
  4. Add a second collision primitive component to the actor
  5. Mark the second collision primitive as non-navigation relevant
  6. Move the second collision primitive so the two collision volumes do not intersect (not necessarily needed, but makes visualization of issue easier.
  7. Add Navigation Modifier component to actor.
  8. Place actor into scene with navmesh present.

Expected result: The navmesh is cutout around the original, navigation relevant primitive, and the second primitive component does not cut the navmesh.


Actual Result: Navmesh is cut out around each of the volumes despite one not being listed as navigation relevant.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-160479 in the post.

Login to Vote

ComponentUE - AI - Navigation
Affects Versions5.0
Target Fix5.1
Fix Commit21404301
Main Commit21404301
CreatedAug 8, 2022
ResolvedAug 16, 2022
UpdatedAug 23, 2022