x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

4.6 Preview OnMouseEnter crash on UMG widget which is loading screen

Hello,

I tried to implement a loading screen as follows:

 FLoadingScreenAttributes LoadingScreen;
 
     LoadingScreen.bAutoCompleteWhenLoadingCompletes = true;
     
     TSharedPtr< SWidget> LoadingScreenSlateWidget = LoadingScreenWidget->TakeWidget();
     FString str = FString(TEXT("Lol"));
     LoadingScreen.WidgetLoadingScreen = LoadingScreenSlateWidget;//FLoadingScreenAttributes::NewTestLoadingScreenWidget(); // <-- test screen that comes with UE
 
     GetMoviePlayer()->SetupLoadingScreen(LoadingScreen);

The problem is when the player moves the mouse cursor when I call this function the game crashes with this error message:

  MachineId:F82BA73F4EEC3885FD9CAF9E8A71579B
  EpicAccountId:f4fb4ddfa3e041a59a18e5aac2e242fd
  
  Unknown exception - code 00000001 (first/second chance not available)
  
  Assertion failed: !GIsRoutingPostLoad [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.6\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp] [Line: 799] 
  Cannot call UnrealScript (Test_C //Engine//Transient.GameEngine_0:GameInst
  
  KERNELBASE + 24684 bytes
  MyProject!FOutputDeviceWindowsError::Serialize() + 261 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
  MyProject!FOutputDevice::Logf__VA() + 248 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
  MyProject!FDebug::AssertFailed() + 1221 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\core\private\misc\outputdevice.cpp:224]
  MyProject!UObject::ProcessEvent() + 343 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:799]
  MyProject!UUserWidget::OnMouseMove() + 255 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\intermediate\build\win64\inc\umg\umg.generated.cpp:868]
  MyProject!SObjectWidget::OnMouseMove() + 103 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\umg\private\slate\sobjectwidget.cpp:175]
  MyProject!<lambda_988307d939d72f95a562170c60c3814f>::operator()() + 568 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4230]
  MyProject!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_988307d939d72f95a562170c60c3814f> >() + 464 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:208]
  MyProject!FSlateApplication::ProcessMouseMoveEvent() + 4300 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4236]
  MyProject!FSlateApplication::SynthesizeMouseMove() + 265 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:2921]
  MyProject!FSlateApplication::Tick() + 1937 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1219]
  MyProject!FSlateLoadingSynchronizationMechanism::SlateThreadRunMainLoop() + 300 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\movieplayer\private\movieplayerthreading.cpp:132]
  MyProject!FSlateLoadingThreadTask::Run() + 64 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\movieplayer\private\movieplayerthreading.cpp:163]
  MyProject!FRunnableThreadWin::Run() + 86 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:73]
  MyProject!FRunnableThreadWin::GuardedRun() + 93 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:26]
  kernel32 + 5805 bytes
  ntdll + 345097 bytes

The test screen that comes with UE4 works fine. Also I had the same error as above except with onMouseEnter. I fixed that by implementing onMouseEnter in my UMG widget. Unfortunately this did not work for onMouseMove. Btw. I am using the launcher preview.

Greetings,

Leo

Product Version: Not Selected
Tags:
more ▼

asked Dec 01 '14 at 07:52 PM in Bug Reports

avatar image

DJ_Lectr0
110 15 18 27

avatar image Tim C ♦♦ STAFF Dec 08 '14 at 03:33 PM

Hi Leo,

I just wanted to check and see if you are still experiencing this issue in the released version 4.6. If you are, could you provide a little more detail about how you are setting this up so I can try to replicate it?

Tim

avatar image DJ_Lectr0 Dec 08 '14 at 04:57 PM

Yes I still have this issue. This is my loading screen widget: alt text

This is how I call the code above: alt text

avatar image Tim C ♦♦ STAFF Dec 10 '14 at 11:22 PM

Sorry for the delay. I am guessing that the Show Loading Screen node you have above contains the code you have shown. Is that the only code that node runs? Would you be able to show how you declared the function in your header file?

