No success Nativizing four BP's

Hello ,

As the messages mention ASyncLoading, this could be caused by EDL (Event Driven Loader). Can you try disabling that setting in your Project Settings and see if you still encounter the same issue?

Hi Matthew,

great that seems to have worked I can now Nativize and run the resulting game without crashes for four out of the five BP’s! Nice Thank You very much!!
(Btw do I miss out on anything important not having EDL ticked?)

But I still get the same cook-crash and error message as in the OP when including my Avatar_Pawn BP.

LogInit:Display: LogOutputDevice:Error: Ensure condition failed: FunctionReference.IsSelfContext() || (MemberClass != nullptr) || bIsLocalMacro [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Editor\BlueprintGraph\Private\K2Node_CallFunction.cpp] [Line: 1701]
 LogInit:Display: LogOutputDevice:Error: Unknown member class in /Temp/__TEMP_BP__/Game/Avatar/Avatar_Pawn.Avatar_Pawn:EventGraph.K2Node_CallFunction_12161

Would you have any ideas for that one too?
Cheers,

I’m also getting the error, I can package just fine if I disable nativization.

 Ensure condition failed: FunctionReference.IsSelfContext() || (MemberClass != nullptr) || bIsLocalMacro

Hello,

I’m trying to Nativize a handful of my slowest Blueprints but am having no luck. It goes through when I try with just the one single BP but when I add the other three or four it crashes the cook/package.

This is an error that seems suspicious to me but I can’t make out what in the pretty expansive blueprints it hints to,

LogInit:Display: LogOutputDevice:Error: Ensure condition failed: FunctionReference.IsSelfContext() || (MemberClass != nullptr) || bIsLocalMacro [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Editor\BlueprintGraph\Private\K2Node_CallFunction.cpp] [Line: 1701]
LogInit:Display: LogOutputDevice:Error: Unknown member class in /Temp/__TEMP_BP__/Game/Avatar/Avatar_Pawn.Avatar_Pawn:EventGraph.K2Node_CallFunction_12161
LogInit:Display: LogOutputDevice:Error: Stack: 
LogInit:Display: LogOutputDevice:Error: UE4Editor-Core.dll!0x000000006EDBE1C6
LogInit:Display: LogOutputDevice:Error: UE4Editor-Core.dll!0x000000006EB6B7D2
LogInit:Display: LogOutputDevice:Error: UE4Editor-Core.dll!0x000000006EB81D96
LogInit:Display: LogOutputDevice:Error: UE4Editor-BlueprintGraph.dll!0x000000006923ECC6
LogInit:Display: LogOutputDevice:Error: UE4Editor-BlueprintGraph.dll!0x0000000069259470
LogInit:Display: LogOutputDevice:Error: UE4Editor-CoreUObject.dll!0x000000006E723CA8
LogInit:Display: LogOutputDevice:Error: UE4Editor-CoreUObject.dll!0x000000006E722E26
LogInit:Display: LogOutputDevice:Error: UE4Editor-BlueprintNativeCodeGen.dll!0x000000006304A520
LogInit:Display: LogOutputDevice:Error: UE4Editor-BlueprintNativeCodeGen.dll!0x000000006304D9DB
LogInit:Display: LogOutputDevice:Error: UE4Editor-BlueprintNativeCodeGen.dll!0x000000006304B3D4
LogInit:Display: LogOutputDevice:Error: UE4Editor-UnrealEd.dll!0x000000006C6663D7
LogInit:Display: LogOutputDevice:Error: UE4Editor-UnrealEd.dll!0x000000006C6C941D
LogInit:Display: LogOutputDevice:Error: UE4Editor-UnrealEd.dll!0x000000006C576D72
LogInit:Display: LogOutputDevice:Error: UE4Editor-UnrealEd.dll!0x000000006C59BA21
LogInit:Display: LogOutputDevice:Error: UE4Editor-Cmd.exe!0x0000000027197B8F
LogInit:Display: LogOutputDevice:Error: UE4Editor-Cmd.exe!0x000000002718EEDA
LogInit:Display: LogOutputDevice:Error: UE4Editor-Cmd.exe!0x000000002718F12A
LogInit:Display: LogOutputDevice:Error: UE4Editor-Cmd.exe!0x00000000271A0CF9
LogInit:Display: LogOutputDevice:Error: UE4Editor-Cmd.exe!0x00000000271A1A1F
LogInit:Display: LogOutputDevice:Error: KERNEL32.DLL!0x00000000A8C213D2
LogInit:Display: LogOutputDevice:Error: ntdll.dll!0x00000000AB2B54E4
LogInit:Display: LogOutputDevice:Error: end: stack for UAT

Also when it does go through, with just one of my Blueprints tagged for Nativization, I get a crash when trrying to run the game.

193398-crash.png

Any ideas on how to make all this work as it would be fantastic if this could speed up the execution of these BP’s in my performance sensitive VR game.

Cheers

Let me know if you figure it out?
I’ll post back here as we’ll if I find out.

Similar issue here. Tried nativizing only a few blueprints.

[2017.10.29-21.15.12:576][  0]LogThreadingWindows: Error: Runnable thread FAsyncLoadingThread crashed.
[2017.10.29-21.15.12:576][  0]LogWindows: Error: === Critical error: ===
[2017.10.29-21.15.12:576][  0]LogWindows: Error: 
[2017.10.29-21.15.12:576][  0]LogWindows: Error: Fatal error: [File:D:\Build\++UE4+Release-4.17+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 2858] 
[2017.10.29-21.15.12:576][  0]LogWindows: Error: Missing import of (/Game/Assets/UI/Widgets/Spartan/Spartan): WidgetNames_30_B1D16C014E889E872DA71BAAC14F3BDA in Package /Game/Code/CustomHUD/ST_HUDLayout was not found, but the package exists.

