Anyone Know How to Make an Animated Loading Screen in Blueprint Project?

Hello,

Does Anyone Know How to Make an Animated Loading Screen in Blueprint Project? The only thing I can find is either use level streaming or you have to have a C++ project.

I had read that someone said you could make a HUD with animated material that is based off a widget BP class and that could be used as a loading screen and I tried that but it froze when loading. E-mailed the guy but never received a reply back. There is a loading asset on the Marketplace but it only works with streaming levels.

Thank you,
John

to my understanding you would need to use level streaming. the basic idea is that you load a level which contains minimal data, this unloads the previous level freeing up memory and your processor (resources in general). then you begin loading the new level in the background. this should make it so not all of your resources are used loading in the new level (limits the freezing) and allows possibly faster loading and better performance on lower end systems since your dropping the old level before loading the next.

as for the actual animation you could handle that with a widget or however else you like.

now as a disclaimer i havent personally tried doing all this but ive read a bit about it elsewhere and it all seems valid to me.

It needs to be level streaming there no other way to detect loading state in blueprints other then having fake loading screen.

I think I saw something on the Unreal Marketplace that lets you do this in blueprints. Check there.

Thank you for the reply, I was trying to do it without having to redo my whole project to work with level streaming. Can you think of any other ways?

Do everyone use level streaming or do most people just use static loading screens? I do not want to have to redo my whole project to work in level streaming unless its the only way.

Thank you for the reply. Wait this one?

I have checked that one but it only works with streaming levels.

Sorry, I was hoping it could get around it via plugin or something.

My approach in this situation is currently to just put a non-animated loading image widget, like a fancy text “Loading…” sign up, just before traveling to the other level.

Thanks, That is my current setup but console wants animated if over 30 seconds long. Going to work on getting the load times down instead of setting up streaming levels.

Level Streaming (using it together with Open Level) is the simplest and personally the best way to solve this issue and it has a big advantage over just using Open Level.

Let’s say you have two levels:

  • Level A with Game mode A
  • Level B with Game mode B

The way you currently do it is just to OpenLevel(B) in A, but there can’t be anything being animating while the game loads Level B because Open Level is a blocking process.

Therefore, the solution is using Level Streaming. Instead of having two levels, you have three levels:

  • Level A with Game mode A
  • Level B with Game mode B
  • Level S (Empty level) with Game mode S (& have Level B as sublevel)

Now, if you wish to load level B while in level A, you first load (Open level) Level S, which will have Game mode S and then load Level B using Level Streaming. Note that the Game mode will be S and NOT B because Level B is only a Sublevel of Level S, and only 1 game mode can be existing at a time.

The big advantage this has over just using Open Level is that you can actually add different types of game modes for Level B.
Let’s suppose we have another level called Level T (Empty Level) with Game mode T. You can now play both Game Mode S and Game mode T in Level B by opening either Level S or T and then Streaming Level B!

EDIT: Before starting the Level Stream you Create a Widget and add it to the Viewport, then once the Level Streaming completes, you remove it. This widget will of course be your loading screen.

Thanks for all the great replies! Also wanted to add that there is a plug-in and C++ code available here:

Yep, I have tried that. Just to let you know that I ended up going back to working with level streaming. That C++ code brought me a lot of hazzle since

  1. It only works/appears in Standalone/Shipped builds
  2. It is not smooth. The video/movie to be played will not be smooth.

Or at least thats my experience. You can have a go at it if you like!!

Failed the testing on the biggest console with load time a little over 30 seconds with hard drive on slow mode and needed a animated loading screen. Only options I could find is convert the whole project to streaming level which sounded like a nightmare at this point in the game.

I found and installed this plugin and it works!!! Thank you so much Nick, you are the man!!!

If anyone else who is too far into development to implement streaming check out Nick’s animated loading screen it works perfect. Thank you Nick!!!