Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Navmeshes from streaming levels are not loaded if Persistent level has no Nav Bounds Volumes

When using world composition, the only map that loads if you load the persistent map is the persistent map. I have nothing in my persistent map save for a directional light and some clouds. All the actual geometry is in my streaming levels for world composition. So, my persistent level has no Nav bounds Volumes in it.

I wanted the navmesh for each streaming level to be loaded/unloaded with it, so i put the Nav Bounds Volumes into each of the streaming levels themselves. Once the blank persistent level is loaded, i go to the levels browser, select all the streaming levels, and right click->load them so that they show up. You need to have Automatic Build Navigation set to OFF to notice this, otherwise it will just rebuild navigation every load anyway (won't care about NavMeshDataChunks inside the streaming levels themselves) So i build ALL LEVELs, which makes the green navigation show up over the entire world. Restart the editor, or create a new map and then discard it and reload the persistent level again. If you right click and load all the streaming levels again, you will notice that there's no navigation data on them untill you build it again (even though it saved properly, and there are RecastNavMeshDataChunks being serialized on streaming level load)

This is because, when the persistent map was loaded, void UNavigationSystem::OnWorldInitDone was called, which has a IsThereAnywhereToBuildNavigation() check, and if there are no Nav Bounds Volumes, it DESTROYS all the NavigationData actors. This is a problem later on when any streaming level is loaded, because for it's tiles to be AttachTo'd to the existing navmesh, OnStreamingLevelAdded must be called on an EXISTING NavData in the NavDataSet array in UNavigationSystem::OnLevelAddedToWorld. Since the NavData was previously destroyed, nothing happens and the tiles from the streaming levels are not added.

I worked around this by just making sure that first branch in OnWorldInitDone is never entered (just commented out IsThereAnywhereToBuildNavigation() == ), but not sure what the proper fix would be, nor why does the NavigationData need to be destroyed if there are no NavBoundsVolumes.

Product Version: UE 4.8
more ▼

asked Jul 29 '15 at 06:29 AM in Bug Reports

avatar image

188 24 31 145

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Yeah, it's a known problem with navigation streaming. We usually workaround it by placing any navigation volume in the persistent level, to make IsThereAnywhereToBuildNavigation() happy.

more ▼

answered Jul 29 '15 at 07:19 AM

avatar image

ddvlost STAFF
1.3k 18 7 48

avatar image rajkosto Jul 29 '15 at 07:21 AM

Earlier you could override IsThereAnywhereToBuildNavigation() by setting bWholeWorldNavigable to true, but they removed the UPROPERTY on that.

avatar image ddvlost STAFF Jul 29 '15 at 07:38 AM


It's a deprecated property, and will be probably removed soon. We will look into fixing UNavigationSystem behavior with world composition. NavigationSystem tries to be very helpful to the user and deletes navmesh actors when there is no bounds in the currently loaded world. Probably more correct behavior would be to let user delete navmesh if he does not need it anymore.
(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question