PSUnreal Navigation Meshes
Setup
1 Persistent level (P-level) containing the lights and the skybox
- Add an empty NavMeshBoundsVolume, not covering any ground
- Click on Build Paths, so that you get in the Persistent Level an actor called RecastNavMesh-Default
- The RecastNavMesh-Default determines where the nav mesh resides, and in case of world composition tells the engine to spread the navmeshes into submaps if its in the persistent level
- Project Settings -> Engine -> Navigation Mesh -> Runtime Generation = Static
- Project Settings -> Engine -> Navigation System -> Auto Create Navigation Data = false
- Project Settings -> Engine -> Navigation System -> Spawn Nav Data In Nav Bounds Level = true
- Project Settings -> Engine -> Navigation System -> Should Discard Sub Level Nav Data = false
for each sublevels
- 1 or more NavMeshBoundsVolumes covering the ground
Sequence to recreate navmesh
- Load the P-level, and loaded ALL the submaps
- Be sure to have the current level selected as the Persistent Level
- Click on Build Navigation Paths
- The navmesh is stored in each sublevel, the persistent level gets no additional size from the navmesh
- If I open a submap, the navmesh is displayed (NO?)
- If I run the game from the P-Level, the NPC moves properly within the same map
- The NPC CAN cross the map borders
Total time to rebuild navmesh in the game (all level) 11 minutes.
General findings
The size of the navmesh is about 5Mb for a landscape level with 127x127 cell size, and cell number 10 = 127000
The navmesh is stored in the .umap file and not in the .BuiltData file.
Tests Performed
- [ CHOSEN!! ] One NavMeshBoundsVolume for each of the submap, stored in the submap itself
- Load the P-level, and loaded ALL the submaps and rebuild paths
- Be sure to have the current level selected as the Persistent Level
- The navmesh is stored in each sublevel
- If I open a submap, the navmesh is displayed
- If I run the game from the P-Level, the NPC moves properly within the same map
- The NPC CAN cross the map borders
- One NavMeshBoundsVolume for each of the submap, stored in the submap itself
- Load the P-level, and loaded ONE submap at time and rebuild paths
- The navmesh is stored in each sublevel
- If I open a submap, the navmesh is displayed
- If I run the game from the P-Level, the NPC moves properly within the same map
- The NPC CANNOT cross the map borders, there is a visibile gap between the two maps in terms of navmesh
- One NavMeshBoundsVolume for each of the submap, BUT all NavMeshBoundsVolume in the P-level
- Load the P-level, and rebuild paths
- All navmeshes are stored in the P-level umap file
- If I open a submap, the navmesh is not displayed
- If I run the game from the P-Level, the NPC moves properly within the same map (HAD TO DELETE THE BUILTDATA FILES!!)
- The NPC CAN cross the map borders
- One NavMeshBoundsVolume for each of the submap, stored in the submap itself
- Load each sub map and rebuild paths
- The navmesh is stored in each sublevel
- If I open a submap, the navmesh is displayed
- If I run the game from the P-Level, the NPC CANT move