When changing the character class that is used by my animblueprint and hotreloading the code firstly causes the changes to NOT show up, so I must restart the editor. At this point the editor is unable to save any changes to my animblueprint because it’s referenced by something named HOTRELOAD Character.
This has only happened with this asset type so far.
I’m trying to reproduce the bug you described and I’ll need a bit more information to help me test it. Just to make sure I understand what you’re doing you created a code class based on Character and then created a blueprint based on that class. The blueprint then had a skeletal mesh component added with a reference to your AnimBlueprint. After changing the code for the character class and restarting the editor, you were then unable to save the AnimBlueprint. If I missed anything please elaborate on the steps you took to produce the bug.
The problem occurs with C++ hotloading. I make a change in the cpp file of my character, → hotload the code. But the animblueprint does NOT recognize the changes made in the class yet so I must restart my editor, at this time I cannot save the asset because it’s being referenced by an internal object - the object is some internal hotreload character file that I cannot control.
I created a code class based on character and added a skeletal mesh component to it. Inside the editor I set the skeletal mesh to to the default FirstPersonSkeletalMesh and set the Anim Blueprint Generated Class to a custom AnimBlueprint. At this point I can change the code for my character class and hot reload however I’m not sure how you’re referencing information from the character inside the AnimBlueprint. Could you post a screenshot of how your AnimBluperint is setup and how it references your character?
I am using TryGetPawnOwner in the AnimBlueprint and calling several functions on it to pass them into variables of the AnimBlueprint. I believe that is the only reference I have to that class.
Screenshot of what broke after restart: (blue lines are no longer connected to the function calls, see “HOTLOAD” text in the subtext of those functions.
Thank you for the screenshot. I was able to reproduce the error you mentioned. It seems that the hot reload not only causes the AnimBlueprint to not save but also causes problems with the “Cast To” node as well. This has been bugged (UE-13070) for further investigation.
Hi , this is actually wider bug. It looks like hot reloading is changing the name of imported classes (prefixing with HOTRELOAD). If you already have a reference to an AActor or AActorCompoent somewhere in a BP, you’ll get this error because the BP will be referencing some like “MyActor”, but the reference will now be “HOTRELOADED MyActor”, hence the bug.