Determining the time taken to load a level

Greetings people. I wish to make a level streaming script. I want to display a loading screen until the level has been loaded. The tutorials which I have seen do the following: They show a loading screen ( a static image), then give an artificial delay and then load the level. For a small project, this seems legit, but for a larger project, it just violates the principle of level loading that is load the level while displaying a loading screen.

The work-around I have thought is this: Get the status of the level that is whether it has been loaded or not, place it inside a while loop something (I am trying to do this in blueprints), Till the screen has not been loaded, a loading screen is displayed (Final goal is to use an animated loading screen or a video based one like GTA5).

Is my work-around efficient? If there is something better, I would surely like to know about it and would require assistance in scripting this.

I don’t think it’s possible to determine how much of a streamed level has loaded.

You can load it without showing it using the ‘should be visible’ bool, then show it and unload the other level.

I have a really simple ‘in between’ level I load ( kind of warp thing ) while the streaming takes place, it works pretty well.

It basically goes like this:

Disable input

Use a postprocess to distort the screen so the player can’t see clearly what’s going on

Load the warp level ( this is what the player sees )

Unload the current level

Start loading next level

Loop checking with IsLevelLoaded ( on the new level )

Unload the warp level

Loop until we can see the player start ( level not loaded enough until then )

Spawn player at player start

Enable input

Phase out post process effect

It looks like this:

298421-warp.gif

Hey!

The whole process kicks off when the player enters a collision box, naturally. But the PP is spawned by the streaming code.

The warp level is just the material you can see with a camera stuck right up it :slight_smile: It comes from this market place asset:

There are others, like:

Once you get further into streaming you’ll probably end up spawning the character, rather than relying on one that was placed in the level. That was my experience anyway. Hence looking for player start :slight_smile:

Greetings. First of all, the work around (method) you have is amazing. I have a few doubts regarding it:

  1. Is the post process activated when we enter something, lets say like a triggerbox?
  2. Is warp level an actual level built inside ue4 or an animation which you have created?
  3. Instead of checking is level loaded, should we directly check for is player character available?

Would really appreciate your input here. I am a beginner so I may be sounding dumb. Thanks

No worries - also take a look at this, it’s about the same thing ( you can ignore the fact that the levels are widgets, that’s not relevant ):

Thank you for helping me out