Announcement

Collapse
No announcement yet.

Seamless, Proper Loading Screens! [Play Movies, Audio & Animated Widgets!]

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

  • Seamless, Proper Loading Screens! [Play Movies, Audio & Animated Widgets!]

    After being somewhat frustrated with the loading screen solutions I've seen people follow so far, I've decided to share how I handle Loading Screens in my Hovertank Game.

    IMO I think this is personally the best (and most sensible) way to go about it. Current examples require all sorts of workarounds to implement such as loading into different levels, using streaming for the entire project etc - completely defeating the purpose of a loading screen in the first place. Less than 20 lines of code lets you avoid all of this.
    • No temporary maps or streaming level nonsense!
    • No additional calls, nodes or setup required, engine code automatically handles all transitions and kicks in when a map is triggered to load. All you have to do is call Open Level, or Join Session etc...
    • No conflicts in PIE.
    • Can easily play Movie Files, Audio Files & Animated widgets
    • No Garbage Collection / reference issues.
    • MoviePlayer is supported on all major platforms
    • Integrates seamlessly with an existing project.


    There's a very minimal amount of C++ to set this up (very minimal), and I've pasted full source that you can easily copy-paste into an existing project.
    https://wiki.unrealengine.com/Loading_Screen
    Last edited by TheJamsh; 12-30-2015, 09:31 PM.

  • replied
    Just got the Nick's plug-in to work, I am soooo happy, now I can pass testing for the console!!!! Yeaaaaaaaa THANK YOU NICK!!!!

    Leave a comment:


  • replied
    Just finished long testing and multiple new projects with the plug-in and the code. From what I can tell it will only work with C++ projects. The Plugs-in works amazing in the Stand Alone Game in PIE but will not work in Packaged game. Back to the drawing board, I do not know what I am going to do. Console flagged a Bug with over 30 seconds load times on one of the maps, it was 42 seconds in "Slow Hard Drive" mode and wants a animated loading screen. I have been reading and reading and tearing my hair out and still no animated loading screen.

    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.

    Alex from unreal in this video talks about Slate and MP4 working and shows how to make it work with the Action RPG game but it is C++. https://youtu.be/ON1_dEHoNDg?t=942

    If anyone knows of a way to make animated loading screen with BluePrint please let me know and help me...........
    Last edited by JohnADaniels; 08-04-2019, 02:10 PM.

    Leave a comment:


  • replied
    TheJamsh, I thought I was going crazy until I read your post and started to think about making streaming levels which would have been a nightmare because I am already in testing with console.

    What does every game need?​​​​​​ A animated loading screen, why in the world Epic did not include one blows my mind. Epic does so many things right but sometimes they totally drop the ball. I have read and watched so many video(As I am sure many others have) and there is nothing out there for a simple animated loading screen. Thank you so much for putting this together. You should create a plug-in for the Marketplace because you would have the market cornered because everyone needs a loading screen.

    Also note, I tried the plug-in version by Nick and it does work when you play in "Stand Alone Game" in the Editor, but once the game is packaged it will not work at all, not for sure what the problem and tried everything I could think of, if anyone else fixed this issue please let me know. The project is a blurprint project, do you know if the plug-in only works with BluePrint?

    will try your code and see if it will work with that.
    UPDATE: Tried your code but was running into an issue like the other guys where you create a new GameInstance inside the BluePrint project and then you cannot add the code because it is not a C++ file.

    Would it be possible to make this in BluePrint?

    Thanks again TheJamsh! Maybe Epic needs to hire you
    • No temporary maps or streaming level nonsense!
    • No additional calls, nodes or setup required, engine code automatically handles all transitions and kicks in when a map is triggered to load. All you have to do is call Open Level, or Join Session etc...
    • No conflicts in PIE.
    • Can easily play Movie Files, Audio Files & Animated widgets
    • No Garbage Collection / reference issues.
    • MoviePlayer is supported on all major platforms
    • Integrates seamlessly with an existing project.
    Last edited by JohnADaniels; 08-04-2019, 01:43 PM.

    Leave a comment:


  • replied
    Now I've narrowed it down to the stupid bug that was first raised five years ago and about which many, many people have complained and about which Epic has done sod-all, which is that UE4 cannot cope with the taskbar being at the top of the screen. Ridiculous.
    Last edited by Bob3DGames; 07-18-2019, 01:40 PM.

    Leave a comment:


  • replied
    After further experimentation it turns out that it all works perfectly fine if I don't use the console command 'fullscreen'. Unfortunately, executing that command is the only way I know of to hide the taskbar.

    So right now, I have the choice between having part of the window cut off and the taskbar showing (entirely unacceptable) or don't use this loading screen system (which is the only one I know of that works at all).

    Leave a comment:


  • replied
    Hello,

    I have a problem with the TheJamsh's plugin version of this and I have no idea what's going on.

    I've put the plugin in the project's plugins folder and compiled the solution in VS, and the loading screen settings appear okay in project settings in EU, so no problem there. And when I start the game up in standalone the startup screen with the throbber works and I get to my empty level with my UMG main menu.

    However, when I click on my New Game button, which uses an OpenLevel node the UMG widget blueprint, it shows the loading screen for a second or two, switches to unmaximised window containing just black and crashes. The following error report is then displayed:


    Assertion failed: IsInRenderingThread() [File:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\SceneUtils.cpp] [Line: 683]

    UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:79]
    UE4Editor_Core!FOutputDevice::LogfImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
    UE4Editor_Core!AssertFailedImplV() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:101]
    UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:439]
    UE4Editor_Engine!FScopedGPUStatEvent::Begin() [d:\build\++ue4\sync\engine\source\runtime\engine\private\sceneutils.cpp:724]
    UE4Editor_SlateRHIRenderer!FSlateRHIRenderer:rawWindow_RenderThread() [d:\build\++ue4\sync\engine\source\runtime\slaterhirenderer\private\slaterhirenderer.cpp:656]
    UE4Editor_SlateRHIRenderer!FSlateRHIRenderer:rawWindows_Private() [d:\build\++ue4\sync\engine\source\runtime\slaterhirenderer\private\slaterhirenderer.cpp:1154]
    UE4Editor_MoviePlayer!FMoviePlayerWidgetRenderer:rawWindow() [d:\build\++ue4\sync\engine\source\runtime\movieplayer\private\defaultgamemovieplayer.cpp:872]
    UE4Editor_MoviePlayer!FSlateLoadingSynchronizationMechanism::SlateThreadRunMainLoop() [d:\build\++ue4\sync\engine\source\runtime\movieplayer\private\movieplayerthreading.cpp:146]
    UE4Editor_MoviePlayer!FSlateLoadingThreadTask::Run() [d:\build\++ue4\sync\engine\source\runtime\movieplayer\private\movieplayerthreading.cpp:177]
    UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:96]
    Any idea what the issue might be? Hopefully I've just missed something obvious in setting it up!

    Regards.

    PS Sorry about the smiley faces, I don't know how to get rid of them.
    Last edited by Bob3DGames; 07-17-2019, 02:43 PM.

    Leave a comment:


  • replied
    Originally posted by Garrus9619 View Post
    Hello devs,
    I've got some questions about using loading screen with movie player:

    - Is it possible to override the behavior that automatically shuts down the loading screen when loading completes (I would like to expose in blueprint a function that allow me to explicitly remove the loading screen when I need to)
    no, it is not possible, the best you can do is to tag "manual stop" that will close loading screen on any key shile loading is finished (persistent level is loaded in level streaming scenario)
    also movie player stops ticks that prevents connecting to server if you are making multiplayer game.

    Leave a comment:


  • replied
    Hello devs,
    I've got some questions about using loading screen with movie player:

    - Is it possible to override the behavior that automatically shuts down the loading screen when loading completes (I would like to expose in blueprint a function that allow me to explicitly remove the loading screen when I need to)

    - Can I use an UMG widget in some way or I must do everything regarding the UI in slate?
    Thank you in advance

    Leave a comment:


  • replied
    Wondering about the plugin option wait for manual stop. Can anyone tell me how this works and if it could be exposed to BP?

    Leave a comment:


  • replied
    You can possibly get loading progress (in C++) by calling GetAsyncLoadPercentage(packagename) where packagename is your level.

    Leave a comment:


  • replied
    I do spawn a UMG widget, however the WIDGET stays up just fine, its the video that doesn't stay, it happens without a widget as well anyway. Maybe its the video settings.

    Leave a comment:


  • replied
    I've not had that issue personally but I've only ever used Startup Movies.

    You're not using a UMG widget are you? It's possible that the widget and it's references etc. are being cleaned up while tearing down the old world. Personally I'd stay away from UMG for cross-level stuff like this.

    Leave a comment:


  • replied
    Anyone had the issue of the Video looping maybe twice but then just blacking out for the rest of the loading process? I combined a video and also having a widget ontop to display some dynamic text.

    The video always ends early before the loading actually finishes.

    Leave a comment:


  • replied
    Sure thing

    Leave a comment:

Working...
X