A way that did work for me “for now UE4.25”. My setup is using world composition with 100 tile streaming levels, that each consists of several sub levels for contents. I may have 4 streamed levels loaded at the same time and the nav-meshes need to fit into a persistent dummy nav-mesh. All nav-mesh are static and manually build.
- Place NavVolumes in streaming levels.
- Recast actors should be only in P-level. If you not have one, just add a new NavVolume in persistent level and then delete the same NavVolume.
- Set Recast actor “Runtime Generation” property set to “Static” to avoid stalling.
- Each NavVolume should be sized to cover geometry in own level, not the whole world. Use brush settings, not scale.
- At least one dummy NavVolume has to be in P-level covering the whole world, even if it does not have any geometry. This is important due to all streamed static NavVolumes will be put there.
- Enable Fixed Tile Pool Size, this is for level streams (increase value until covering area and multiply with max number of streamed simultaneous levels). I ended up with 12000*4=48000. This is important otherwise all streamed nav-meshes will not fit and your npc’s will not move in some areas. If you change this, rebuild all your nav-meshes.
- Disable automatic nav-mesh updates in the editor, build from Build->Build Paths menu (much faster then automatic).
- When you build a nav-mesh with sub levels, open that sub level and all it’s sub levels to visible. Be sure you close neighbor levels before build, otherwise build may affect neighbor NavVolume.
- Enable “Force Rebuild on Load”. This is important to fill the dummy NavVolume with the streamed nav-meshes at runtime. Rebuild is not the same as recalculate, it just gather streamed static nav-meshes into dummy NavVolume.
The workflow when you see a nav-mesh not working in a streaming level
- Increase Fixed Tile Pool Size
- Open streaming level and all it’s sub levels in editor
- Rebuild nav-mesh with Navigation Build Paths
- Save all
- Close all levels
- Deploy
Tip: Water plane mesh need “Can Ever Affect Navigation” disabled otherwise you will have nav-mesh on waterbed and water surface, that waste Fixed Tile Pool Size.