avatar image DJ_Lectr0 Dec 11 '14 at 01:17 PM

Yes that node is the code above and it is the only one run. Once I get home I will post the definition.

avatar image DJ_Lectr0 Dec 11 '14 at 06:02 PM

Ok this is how I declared that function:

 UFUNCTION(BlueprintCallable, Category = LoadingScreen)
 static void ShowLoadingScreen(UUserWidget* LoadingScreenWidget);
avatar image Tim C ♦♦ STAFF Dec 19 '14 at 04:03 PM

Sorry for not getting back to you sooner. I have been having trouble getting the loading screen to work at all, let alone crash. Let me show you what I have for my set up, and hopefully you can point out what I am missing that will let me figure out what is causing the issue you are experiencing.

My loading screen widget: Widget

My Level Blueprint: Blueprint

The code I am using is what you provided above, placed into a public UFUNCTION that I added to my character class. The only additional change I made to the code class was including the MoviePlayer class. What class are you placing your UFUNCTION in?

widget.png (33.2 kB)
blueprint.png (87.7 kB)
avatar image DJ_Lectr0 Dec 19 '14 at 04:58 PM

A Blueprint function library. At the moment I do not see why it would not work. (Maybe because it is in the character?) Are you running it in standalone or launch?

avatar image Tim C ♦♦ STAFF Dec 19 '14 at 09:31 PM

I created a new BlueprintFunctionLibrary class and moved the ShowLoadingScreen function into that class, and I am seeing the same results I was seeing before... The level changes but no widget appears while the new level is loading.

 UCLASS()
 class TESTLOADINGSCREEN_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
 {
     GENERATED_BODY()
     
 public:
     UFUNCTION(BlueprintCallable, Category = LoadingScreen)
     static void ShowLoadingScreen(UUserWidget* LoadingScreenWidget);
     
 };

Did you do anything special when creating your BlueprintFunctionLibrary class?

avatar image DJ_Lectr0 Dec 19 '14 at 09:36 PM

No, are you running it in standalone or launch. Because it only works there.

avatar image Tim C ♦♦ STAFF Dec 19 '14 at 10:11 PM

Sorry, I completely missed that question. I just tried again in Standalone, and I saw a crash happen when changing the level (I still did not see the widget appear, though). I think the crash that I saw is actually slightly different from the one you were seeing, but I think I am getting closer. I'll jump back into this issue first thing Monday.

avatar image DJ_Lectr0 Dec 20 '14 at 10:54 AM

You probably have the on mouse enter crash. For this go away you have to add the on mouse enter event in your umg widget blueprint event graph.

avatar image Tim C ♦♦ STAFF Dec 22 '14 at 06:53 PM

I have been able to confirm that there are actually two nearly identical crashes happening in this instance. When I tried to reproduce them in our latest internal build, I was not able to see any crashes, but I am also not convinced the loading screen is working correctly there either (I was using the same code, UMG widget, and Blueprint as I was using in 4.6 and no loading screen appeared when changing levels).

I will check with some developers to see if some functionality has changed, but unfortunately that will need to wait until they get back from the holiday break in a couple weeks.

avatar image lion032 Jan 17 '15 at 01:42 PM

I have the same problem. I was able to isolate the issue though, the problem is that the UMG widget is trying to execute some blueprint graph during loading of the level something that is OK till the point where the main thread starts to post load objects. The reason for why it's not an issue with the default loading widget is that there isn't a blueprint attached to it.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Hi DJ_Lectr0 and lion032,

I apologize for the delay in getting back to you on this issue. There was some discussion on this topic among some of the developers and it comes down to this behavior not being currently supported by the Engine. This is primarily due to the fact that trying to accomplish this goal can result in some potentially very unsafe behavior within the Engine. The GIsRoutingPostLoad assertion mentioned in the callstack of the original post is intended to provide some protection in this area.

There is some support for finding a safe way to provide this capability in the Engine, but it is not likely to be available soon.

Tim

more ▼

answered Jan 29 '15 at 05:19 PM

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question