Announcement

Collapse
No announcement yet.

Animated loading screen and UMG.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Animated loading screen and UMG.

    Hello everyone,

    For the last few days i am trying to figure out a way to play an animated loading screen between (paper2d project) levels.
    After reading everything i could find in the forums i suddenly realized that something so basic (since all games have loading screens) is missing from your software as an out of the box feature!Even the great Rama was having trouble with this.

    UMG is a great opportunity for you guys to fix this since it takes less than 5 minutes to import a video ,create a media texture and then play the moving image through a widget while the game is loading.When the next level is loaded you just remove it from viewport and ,thats it! Unfortunately at the moment it seems that it has no parallel loading capabilities so it hangs or crashes.Do you plan to add this feature in the future?


    I understand that most of you at Epic are great programmers and it is easy for you to do something custom and make it work but the second you gave us the privilege to use your engine and non programmers can create a game (God bless blueprints!) then you must resolve some basic things like the above so we do not waste man hours in trying to understand how to trick the engine so we can make an animated loading screen to work.You create something that works for 90% of people,post a tutorial and if someone wants to make something out of the norm,then he can do it by himself since he has the skill,budget and manpower to do it.

    This is just my opinion and how i see things when something so specialized (Unreal) that was created from you ,for you goes public and thousands of people start using it.It really blows my mind when i see some very simple and basic things missing that even shareware programs have but on the same time we can do Materialraycastigtressfxgazillionpolysmorphingwhiletheyemittparticles with a press of a button!

    If for any reason there is an easy way to play a video while my level is loading and a fellow Unreal user or staff knows something about it i would really like to hear about it.

    Thank you!

    #2
    Because map loading runs on the main thread, it blocks any other game activity until it's completed. It's a pain, but that's the way it works right now.

    I believe Epic has stated it's working on a parallel async loading solution but I have no citation for that. In the meantime though, you can use level streaming (which is asynchronous) to load the new level whilst unloading the other level and play your loading screen animations. Ask every fractional second is level is loaded and when that returns true, remove the Widget from Parent.

    It can work, but you'll either have to wait for something that may or may not come, or you'll have to rework your game for level streaming instead of level loading.
    iTween For UE4
    Procedural pathed animation for actors, components & UMG - $0
    Runtime DataTable
    DataTables dynamically loaded from text or Google Sheets while your game is running!
    easyCSV
    Fast, cheap, and accurate CSV parsing at runtime!

    Comment


      #3
      Yeah unfortunately the closest thing right now (as far as I know anyway) is to play a media texture right before the level load command, then play the media for a couple of extra seconds on begin play.. but when the level is actually loading it will freeze to the last frame since it's thread locked.. and you certainly cannot have a nice loading progress bar or anything along those lines, which is sad.

      4.10 Update! -> [Community Project] WIP Weather & Ocean Water Shader
      WIP Interactive Water Shader, WIP 2D Water Sim
      WIP FFT Ocean w/ Foam, Quad-tree Infinite Ocean LOD

      Comment


        #4
        But you can do what you want with level streaming.
        Keep a top level that contains the loading animation.
        To load a new level, start the animation, unload the current level, load the new level.
        When new level is done loading, remove animation.

        Comment


          #5
          I just did some testing.. It actually works surprisingly well , are there any downsides/limitations when loading a level with streaming?

          4.10 Update! -> [Community Project] WIP Weather & Ocean Water Shader
          WIP Interactive Water Shader, WIP 2D Water Sim
          WIP FFT Ocean w/ Foam, Quad-tree Infinite Ocean LOD

          Comment


            #6
            I always use streaming not had any issues yet, did very similar things with Unity too

            Comment


              #7
              Originally posted by TK-Master View Post
              I just did some testing.. It actually works surprisingly well , are there any downsides/limitations when loading a level with streaming?
              One downside I am aware of, and have ran into, is you can't use level streaming when transitioning from one World Composition based world to another. Since they are unique UWorld's. So at the moment I have no animated load screens, as I can't find a way to async load a World composition based world and only transition to it when it has finished loading.
              FluidSurface Plugin: https://github.com/Ehamloptiran/UnrealEngine/releases
              TextureMovie Plugin: https://github.com/Ehamloptiran/TextureMoviePlugin

              Comment


                #8
                Thank you guys for all your feedback.

                I am creating a 2d side scrolling platformer (Mario,rayman etc) and it makes no sense to me to use level streaming. Call me old school but I just cannot see what benefits it has to offer in my type of game.

                Yesterday, before I created this post I experimented with level streaming and it was a mess. My already created levels blended inside one another and for the love of me I could not understand how the player start worked since the second I pressed play he would spawn somewhere (outside the player start )I could not pinpoint and he would fall endlessly to his doom. I do not know if this is a paper2d specific limitation or my incompetence but I think I am not asking for too much. Just let me load one level after another without the current limitations. As I said earlier now that the engine is more diverse and lets us 2d guys work with it they must adjust accordingly the engine to suit a bigger audience and not be tailor made for only big projects like open world games and such.

                Comment


                  #9
                  Level streaming can absolutely work with a 2D game. Don't think of making your worlds seamless; unload the previous level while you load the new level and once the new level is loaded you can set your player position directly. Don't worry so much about the Player Start, just set actor location when you need to, even if that means at the beginning of the game.

                  Though I agree, async load is a needed feature.
                  iTween For UE4
                  Procedural pathed animation for actors, components & UMG - $0
                  Runtime DataTable
                  DataTables dynamically loaded from text or Google Sheets while your game is running!
                  easyCSV
                  Fast, cheap, and accurate CSV parsing at runtime!

                  Comment


                    #10
                    According to this card on the roadmap Trello (https://trello.com/c/7Wdf9knv) it is currently underway. I'd caution those unfamiliar with the roadmap that the months noted does not mean that it will be done in January, just that there is planned work for it through at least January. In practice, though, I've found streaming levels with an always resident UI map to be a good solution for all of the cases I've run into. This will clearly be needed for large world support, however, so I expect it is a high priority for Epic right now

                    Comment


                      #11
                      Any progress with this? Is there a chance to see this working on 4.8? I would love to see my game having animated loading screens

                      Comment


                        #12
                        +1 must have

                        Comment


                          #13
                          Originally posted by zip View Post
                          +1 must have
                          Thank you for the support zip!

                          Since 100% of all games have some sort of a loading screen i would like ask from the lovely developers at Epic to seriously consider this as a top priority. It only makes sense that if we can create a full game using BP only (the non coders) why would we have to use c++ for something so basic and essential to all games out there regardless genre ?

                          It is like giving me a dual clutch (blueprints) Ferrari (Unreal) without a steering wheel!

                          Comment


                            #14
                            Level streaming is the only way to do this currently with UMG. If you don't use level streaming, then we would need a way to run arbitrary blueprint logic while loading another level without streaming it which is currently not safe to do. Since UMG is nothing without the ability to run arbitrary blueprint logic, you end up getting lots of asserts and crashes when you attempt to tick a Widget during load. It's the same reason C++ is required to use the current loading screen system, it's the only safe place to do it from.

                            We could expose the stock loading screen system in some form, but it would not be able to run any blueprint script. So, given that constraint, what sorts of expectations would you have for it?

                            Comment


                              #15
                              Originally posted by Roccinio View Post
                              Thank you guys for all your feedback.

                              I am creating a 2d side scrolling platformer (Mario,rayman etc) and it makes no sense to me to use level streaming.
                              Go and play Rayman Origins / Whatever the other one is called quickly and tell me you can't achieve the same loading effect with level streaming
                              KITATUS
                              "Information shouldn't be behind a paywall, It should be free for all!"

                              Comment

                              Working...
                              X