Level Loading Screen with Progress bar (UMG)

I’ve posted this question both on the Answer Hub and the UMG Documentation thread, but I haven’t received any replies yet, so I thought I’d try here as well.

I’m working on making a loading screen using UMG, but I’m running into issues where the loading screen doesn’t show up until after the load is complete. I’m not sure what might be causing the delay since the Loading Screen widget is being created before the open level command.

My blueprint:

I’m also hoping to be able to add a progress bar to track loading progress. (and / or just % complete text). Is this something that UMG, or even UE4, can handle?

Thanks.

Probably not. In 4.4 widgets are tied to worlds, the one you just so happen to be unloading as you load the next level :slight_smile: In 4.5, widgets are now outered to the game instance to allow them to persist between level loads. So in 4.5, you should at least be able to show the loading UI - totally unverified. Not sure about the loading progress, I know there’s lots of unfinished work in the ‘Loading Screen’ area of the codebase, so I wouldn’t yet expect it to be exposed to blueprints.

Hmm… Well then, I’m a little confused. The last “Remove from Viewport” seems to be working fine (i.e. If I remove it, the loading screen stays up once the new level finishes loading). From what I can tell, the issue seems to be the “Add to the Viewport” being called at (essentially) the same time as the level load, so it just doesn’t have the chance to visually show up before the level load kicks in. Is there any type of “Delay” feature with UMG that might solve the problem? (Or am I completely off target here?)

Thanks for the reply!

Oh yeah. And I kinda figured this might end up requiring a bit of C++ instead of blueprints. Thought I’d ask though :slight_smile:

There is a Loading Screen mechanism in place with UE 4.4. However it only work with Slate Widgets. Some more info here: How do I make a Loading Screen? - World Creation - Unreal Engine Forums

Marc

Resurrecting old thread - is it possible to create level loading loading progress indicator using UGM with 4.11 using BP? If so, how?

P.S. This would be done for streaming level - a black box level would be loaded initially, then 3D widget would appear (with progress indicator) and in the background main level would be loading. So the progress indicator would show progress of main level loading/streaming in the background.

Thanks.

Using Streaming Levels for Loading Screens is MÄH! Don’t do that. @TheJamsh has a Loading Screen Tutorial that lets you add a simple Loading Screen via C++.
YES C++, but he explained it very well and also hands out the code. So you could probably copy paste it.

Yes, that means a proper Loading Screen, without nasty workarounds, is not possible in BP only. The ability to let Widgets survive a Map-Change has been killed
when Epic decided to force kill all Widget. Why did they do that? Because people kept Widget alive that had references to the old level -> crash.

Also, a correct loading indicator is yet to be discovered. No idea where to pull all the data from and even if yes, i doubt this data is available in Blueprints.
You will be stuck to create a fake indicator that just loads over time and either sits at 100% if it takes too long or jumps to 100% if it loads faster than expected.

So is there no way to validate the map has loaded to fix the 100% jump and it not actually loading…
as for the Long loaders that would potentially bypass the timed delay you added to FaKE it so to speak… is this a one side fix?..

But, that’s what I need to do. I need to load something within 4 sec (black cube + indicator) from starting the game. Then, when that is loaded, load the rest. So, there is no “old level”.

So I am guessing it’ll have to make infinitely spinning circular :frowning: Is there a way to get bool variable in BP when streaming level is done loading / streaming, so I could teleport player from black box into the level ?

Ah, if you are already using Streaming Levels, then yes, that’s ok. I just mean that you shouldn’t use Streaming Levels to workaround a LoadingScreen.

Why is that?