GithubHelp home page GithubHelp logo

ue4plugins / loadingscreen Goto Github PK

View Code? Open in Web Editor NEW
504.0 70.0 163.0 109 KB

A plugin for Unreal Engine 4 to expose simple controls for managing load screens.

License: MIT License

C# 4.11% C++ 95.89%

loadingscreen's Introduction

LoadingScreen

Unreal Engine 4 plug-in that adds a simplified layer on top of the loading screen system to make it easier to add a loading screen.

Screenshot

About

The LoadingScreen plug-in implements a module that allows you to configure a simple Loading Screen system in the engine. To goal is to make it more customizable over time to avoid needing to write a new loading screen manually.

Supported Platforms

This plug-in was last built against Unreal Engine 4.22. It works on all platforms (probably).

Dependencies

This plug-in requires Visual Studio and either a C++ code project or a the full Unreal Engine 4 source code from GitHub. If you are new to programming in UE4, please see the official Programming Guide!

Usage

You can use this plug-in as a project plug-in, or an Engine plug-in.

If you use it as a project plug-in, clone this repository into your project's /Plugins directory and compile your game in Visual Studio. A C++ code project is required for this to work.

The plug-in configured to be enabled by default once it's in your game's plug-in directory.

Support

Note: This plugin is not supported by Epic Games.

Please file an issue, submit a pull request or hit me up on twitter @NickDarnell

References

loadingscreen's People

Contributors

morskoyzmey avatar mrscottypieey avatar nickdarnell avatar nlebedenco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

loadingscreen's Issues

Set Image display time lengh

Hey guys, any way to set the image being displayed for a specific length of time? And the tips too? So for example, Image01 is visible for 2 secs along with tip01, then image 02 and tip02 and so on?

Crash in packaged game

I've only had this occur with 4.12.5 -

No crashes occur when PIE or in Standalone, but crash occurs in packaged game on loading between maps.

The crash gives : "Illegal call to StaticFindObject() while collecting garbage!"

Disabling the plugin (and packaging again) fixes the issue.

4.18 version?

Can someone tell me how to load it for 4.18 version?

IT WORKS ON CONSOLE, THANK YOU NICK!!!!!!!!

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 plug and it works!!!! Thank you so much Nick, you are the man!!!!!

Does't compile on Mac

And i want to try dat plugin on mac but i cant compile. So report is - on {UE4.12,macOS} plugin does't compile.

The UE Log has:
...
[2016.07.19-13.38.23:955][ 0]LogModuleManager:Warning: No filename provided for module LoadingScreen
[2016.07.19-13.38.23:955][ 0]LogModuleManager:Warning: ModuleManager: Unable to load module 'LoadingScreen' because the file '/Users/Shared/UnrealEngine/4.12/Engine/Binaries/Mac/' was not found.
[2016.07.19-13.38.28:150][ 0]LogExit: Preparing to exit.
...
if you help me to compile plugins, it will be great... i will response with changes.

4.20 Version ?

I seems this plugin doesn't compile anymore...
Can you do a 4.20 version, or tell me how to workaround with errors messages ?

Loading Screen not shown when open level has been called

I am using UE4 4.20 and when i call the open level node in a blueprint the loading screen is not shown. It is only shown when i boot the game. I tried running my project as standalone and did a new build. Both ways have the same problem: when launching the game, loading screen is shown with an open level node it is not shown. Can someone help please.

4.18 Freezing after "Open map"

Hi,
Great plugin.
On 4.15 was running fine. We migrated to 4.18
The plugin is freezing just after doing a "Open map".
Not always, but often.
It mess with low level rendering layer of 4.18.

Assertion Failed Crash

Hello and thank you for this plug-in.

Some of the players reports crash when game startup. At log ;

]LogWindows: Error: === Critical error: ===
[2019.02.23-17.07.16:771][ 0]LogWindows: Error:
[2019.02.23-17.07.16:771][ 0]LogWindows: Error: Assertion failed: SUCCEEDED(HResult) [File:D:\Build++UE4\Sync\Engine\Plugins\Runtime\WindowsMoviePlayer\Source\WindowsMoviePlayer\Private\WindowsMovieStreamer.cpp] [Line: 475]
[2019.02.23-17.07.16:771][ 0]LogWindows: Error:
[2019.02.23-17.07.16:771][ 0]LogWindows: Error:
[2019.02.23-17.07.16:771][ 0]LogWindows: Error:
[2019.02.23-17.07.16:771][ 0]LogWindows: Error: [Callstack] 0x000007fefdc7cacd KERNELBASE.dll!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000140e4fb16 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000140c49f37 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000140b86a88 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001409f289a ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001409f62e5 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001409f4d8d ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001409f522a ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001409f478e ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000142c364f5 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001403da4bd ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001403d266a ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001403d28ca ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x00000001403e0eb5 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000144843c96 ASPv3.exe!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000077b6652d kernel32.dll!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error: [Callstack] 0x0000000077c9c521 ntdll.dll!UnknownFunction []
[2019.02.23-17.07.16:772][ 0]LogWindows: Error:
[2019.02.23-17.07.16:810][ 0]LogExit: Executing StaticShutdownAfterError
[2019.02.23-17.07.16:815][ 0]LogWindows: FPlatformMisc::RequestExit(1)

