what is the best way to load maps without freezing the camera?

In order to keep comfortable the player.
A persistent level?
I was reading about that and streaming and world composition, but it seems a little overkill for just having a simple scene (even just a quad with a texture or just text in front o the user) running while loading next map.

Ideas?

Thanks.

Given scene 1: large scene (stream in scene 2 in the background)
Scene 2: Transition scene (stream in scene 3 in background)
Scene 3: Large scene (stream in scene 2 in background)

Then do a fade in/out between the scenes. You basically want to keep the transition scene loaded at all times to prevent unnecessary “fade-times”.

thanks, do you know a good tutorial about that?, (better than the official info: World Composition in Unreal Engine | Unreal Engine 5.1 Documentation)

Got it working, a few tips for anyone trying to do something alike.
first read the official info: https://docs.unrealengine.com/latest/INT/Engine/LevelStreaming/WorldBrowser/index.html
1.- have two or more levels
2.- make another (the simple transitional one) make it persistent by checking enable world composition int “world settings” tab
3.- create a new layer in the world composition window at that moment disable streaming distance
4.- move the levels but the persistent one to the new layer (right click on the level browser and assign to layer)
5.- then you can test by load and unload them in the level blue print of the persistent one
How communicate from the normal levels with the persistent one in order to load and unload persistent or switch game modes I still dont know, tomorrow Im going to keep on testing…

Try looking at the Showdown demo, I believe this is how they go from the Unreal logo scene to the demo scene

Hi, i am doing the same steps but still being unable to have a freeze-free transition, i run a heavy mathematic algorithm to generate a maze of big size but nothing else, even removed the instance mesh generation so its purely blueprint logic (so its not graphic freezing because of the meshes).

could you give a little more details on this? or maybe an updated method? thanks

The issue is that when you open a new level, the thread blocks. The level is not loaded asynchronously.

My solution was to create a VERY small level which starts loaded. Everything else is unloaded. When you transition into the new level, only the super small level is loaded. Then, when you enter the super small level area (which is black for now), I stream in the remaining “starter” levels. When those levels are finished streaming in, I teleport the player to the new level start location and then fade in from black. I have a near instant level transition time, so there is no need for a loading screen. Though, I could probably create a loading level zone in the super small level area.

Keep in mind that the persistent level is loaded in addition to the loading level, so the more stuff you put into the persistent world, the longer the load time is during world switches.

I still have some minor issues with the thread blocking in SteamVR, where a load time causes the player to revert back to the SteamVR gray grid world. Some people might get confused and think that the game crashed, when it’s really just loading. I’m still hunting for some best practices on how to do world switches as seamlessly as possible in VR.