Hello ,

Have you tried disabling EDL / Async loading as previously mentioned? Also, is your project a code project? If so, are you sure that you are building after cooking? With Nativization in place, you must ensure that your code is compiled afterwards so that the nativized code is also compiled.

Hey Matthew,

I didn’t catch the EDL part, only the Async loading, I thought they would be disabled/enabled together. My bad on that one. Yes, I’m building after cooking and there is C++ code in my project. Disabling EDL does indeed resolve the issue, is the conflict between nativized BPs and EDL being looked at though? Because it seems to be a big hit to have your load times double(as the 4.14 patch notes mentioned it decreases load times by 50%).

EDIT: Oh, I’m sorry I forgot to mention I’m using 4.17.2

Hey Matthew,

Could I ask you two questions?

  1. Are you implying BP Nativization won’t work with EDL on?

  2. Async-loading a blueprint nativized assets may causes a crash? Actually I’m getting the same error messages as the title image when async-loading some nativized assets.

Watch out as I am noticing a huge difference in game load-up time with EDL turned Off.
I hope its possible to make the nativization work without doing that as this is very bad for the user/player experience.

Its great that EDL was added as I am currently trying to get game loadup times down as even With EDL it takes about 18-20 seconds to load the game and an empty map.
That’s a ‘Development’ build. Seems very slow to me and there must be something I’m missing.
But with regarding to the Nativization fail here please see attatched the packaging output log. This time I got a fail straight in the packaging. (the game runs fine without nativization)
link text

BP Nativization will not work with EDL enabled natively in all cases, but that does not mean that it cannot work. As far as reduced load times when EDL is disabled goes, remember that EDL was added a few versions ago so while disabling it does increase load times, these are how they were previously.

While disabling EDL is not a final solution to the issue, it should serve as a workaround at the moment but one thing to keep in mind is that, outside of one issue we experienced back in 4.15, all issues that have been reported that are caused by using Blueprint Nativization, EDL, or ASync loading in tandem have been content related and an error with the way the project itself is set up, so this may not be a bug with the engine and may require some reworking of your project.

If you would like assistance with this kind of issue, it would be best to provide a full log file of the packaging process and of the session where the crash occurred. This may give some insight into exactly what is wrong.

Hello FredrumHHH, I apologize for the delay on this; If you’re still experiencing these issues, I would check to ensure that this you don’t have any blueprints that are referring to other blueprints that are not being nativized. The error message you’re getting is due to a reference issue where the nativized code is trying to refer to an instance of an actor in your level, which doesn’t exist at compile time.

I’m trying to have another stab at getting this to work now!
So are you saying that all the actor reference variables (of any kind) has to be either already assigned at compile time or have to be also nativized?
If they also have to be nativized then all the classes referred to in the referenced actors also have to be nativized. And so on. Which eventually would mean probably near all blueprint classes.

BTW, that can’t be true as some of the actor Blueprints compile/nativize and play ok even when their reference variables are unfilled at cook time.
So actually would you be able to clarify that, maybe with an example?

I would love to use this but I find it extremely hard to figure out where/what is breaking and fix it.

UPDATE: I just tried Inclusive mode and it also errors. I get a lot of these:
“fatal error C1083: Cannot open include file: ‘GSTypes.h’: No such file or directory”

which seems to be a GameSparks file. Not sure how to fix that.

New log attached
link text

Hmm GameSparks is a very common solution though that I imagine a lot of people use.
How about Oculus are you counting that as something that you officially support? As it is shipped by default with Unreal.
Because I get an error with that too as you can see in the log above,

UATHelper: Packaging (Windows (64-bit)):   D:\software_installs\UE4\Epic Games\UE_4.18\Engine\Plugins\Runtime\Oculus\OculusVR\Source\OculusHMD\Public\OculusBoundaryComponent.h(4): fatal error C1083: Cannot open include file: 'ActorComponent.h': No such file or directory

There must be a way to tell the nativization process to look for these files?

If those are the only errors you’re getting at this point, that’s not something I can assist with, as GameSparks is not something we officially support. Have you tried temporarily disabling GameSparks to see if you are able to successfully package without it?

When you say that there is no way to tell the nativization to look for other files, there does seem to be a way to guide it to find missing header files:

"Fixing Missing Headers
Many projects have an “aggregate” header: either [GameName]/[GameName].h, or [GameName]/Public/[GameName].h.

If you add the path of this header to FilesToIncludeInModuleHeader, under [BlueprintNativizationSettings] in DefaultEditor.ini, you can fix many issues related to missing headers."

This is from Blueprints Visual Scripting in Unreal Engine | Unreal Engine 5.2 Documentation

So I was thinking maybe there is a way to make it look for other files?

There is no way to tell the Nativization to look for additional files. This is also likely not related to nativization in any manner, as the files mentioned by this error are not nativized. It could be a symptom of the other issues or your implementation, as there’s no reason that Oculus should be compiled if you’re using a binary version of the editor, as that will fail in any case.

Even if GameSparks is a tool that many people use, that doesn’t mean that it is built for or meant to be used with blueprint nativization.

This would assume that the file that is having issues finding header files is a nativized file. OculusBoundaryComponent.h is a legitimate code file that is not part of nativization. You can try adding includes to the “aggregate” header after adding it to that location but this could possibly cause more issues than it fixes, due to double declaration.

Ok thanks I’ll continue trying!