Any idea how to fix it. Thanks

Btw ; I'm using a video at startup loading screen

'ReadOnlyTargetRules' could not be found

Hi Nick

Im trying to use this plugin for a game. I get this error when I copy git download into plugins folder and try regenerate:
error CS0246: The type or namespace name 'ReadOnlyTargetRules' could not be found (are you missing a using directive or an assembly reference?)
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files.

I did see a incompatible version error in 1 of my many, many attempts to add the plugin. Im using 4.14 source.

any advise is hugely appreciated

Expose Movies Path to Blueprints to change change video played at Runtime

How would I go about exposing the classes to blueprint so we can change MoviePaths to DefaultScreen struct at Runtime? I'm trying to have it so through blueprints that it can change the moviepaths, so when I make a change to level, a cutscene will play out instead of a static array we set in the Project Settings.

I was able to expose the structs and variables, but I'm unable to expose Loading Screen as a reference so I can plug it into the target node.

Integrate Stereo Layers

Would it be possible to do a HMD detection, and if its true, render the loading screen in a stereo layer for VR?

Adding tips and setting MinimumLoadingScreenDisplayTime issue

When MinimumLoadingScreenDisplayTime is changed to anything above 0, it will cause the widget to stay visible, while the engine already ticks. Tips must be present to reproduce.

When any input is detected, the widget will properly hide/collapse.

Unreal 4.19 release coming soon?

Hello,

We could really use this plugin for our loading issues in UE4.19. Because of massive framedrop when loading a level, our app switches to the SteamVR room for loading.

We tried the transition map from Unreal itself, as well as the "auto enable splashscreen node" and the "execute command line node" with ServerTravel. Both resulted in Steam going to the SteamVR room on framedrop.

We would like to have a custom build loading transition map and hope it can be solved with your plugin.

Are you currently working on a new release for 4.19 or is there some way we can have a work around without having a C++ project?

Thanks in advance,

4.22 Slate Widget Workaround

This is a horrible workaround that I had to implement for my game to fix a slate loading screen under 4.22. I do not use this plugin directly, but I did use the code from this as a basis for my own module and my version also broke under 4.22.

Hopefully it will allow someone else to raise a PR to "fix" the plugin under 4.22.0 (though the engine change seems completely broken and may well be revised in 4.22.1).

Here's the commit that broke this plugin: https://github.com/EpicGames/UnrealEngine/commit/d0754855294a6d27804a17a334bb13f037854780

The change means that an ActiveMovieStreamer is required for the Slate Widget to ever get initialised, and also for at least one path in the MoviePaths array.

