LCM Nav3D Free demo Get it on Fab

Tutorial 14 - Stock Move To and EQS with LCM Nav3D

Goal: make UE's own navigation nodes (Move To, AI Move To, Simple Move To, Find Path To Location Synchronously, EQS projection) plan through LCM Nav3D, and check that they do.


How it works

When a level has an LCM Nav3D Manager, the plugin spawns a navigation-data proxy (LcmNavigationDataProxy). It then asks UE's navigation system to register the proxy. Once registered, stock queries for the proxy's agent go through LCM Nav3D, and LCM Nav3D plans them in 3D.

UE registers a navigation-data actor only for a Supported Agent whose Navigation Data Class is that actor's class. The plugin picks that agent for you where it can, and reports what really happened. (Before 3.4 the proxy was refused on every map while the log said "registered".)

Step 1: pick your setup

Your project What to do
Only flying agents; no Recast navmesh in the level Nothing. The proxy claims the default agent on this world's navigation system (r.LcmNav.Bridge.ClaimDefaultAgent 1, the default). Project Settings are never written.
Flying agents and ground characters on a Recast navmesh Add a Supported Agent for LCM Nav3D (Step 2). The navmesh keeps the default agent.
You want the stock nodes to ignore LCM Nav3D r.LcmNav.Bridge.AutoRegister 0.

Step 2: add a Supported Agent (mixed projects only)

  1. Project Settings → Engine → Navigation System → Agents → Supported Agents → +.
  2. Name: anything, e.g. Flyer.
  3. Navigation Data Class: LcmNavigationDataProxy.
  4. Agent Radius / Height: your flyer's size. UE uses them to pick the agent for a pawn, so make them differ from the ground agent's.
  5. On the flying pawn's Character/Pawn Movement → Nav Agent Properties, use the same radius and height, or set Preferred Nav Data to LcmNavigationDataProxy.

Step 3: check it worked

The bridge reports one of these states, in the log and from Blueprint or C++ (ULcmNavBridgeSubsystem::GetBridgeState() / GetBridgeStatusText()):

State Meaning
Registered Stock queries for the bridged agent go through LCM Nav3D.
NotClaimed Another navigation data (a Recast navmesh) owns the default agent, and no Supported Agent names the proxy. Do Step 2.
Failed The navigation system refused the proxy. The status text gives UE's reason.
Waiting / Requested Not settled yet (the navigation system registers on a later tick), or auto-registration is off.

A warning appears once if the bridge ends in NotClaimed or Failed. It names the setting to change.

Cost areas with the stock nodes

A Filter Class on Move To (a NavigationQueryFilter) works as it does with Recast. Its area costs and exclusions are applied by the LCM Nav3D planner, the same as on the LCM FlyTo nodes. Tutorial 10 covers cost-area volumes and filters.

Limits