I have a bug that’s just appeared on one of my maps and I’m hoping someone here has run into this in the past and can lend a hand.
The map with the bug is a world partitioned map that has an area of about 8km square with around 4km square of that densely populated with trees and other foliage. Because the map is so densely populated I always make sure that I unload all areas before I close unreal engine so I don’t have long load times when I open the map up again and when I’m working on the map I make sure to only load the area that I’m working on at a time.
The bug that I’m getting now though, Is that when I load the map, there is a “region” on the world partition minimap that covers 95% of the map that is generated which forces nearly the entire map to load and It takes hours to load the map due to all the foliage actors. The problem though is that even if I unload that region, save, close and reopen the map, it just regenerates itself and I have to wait for the entire map to load again. It’s as if the file that stores the data on which regions on the world partition mini map are loaded or unloaded is corrupted. It doesn’t matter what I do, if I unload all regions of the map before saving and quitting, it still reappears the next time I load the map.
If I wait several hours for the map to load I can load and unload regions like normal and everything works as intended after that, but if I close the editor and have to load the map again, the bugged out region is back again and I have to wait for the whole world to load again. Which can get very annoying if the engine crashes and you have to wait hours to get back to work.
One weird detail is that when the map is loaded I get the message in the viewport that “no regions loaded”, despite the fact that my entire map is loaded and I can unload the region that is causing it.
Before anyone asks, all my world partition settings for enabling streaming etc are correctly set and my world partition stuff works perfectly. It’s just this phantom region that always appears when I load the map.
I feel like there should just be a file I can delete or modify somewhere that stores the information of which regions are loaded or not, but I have no idea where or what file holds that information.
Below is a screenshot of this region that just keeps coming back every time, no matter how many times I unload it.
World Partition gives me the heebie jeebies. I manually partition my worlds, because Partition really does take so much of the control of what happens out of your hands.
Watching this thread in hopes someone has an answer for you.
(If you figure it out, PLEASE post the answer here!)
Hey there. The second you replied I solved it haha.
Not sure just yet if it was a bug or a regular feature for some reason built in by unreal engine but…
I noticed the bounds of the phantom region were similar to my navMeshBoundsVolume. So I deleted my navMeshBoundsVolume and the recastNavmesh, unloaded everything, saved, closed and reopened. The phantom region is now gone!
I have not a heap of testing yet to try recreate the bug, but I created a new navMeshBoundsVolume on the map, unloaded everything, saved, and reopened the map and the bug is still gone.
So for now it seems fixed. I guess the navMeshVolumeBounds or recastNavMesh was bugged. If it comes back again I’ll update the thread but for now it seems fixed. Makes no sense it would force regions of the map to be loaded on the initial map load though, even if “is spatially loaded” is set to false it shouldn’t effect the loading of other actors.
Yeah, any new information you come across, please share it. I’d like to know.
Great work!
(This is why I avoid automation as much as reasonably possible; something goes wrong, and you almost have to reverse engineer the case. Usually. Thankfully, not this time.)
So I’ve done a bit of testing and there’s definitely something going on with the recastNavmesh.
Deleting the old navMeshBounds and recastNavMesh fixed the problem I was having, but as soon as you adjust any of the values in the new recastNavMesh (Cell size, height, etc) it force loads every actor inside the navMeshBounds area. I then tried unloading the area just loaded and it wouldn’t do anything in the editor, everything would just stay loaded. I saved and closed unreal engine and restarted and loaded the map again. Everything in the map was unloaded which is what I wanted but the recastNavMesh would remain unloaded in the outliner even if I loaded every region of the map, which is an issue I’ve come across before with other actors and just requires deleting of the actor from the “ExternalActors” folder in the projects folder. There was also a new recastNavMesh that had been created but with the default settings however. So now I have 2 recastNavMesh’s, one that remains unloaded at all times no matter what and one that behaves normally, that I can adjust the values etc on and everything behaves as expected. I have gone into the my projects “ExternalActors” folder and deleted the recastNavMesh that would never load and now have just the one recastNavMesh and navMeshBoundsVolume. Everything works now as it should and their is no strange force loading bug happening but I thought I’d just let people know there is some funky stuff that can happen when adding navigation to your world partitioned map so just keep an eye out for that.
Hopefully this can help someone else out there as it cost me so far around 48 hours of my life to figure out lmao.
I THINK the reason this happens is because the NavMesh has to access everything in the map for it to operate. But the moment you change something, it needs to be reset (like baked lighting).
That might be why it works one moment, and then causes the loading issues upon startup of your updated existing project; it needs to evaluate what is valid and invalid, because World Partition literally pops things in and out of existence (by unloading the data).
(I wonder if changing the NavMesh settings to Dynamic would make any difference?)
If the NavMesh didn’t reassess the updated world state, you could have characters walking into “invisible” objects.
Yeah I understand why it might have need to access the landscape to generate navigation initially but it was definitely bugging out when it was insisting on being loaded on the map load. I have no problems now thankfully after deleting and placing a new one, I think there must have been something broken in the “one file per actor” file world partition uses. My navigation is already Dynamic but thanks for the idea.