Blueprint nativization fails

I was trying to see if BP nativization would give my Gear VR app a performance boost. I ticked that option in the project settings, ticked Full rebuild in packaging, deployed to Android ETC2 and when I loaded my UE4 app on the device (Galaxy S6 with Gear VR) the only thing I saw was a sky sphere. Nothing else was working.

If someone from Epic wants to have my project for testing, I can share it privately.

Thanks beforehand

Hello ,

Before grabbing a copy of your project, is it possible for you to reproduce this issue in a clean project? If not, feel free to send your project to me in a private message and I will take a closer look. Please be sure to provide a list of steps along with either answer so that I can reproduce this issue on our end.

This a bit ridiculous. This week is a holiday week. I am afk and you replied to me only 3 days ago. To be fair, some of the bug reports here remain unanswered for years.

I also provided you with my project for another bug report (capsule trace issue), and that’s the same project that fails nativization. It could have been already confirmed without my participation :confused:

Please unmark this as resolved and I’ll test the issue in the clean project next week (and by clean I mean migrating BPs into FPS Template; it still doesn’t make any sense to me why test on a clean project when I migrate BPs anyway).

So, for clean project I don’t need to recreate my BPs from scratch? Should I simply try nativizing FPS Template as is ? I assume in that case nativization would work because that’s what has been tested at Epic internally.

Hello ,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will follow up.

Thanks,

The last response was for tracking purposes and to inform others who may come across this issue that the latest status for this issue is that we are still seeking additional information.

I was not aware that it was the same project or that the version of the project that we currently have would exhibit the issue mentioned.

As for being asked to reproduce an issue in a clean project, this is supposed to be without any previous content when possible. If it is not possible, then it serves the purpose of helping eliminate any extraneous variables that don’t have anything to do with the issue. I hope that this information helps.

Tried nativization with FPS Template - seems to be working fine (to be fair, there is not whole a lot of BP script in FPS Template, not even basic level BP).

Basically I created a new project using FPS Template, set up Project Settings exact same way as my project (the one I sent you for capsule trace issue) and deployed it without and with nativization option on.

Worth mentioning that I have level BPs and streaming levels in my project (not the clean test project). However, besides levels not streaming, basic stuff such as back button on Gear VR isn’t working either when deployed with nativization option in my project.

I ran a few tests with the project provided. Could you run a quick test? Could you unhook the construction script in the blueprint “BP_Door_base” and try to package again and let me know if you are successful?

Alright, totally weird stuff happened - I wanted to build again with nativization on, just to make sure I am not missing anything. I could not build it - was getting Unknown Error: http://pastebin.com/sDH5jf4b

After I unhooked Construction script, I was able to build with nativization and the game worked on Gear VR.

Thank you for running that test. I was able to narrow down the cause of the failure. I have written up a report and I have submitted it to the developers for further consideration. I have also provided a link to the public tracker. Please feel free to use the link provided for future updates. Thank you for your time and information.

Link: Unreal Engine Issues and Bug Tracker (UE-40237)

Additional info: If you check your output log you will see an error similar to the one provided below. This is caused by setting a variable to itself in the construction script

Example:

120942-nativizeblueprintserrorandroid.png

Error: UATHelper: Packaging (Android (All)): UnrealBuildTool: C:/Users/YourUserName/Documents/Unreal Projects/YourProjectName/Intermediate/Android/NativizedAssets/Source/NativizedAssets/Private/NativeError__pf3688439234.cpp(237,20) : error: assigning field to itself [-Werror,-Wself-assign-field]

Make it a great day

Just noticed that issue has affected version set to 4.14.1, but it also affects 4.14.2 (if that even matters at this point). Just fyi.

Could you please clarify why is this marked as “Won’t fix” ?

The value isn’t hardcoded. This system is designed to be modular - drop BP actor into the scene, adjust parameters in the Details panel and you have a different door. This way level designer doesn’t have to touch BP at all.

Is there a workaround? (like having an intermediate var first using var from the Detail panel and then set that var using intermediate var)

It appears that this is a restriction when compiling for Android. However, this setup could be changed to have a hard coded default value seeing as how this takes place in the construction script.

There is not a reason to set the variables to themselves in the construction script (out side of setting a default value). I have provided an example below of how you can modify a blueprint through the details panel without having to set a variable to itself. I hope that this information helps.

Example:

Here I have created a variable name “Scale” I will be using this to dynamically change the scale of a cube by altering this variable via the details panel.

121617-constructionscriptmodularexample1.png

Here I have set the variable to be editable. This will allow me access to the variable in the details panel. I have also given it a default value of (1,1,1).

In this image I have highlighted my new “Scale” variable as it appears in the details panel. It is currently set to a scale of (1,1,1) as indicated by the default value that I have set.

In my final step I simply type 2 into the Z value and hit enter. This immediately updates the scale of the cube.