Navigation3D components
Service dependencies, serializable fields (name / type / default / purpose), and responsibilities for every component. Editor variants (Editor*) own Bake UI at edit time and export into the matching runtime component. FlightNavigationComponent and HybridNavigationComponent have no editor variants—add them from the Game menu.
Component overview
| Component | Role | Service |
|---|---|---|
SvoNavigationVolumeComponent | SVO airspace + cost field | Navigation3DVolumeService |
FlightNavigationComponent | Flight query agent | Navigation3DFlightAgentService |
HybridNavigationComponent | Unified multi-domain facade | Navigation3DHybridService |
ClimbNavigationComponent | Climb surface queries | Navigation3DClimbService |
NavigationCostModifierComponent | Shape cost / no-fly | Navigation3DCostModifierService |
NavigationFlightCorridorComponent | Flight corridor preference | Navigation3DFlightCorridorService |
NavigationDomainLinkComponent | Domain transfer / takeoff links | Navigation3DDomainLinkService |
FlightPathFollowComponent | Path follow (desired velocity) | — |
Navigation3DSystemComponent | System scheduling and registries | Navigation3DService |
SvoNavigationVolumeComponent
Voxelizes from a same-entity Recast geometry provider or loads a baked asset; supports full / regional rebuild, streaming build, runtime cost zones, and spatial queries. Implements NavigationVolumeRequestBus.
Services: provides / exclusive Navigation3DVolumeService; depends on (same entity) RecastNavigationProviderService (not required on the baked-asset path).
| Field | Key | Type | Default | Purpose |
|---|---|---|---|---|
| Leaf voxel size | LeafVoxelSize | float | 0.5 | Finest sub-voxel edge (m), Min 0.05 |
| Chunk size | ChunkSize | float | 128.0 | World size per chunk, Min 1.0 |
| Radius tiers | RadiusTiers | vector<float> | { 0.5 } | Agent radius tiers (m) |
| Cruise height low / high | CruiseHeightLow / High | float | 0.0 | Default cruise height band |
| Auto build | AutoBuild | bool | true | Build on activate (ignored if baked asset set) |
| Streaming enabled | StreamingEnabled | bool | false | Baked only: page via SetActiveRegion |
| Baked asset | BakedAsset | Asset<SvoNavigationAsset> | empty | .svonav_baked |
Editor extras: BakeOutputPath, GeometrySource, TestFrom / TestTo, TestPostProcessor. Streaming build budget defaults to 4 chunks per tick; override with /O3DE/Gems/Navigation3D/Runtime/BuildChunksPerTick or nav3d_setBuildBudget.
FlightNavigationComponent
Sync queries run pathfinding + post-process inline; async queries go to the system scheduler and return on FlightNavigationNotificationBus. No editor variant.
| Field | Key | Default | Purpose |
|---|---|---|---|
| Agent | Agent | see below | Agent kinematics |
| Post processor | PostProcessor | Hover | Hover / FixedWing |
| Volume entity | VolumeEntity | invalid | Default volume; auto-resolve if unset |
| Fixed-wing turn threshold | FixedWingTurnAngleThreshold | ≈0.785 rad | Penalize turns beyond this; ≤0 disables |
| Fixed-wing turn penalty | FixedWingTurnPenalty | 2.0 | Edge-cost multiplier for sharp turns |
FlightAgentConfig:
| Field | Default | Purpose |
|---|---|---|
| Radius | 0.5 | Pick radius tier |
| Extra radius | 0.0 | Extra safety margin |
| Max speed / Max accel | 10.0 / 10.0 | Speed and centripetal accel caps |
| Sample step | 1.0 | Trajectory sample step (m) |
| Arrival slowdown | 0.0 | Arrival slowdown distance; 0 disables |
| Min cruise speed | 0.0 | Hover curvature tightening |
| Min turn radius | 5.0 | Fixed-wing min horizontal turn radius |
| Max climb angle | 0.5 | Fixed-wing max climb / dive (rad) |
| Min airspeed | 2.0 | Fixed-wing min airspeed |
You can also inject a custom post-processor via SetPathPostProcessor. See
Motion and following for how parameters shape trajectories.
HybridNavigationComponent
Ground→Detour, Air/Underwater→Flight, Climb→ClimbNavigation, Hybrid→ link coarse plan + per-segment refine + optional VTOL. Implements NavigationQueryRequestBus. No editor variant.
| Field | Default | Purpose |
|---|---|---|
| Detour / Flight / Climb / Volume entity | invalid | Backend targets; default self / auto-resolve |
| Free vertical transfer | false | Allow link-free VTOL vertical transfer |
| Safe climb height | 2.0 | Min free-column height for VTOL (m) |
| Transfer cost scale | 1.0 | Link traversal cost scale |
| Ground / Air / Underwater / Climb speed factor | 1.0 | Coarse-plan distance→cost factors |
| Max replans | 3 | Coarse-plan retries after fine-plan failure |
| Max cost iterations | 2 | Coarse / fine iteration count |
UnderwaterRegion (AabbD) is serialized but not shown in the panel: free SVO space inside is classified as Underwater. You can also register via system UnderwaterRegionRequestBus with
Water.
ClimbNavigationComponent
Builds a surface graph from steep triangles filtered from geometry, or loads .climbsurf_baked. Implements ClimbNavigationRequestBus (sync only).
| Field | Default | Purpose |
|---|---|---|
| Build | see below | Surface-graph build parameters |
| Snap distance | 2.0 | Endpoint snap radius (m) |
| Auto build | true | Ignored when baked asset is set |
| Baked asset | empty | .climbsurf_baked |
ClimbBuildConfig: MinSlopeDegrees 55, MaxSlopeDegrees 120, SampleSpacing 1.0, MaxStepDistance 1.8, SurfaceOffset 0.3, MaxNormalAngleDelta 80, MergeFraction 0.25.
Editor extra: BakeOutputPath.
NavigationCostModifierComponent
Binds this entity’s LmbrCentral Shape to a target SVO volume; registers on Activate and removes on Deactivate—no SVO rebuild.
| Field | Default | Purpose |
|---|---|---|
| Target volume | invalid | SVO volume entity |
| Multiplier | 0.5 | <1 prefer, >1 penalize; read-only when NoFly |
| No-fly | false | No-fly (overrides Multiplier, ~1e9) |
NavigationFlightCorridorComponent
Extrudes local waypoints into an AABB sequence as a preference corridor (multiplier clamped to [0.01, 1.0]—preference only).
| Field | Default | Purpose |
|---|---|---|
| Target volume | invalid | SVO volume |
| Waypoints | {} | Ordered entity-local waypoints |
| Radius | 2.0 | Corridor half-width (m) |
| Preference | 0.5 | Discount multiplier (0,1] |
NavigationDomainLinkComponent
Like a Detour off-mesh link: A / B domain anchors, direction, and traversal cost for Hybrid cross-domain routing.
| Field | Default | Purpose |
|---|---|---|
| Ground / Air offset | (0,0,0) | Entity-local anchors |
| Domain A / B | Ground / Air | Endpoint domains |
| Direction | Bidirectional | Bidirectional / takeoff only / land only |
| Traversal cost | 1.0 | Coarse-plan edge penalty |
| Max agent radius | 0.0 | 0 = unlimited |
| Enabled | true | Disabled links are skipped |
FlightPathFollowComponent
Never writes Transform—only publishes desired velocity. Fields: Config (FlightFollowConfig), AgentRadius (0.5), VolumeEntity. Full follow parameters in
Motion and following.
Navigation3DSystemComponent
No user-configurable fields. Owns: async query scheduling, active volume registry, domain-link registry, .svonav_baked / .climbsurf_baked asset handlers, and nav3d_* diagnostics. Default query budget 0.5 ms / 2000 expansions—see
Debugging.
Next steps
- Querying — call the buses these components expose
- Authoring and baking — cost zones / corridors / links / Bake