UMG - 4.7 Non-Transient became Transient and produces serialization warnings.

Here is some more info about the UMG serialization thing…

Unfortunatelly the field is not “editable” while it’s a checkbox.

These warnings are displayed also on “load” the project if you have the -log enabled, to “cleanup” from the project loading log when launch from VS I did:

A - Open the Widget where the troubling variable is.
B - Turn the “IS VARIABLE” checkbox OFF on the element details.
C - Compile to generate the Error and also find the older references.
D - Delete ALL references and do a Compile til it succeed.
E - Place references back and reconnect as needed.
F - Compile-Save.

Unfortunatelly the “trick” doesn’t pass the project packager as you see on the screenshot.

MORE INFO:

  • Such warnings are just produced when trying to use the Launch from Editor on methods (OnTheFly and ByTheBook).
  • On use the command “Cook Content for Windows” they didn’t appear.

Hello creasso,

I was unable to reproduce this issue with the information given. I have a few questions that will help narrow down what it is that you are experiencing.

Quick questions:

  1. Can you reproduce this in a clean project?
  2. If so, could you provide a detailed list of steps to reproduce this issue on our end?
  3. What is that you are trying to achieve exactly?
  4. Could you provide screen shots of the blueprints being used?

1 - Yes, I could reproduce, looks like it’s something related to Image Variables on “nested” widgets pre 4.6 and after updating the project to 4.7 and further, “BUT” I did all to reproduce exactly the same conditions.

Sort of long… :frowning:

  • 1 - Create a Blank C++ project on 4.6.1.
  • 2 - Add an UserWidget class.
  • 3 - Don’t forget to add the “#include “Runtime/UMG/Public/UMG.h”” on your project h file and also add the UMG and Slate required modules on your Target.cs file.
  • 4 - Add a custom HUD class to the project:
    .h
    #pragma once
    #include “UMG.h”
    #include “SeriTestOverlay.h”
    #include “GameFramework/HUD.h”
    #include “SeriTest_CPLUSHUD.generated.h”
    UCLASS()
    class UMGSERITEST_API ASeriTest_CPLUSHUD : public AHUD
    {
    GENERATED_UCLASS_BODY()
    public:
    /** HUD UMG widget class. */
    UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = “UI Elements”)
    USeriTestOverlay * Overlaypointer; // An accessible pointer to the custom widget.
    };

.cpp
#include “UMGSeritest.h”
#include “SeriTest_CPLUSHUD.h”
ASeriTest_CPLUSHUD::ASeriTest_CPLUSHUD(const class FObjectInitializer& PCIP)
: Super(PCIP){ }

  • 5 - Compile, start the editor.
  • 6 - Add a Gamemode that will allow you to change the HUD class to a BP.
  • 7 - Create a HUD Class to our Gamemode, and child it to our C++ Class.
  • 8 - Create a WidgetBlueprint and child it to our C++ Overlay Class.

  • 9 - Create a material with an image and an Alpha scalar parameter.

  • 10 - Get a MIT from it.
  • 11 - Create another WidgetBlueprint, and simply place an inner canvas and “finnaly” one Image Widget filled with the MIT created on the step 10 and mark the Image as variable (it will throw the warning).

Continue…

  • 12 - It needs be variable because we could be interested on access the material assigned to it, so ONConstruct from this widget get a DynamicMaterial and promote to variable…

  • 13 - Use this widget that contains the image as an element from another Widget - Let’s say an “MAINUI” widget.
  • 14 - Now on the HUD BP, On booting the HUD we override the pointer with a new created widget from the Inherited OVERLAY BP (because we need access to the RootCanvas just existant on the BP version).

  • 15 - The Hud also should contain a variable to our “MAINUI” Widget, meaning the one where we’ve placed our UserCreatedWidget (the one with the image) inside it.
  • 16 - Now the Hud needs a command that adds the “MAINUI” as child from our HUD’s Overlay pointer:

  • 17 - To activate the “adding” wire the Hud method described above on the LevelBp to some key…

Phew…

Now just clone this, upgrade to 4.7, rebuild and try Launch, the warning should appear.

I still have this project if you need.

Here is the hierarchy…

I hope this helps you to track the issue to prevent it on future upgrades. :wink:

Hello creasso,

Would it be possible for you to send me the clean project that you were using in the example given above?

I did this one exactly to send if needed, is there some way I could “toss” some folders to reduce project size? It’s a 1GB rar now with all the stuff :frowning: LOL

Hello creasso,

You can zip it down and send it to me through a private message on the forums (if you would like your project to stay private) or you can add a link in your next post via dropbox or google drive. I hope this helps.

An 1 day upload, hope it gone non-corrupted. LOL
Check your forum PMs.

cheers

Hello creasso,

I was able to reproduce the issue with the project that you provided. I have written up a report ( UE-11870) and I have submitted it to the developers for further consideration. I will provide updates with any pertinent information as it becomes available. Thank you for your time and information.

Make it a great day.