What would be the best way to handle a pawn(spaceship) flying from space to a planet and then adding a loading screen(while flying through the atmosphere for example) and streaming in a landscape, while unloading the planet?
I do not intend on doing anything similar to No mans sky, but rather Starfield or Star Wars Outlaws, where they have a visible planet in space, but you don’t actually fly down to the ground, but rather load in a level.
I haven’t tested this extensively, but it looks like you can add a world partition level as a streaming sub-level to a non-world partition level.
So you could probably have your ‘in space’ level and ‘on planet’ levels as different WP sub-levels in a persistent non-WP level, and do some screen transition effects (like whiting out the screen when you go through the clouds) when you swap visibility between the sub-levels.
I’m probably going to end up doing something similar in a project I’m working on.
I have yet to found a way to add a WP level as a sublevel to a Non-P level. I can add a Non-P level as a sublevel to a Non-P level without issue, but as soon as WP is involved, I get an error telling me the level is partitioned and I can’t add it. If you find a solution to this, please let me know!
If you want the loading screen then there is no point in streaming? Just load different levels…
It also may work much better, streaming is great for landscape stuff, but space zones need a lot of manicure to work right, and streaming is generally a bad idea if your motion/speeds are a fast as they ought to be in keeping measures in a 1:46 scale…
Hm. What version are you on? I’m using 5.3 and it works for me there. [edit] Just checked with 5.4 and yeah, looks like they disabled being able to add WP sub-levels. That sucks. You could probably dig around in the engine code and roll back that check. I can’t think of a good reason for it to be there.
The other way to do it is to use the World Partition Data Layers, but that removes some other advantages that sub-level based streaming has, like being able to use streaming volumes.
I decided to just go with level streaming without any WP, it just seemed like it would require a bit too much work. So basically I have
ProxyLevel(Persistent level)
l > Space (Sub1)
l > Land (Sub2)
And then I just stream out/in the level. Now I just need to work on getting the transition from space > landscape be as smooth as possible. Doesn’t seem to exist a lot of documentation or tutorials on how to use sequencer for level transition. But at least my prototype works.
Lock into first person view, put flame engulfing the viescreen until it bores you to tears.
Fade it out into solid fog to mimic cluds until it bores you to tears.
Once the landscape actually loads and you are close enohgh to where the player can’t see the edges of it - so basically never before landing - you can remove the cloud cover and let them experience the landing bit.
Now make it something you have to always watch and that is always the exact same.
Make it so you have no cancel button or a way to skip it.
And you have yourself a nice AAA level Bethesda game…
In my experience it’s a better idea to toggle enabled/disabled on level streaming volumes than to explicitly set loaded/visible on the sublevels. I’m not sure OTOH if that setting is exposed to Sequencer, but if it’s not you can make a simple ‘level controller’ blueprint and use an event track to do it, or call events in the Persistent Level level blueprint.