This is a dummy streamer class (doesn't matter where this is defined):

class FNullMovieStreamer: public IMovieStreamer
{
public:
	FNullMovieStreamer()
	{
		MovieViewport = MakeShareable(new FMovieViewport());
	};
	virtual ~FNullMovieStreamer() {};

	virtual bool Init(const TArray<FString>& MoviePaths, TEnumAsByte<EMoviePlaybackType> inPlaybackType) override { return true; };
	virtual void ForceCompletion() override { };
	virtual bool Tick(float DeltaTime) override { return false; };
	virtual TSharedPtr<class ISlateViewport> GetViewportInterface() override { return MovieViewport; };
	virtual float GetAspectRatio() const override { return 0.f; };
	virtual void Cleanup() override { };

	virtual FString GetMovieName() override { return FString(); };
	virtual bool IsLastMovieInPlaylist() override { return false; };

	FOnCurrentMovieClipFinished OnCurrentMovieClipFinishedDelegate;
	virtual FOnCurrentMovieClipFinished& OnCurrentMovieClipFinished() override { return OnCurrentMovieClipFinishedDelegate; }

private:
	TSharedPtr<FMovieViewport> MovieViewport;
};

This should be referenced as a private member in FLoadingScreenModule: https://github.com/ue4plugins/LoadingScreen/blob/master/Source/LoadingScreen/Private/LoadingScreenModule.cpp#L10-L27

private:
	TSharedPtr<class FNullMovieStreamer> NullMovieStreamer;

Register this with the MoviePlayer at module startup https://github.com/ue4plugins/LoadingScreen/blob/master/Source/LoadingScreen/Private/LoadingScreenModule.cpp#L53

	NullMovieStreamer = MakeShareable(new FNullMovieStreamer());
	GetMoviePlayer()->RegisterMovieStreamer(NullMovieStreamer);

Ensure that there is at least one movie path specified, this can probably be done from the plugin configuration UI, but can also make sure it happens by adding an empty string into the MoviePaths array here: https://github.com/ue4plugins/LoadingScreen/blob/master/Source/LoadingScreen/Private/LoadingScreenModule.cpp#L83

This should fix the Slate based loading screen.

Font Options Have No Effect

Known issue - it's a cross threading problem. Need to investigate better way to load the bulk data reliably on another thread.

Option to have the Loading Screen behind the video?

Hi, Thanks for the plugin. I was wondering how to make the slate loading screen appear behind the video. I have a quick video but after its done, i'd like to have the loading screen still up. Currently, the loading screen is in front of the video.

I'm not sure if there is a slate z-order command or should I find an end of movie event, tie a delegate to that to draw the loadingscreen after it has ended.

[SOLVED] Packaging Failed because of this Plugin.

Error on Packaging (In Editor Preview is all fine). Android & Windows both produce Errors. UE 4.16

Edit:
Final update. Deleting the Plugin Files and redownloading them + regenerating the Visual Studio Files seem to have fixed the Problem. No Clue why this occured. Did it the exact same way the first time.

Movies not loading/not showing.

So, what I've done is "plugin-itised" the LoadingScreen widget, but it doesn't seem to show movies though I have it pointing to the movie I want to play(Which is the UE4 Logo) and I see a black screen, and that's it. Any thoughts?

Font setting not work

hi guys ,I know there is a thread bulkdata access violation.
may be could referece some code in FTexturePlatformData to solve this problem

`
for (int32 MipIndex = 0; MipIndex < FirstMipToLoad && MipIndex < Mips.Num(); ++MipIndex)

{

	FTexture2DMipMap& Mip = Mips[MipIndex];
	if (Mip.BulkData.IsBulkDataLoaded())
	{

		Mip.BulkData.Lock(LOCK_READ_ONLY);
		Mip.BulkData.Unlock();

	}

}

`

How to work with C++ code

Hello
I think that your plugin is very cool, but I don't know how to use it in my project with c++ code. I am using your plugin as a project plug-in (clone this repository into my project's /Plugins directory). Please advice.

Plugin for 4.17

Hello everyone, how can I make this plugin compatible with version 4.17.1 of the engine?

Default Screen does not seem to kick in.

Hi,

We are using this plugin for our multi platform game that we are developing.

We ran into a problem where the startup screen works fine and shows up at the correct time, but unfortunately, the default screen does not show up at all when changing in-between maps.

Do you have any ideas why this would be happening?
Let me know if you have any tips for us to try to get this issue fixed.

Thank you and regards.

EDIT: It does work on some levels every time but on some it doesn't at all.

Loading screen doesn't display in 4.22

The loading screen does not display at all in 4.22, it is simply a black screen and then the main menu as if the plugin wasn't installed. I am not using any movies, only text.

[POSSIBILITY CHECK] UMG Utilization

Hey,

I want to know, isn't it possible to show a UUserWidget on this Loading Screen?

I'm trying to implement that by providing a reference to my UMG Blueprint and utilize it during loading process.
But my problem is that I'm weak in C++ and a specially C++ Unreal stuff and this is hard for me to estimate is this I who is writing code with wrong syntax or this is just impossible due to other limitations.

I'm pushing a new property declaration into LoadingScreenSettings.h like so:

// Reference UMG Asset in the Editor
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Widgets")
TSubclassOf wMainMenu;

// Variable to hold the widget After Creating it.
UUserWidget* MyMainMenu;

this is fine, i can provide a UMG BP class to it from editor.
and after I need to do something like this in LoadingScreenModule.cpp:

if (wMainMenu) // Check if the Asset is assigned in the blueprint.
{
// Create the widget and store it.
MyMainMenu = CreateWidget(this, wMainMenu);

	if (MyMainMenu)
	{
		MyMainMenu->AddToViewport();
	}
}

and here comes my troubles.
[1] MyMainMenu = CreateWidget(this, wMainMenu); // I need to provide a ref to current PlayerController instead of 'this' but i don't know how to get it (if possible at all)
[2] Trying to get this player controller by doing this: GEngine::GetWorld()->GetFirstPlayerController();
[3] Trying to access wMainMenu and MyMainMenu like followings: Settings->StartupScreen.wMainMenu and Settings->MyMainMenu
[4] Is this totally possible to add the UMG into this?

Not working in 4.13(Built from Source)

I've tried to get different video formats to work, but they've yet to work(in .wmv, .mp4 and more). It seems it's just the Unreal Engine 4.13 version

Works in PIE Standalone but not packaged project

Hello,

I left some messages on your YouTube video and also going to try here. This works great! in PIE Standalone but not packaged project. Not for sure what is wrong, Have tried a lot of stuff but it will not work in a packaged windows game. Tried in a fresh project but same results, this is 4.22.3 so maybe not compatible, can you think of anything to try?

Thank you,
John

4.20 not work

Unreal says to rebuild the plugin, without success, can you reupload the plugin?

Cross-platform logic (VR, PC)

Hello, the plugin is great, but I'd like to ask: is there any way to disable it for VR while keeping it enabled for PC? The game can be played both with or without HMD, and while playing in VR the image on the screen is distorted. I tried adding check here:
**
void FLoadingScreenModule::StartupModule()
{
-> if (GEngine && GEngine->HMDDevice.IsValid() && GEngine->HMDDevice->IsHMDConnected())
if ( !IsRunningDedicatedServer() && FSlateApplication::IsInitialized() )
{ ...

**
but I got runtime error

Documentation Request: Movie Paths

What is expected to be in this field? For example I tried the following...

  • /Game/Movies/MyMovie.avi
  • /Game/Movies/MyMovie.MyMovie
  • /Game/Movies/MyMovie.uasset
  • /Game/Movies/MyMovie
  • MyMovie.avi
  • MyMovie.MyMovie
  • MyMovie.uasset
  • MyMovie

None of those seemed to be satisfactory for actually playing the movie. However, If I Open the Media Player asset that UE creates in the /Content/Movies directory the movie plays just fine within that editor window.

Additionally, what happens if you provide multiple movies in the Movie Paths Array?

Aside from that snafu, love the loading screen plugin so far! Thanks!

I don't get it

I did everything according to the instructions and almost everything works, but for example when I start using mygameinstance the assigned video starts playing, but after 1 second the screen turns black and the sound and tex stay in place. If I use default gameinstance everything is fine but I am not sure

I still did not understand how to get the font settings to change (where,how and which files shoud be changed)
Also how to replace this Circular Throbber :/
Or maybe even easier would be to use my widgetblueprint, but even if so then how do I enable (use) it?

And yes I understand my questions may seem too blunt and they need only one minute to resolve them. Therefore, if you have a desire to write an instruction step by step, imagine that I am stupid blonde (or brunette, no difference :))
Or you can share a super simple project where all that I mentioned above is configured and changed correctly
There will be time to sit and figure out how to set the code and stuff
Thank you for reading and I hope someone will help

Upgrade to 4.23

Hi! Thanks for this amazing plugin. You can upgrade to 4.23?
Thanks again!

Not translated Tips.

It does not work to make a translation. "TArray Tips". Translation is present in the translation archives. The locale in the plugin returns the correct one. Is there some secret to translating messages Tips?

Compile issue

Tried to compile a clean project in ue 4.15.1 with disabled plugin but I got an error with questions and hieroglyphs
If the plugin is enabled that project does not run at all
UE 4.14 did not observe such a problem

Error with 4.15 and 4.16

When I try to Generate project with the plugin, I always get an error(french) :
Running C:/Program Files/Epic Games/UE_4.15/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project="C:/Users/OAXP/Desktop/MY GAME !/GAME PROJECT/Parkour/---- 415/ALCS/Parkour_V3.uproject" -game -rocket -progress
Discovering modules, targets and source code for project...
Messages while compiling C:\Users\OAXP\Desktop\MY GAME !\GAME PROJECT\Parkour---- 415----\Intermediate\Build\BuildRules\Parkour_V3ModuleRules.dll:
c:\Users\OAXP\Desktop\MY GAME !\GAME PROJECT\Parkour---- 415\ALCS\Plugins\LoadingScreen-master\Source\LoadingScreen\LoadingScreen.Build.cs(8,15) : error CS1729: 'UnrealBuildTool.ModuleRules' ne contient pas un constructeur qui accepte des arguments 1
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.