4.11p2 BUG crash after changing animClass and compiling

First,when I migrate my project from 4.10.2 to 4.11p2,almost all my character won’t play animation when I hit PIE.After opening the character bp,I find that all the animbp has been cleared out like the screenshot below.In one of my character bp, if I click on the animClass dropdown menu and select the corresponding animationBP,the charater plays default animation with no issue in the preview viewport,but after I click on the compile button,the editor will crash immediately.Thanks!

And here’s the crash log:

MachineId:
EpicAccountId:

Fatal error: [File:D:\BuildFarm\buildmachine_++UE4+Release-4.11\Engine\Source\Runtime\Engine\Private\BlueprintGeneratedClass.cpp] [Line: 131]
UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class ‘/Engine/Transient.TRASHCLASS_BP_MicroDragon_320’

75688-1.png

EDIT:I found that after opening the project,here’s a warning log concerning the issue:

LogProperty:Warning: Serialized Class /Script/CoreUObject.LinkerPlaceholderClass for a property of Class /Script/Engine.AnimBlueprintGeneratedClass. Reference will be NULLed.
Property = ClassProperty /Script/Engine.SkeletalMeshComponent:AnimBlueprintGeneratedClass
Item = LinkerPlaceholderClass /Game/Blueprints/Characters/BP_MicroDragon.PLACEHOLDER-CLASS__AnimBP_Dragon_C_81

What is in the “GetAuthoritativeClass” subclass someone else will have to help you from there.

Actually I don’t know what GetAuthoritativeClass means…

Try looking for the file "D:\BuildFarm\buildmachine_++UE4+Release-4.11\Engine\Source\Runtime\Engine\Private" in explorer. Open something that says “BlueprintGeneratedClass.cpp” then search for anything that says “GetAuthoritativeClass” and let me know what lines that is on.

Thanks!Here’s what I have found in that cpp:

UClass* UBlueprintGeneratedClass::GetAuthoritativeClass()
{
if (nullptr == ClassGeneratedBy) // to track UE-11597 and UE-11595
{
UE_LOG(LogBlueprint, Fatal, TEXT(“UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class ‘%s’”), *GetPathName());
}

UBlueprint* GeneratingBP = CastChecked<UBlueprint>(ClassGeneratedBy);

check(GeneratingBP);

return (GeneratingBP->GeneratedClass != NULL) ? GeneratingBP->GeneratedClass : this;

}

Hi ,

We ran some tests upgrading a project from 4.10.2 to 4.11 Preview 4 (both creating a new copy as well as converting the project in place), and unfortunately did not see the results that you described. I have a few additional questions for you.

  • Would you be able to provide more information about how you are upgrading the project?
  • Are you using custom animations?
  • Do you still have the original 4.10 project? If so, would it be possible to see that?
  • If you still have the 4.10 Engine installed, would you be able to create a new test project in that version and then upgrade the project and see if the same results are seen?

Thanks!

1.I just click the create a new copy to upgrade the project

2.All my animations are imported from FBX,and I create some animmontage, animcomposite and blendspace.

3.In 4.10.2,there are no errors about this.

4.I have tried that,if I create a new test project and just upgrade it to 4.11,there will be no issues about animationBP.Also,if I migrate the error asset to the clean 4.10.2 test project and then upgrade(create a copy) that to 4.11p4,If click compile,the engine still crashes immediately…

Would it be possible to take a look at the asset that seems to be causing the problem? If you could send us the FBX and any instructions necessary to set it up correctly, that would be great. If you would like to provide the asset privately, you can [send me a PM][1] on the .

Sadly,the issued asset referenced to a lot of asset,and all my asset could take up to 1g or more,and my upload speed is too slow…
PS.I also experienced the same crash in 4.11preview5…

Hi ,

is looking at the code side of things, I’ll be examining the animations asset side of things. Please provide the following information to help us troubleshoot the issue:

  1. You say you are importing animations from FBX files; what is the source these FBX files are generated from? Are they custom animations? If so, were they created in Maya, 3DSMax, Blender, etc.
  2. Were these animations purchased from a third party, like Mixamo?
  3. When you created a new Test Project, was it Blueprints or C++?
  4. In your test Project, did you test the same Character BP, Animation BP, and the Animation Asset in question? (As opposed to testing using UE4 default assets.)
  5. If you have not done so, please repro using Step 4 above and provide us this file if you can reproduce the crash.
  6. Is this a custom character with a custom skeleton?

-.

Thanks very much!

1&2.Currently the issued file I’m using is the micro dragon asset from micro monsters and heroes pack in the marketplace,it doesn’t say where it is made from.

3.I only create blueprints projects

4.Since that I have a lot of animation specific blueprints, I only can test this condition:I change the animbp in my issued blueprint asset to the engine’s default 3rd person animbp and change the mesh to the corresponding one,and when I hit the compile,the editor crashes again.(I apologize that I cannot just create a new empty project and move all my issued blueprint’s code to that,since the blueprint has a lot of reference,it maybe a enormous work…)

PS.The issued asset is the parent character blueprint,it has a lot of child blueprint,however,none of the child blueprint causes a crash.So I think the crash may have something to do with the parent blueprint code.

6.This is directly from the asset in the marketplace,and I don’t change the skeleton.

That narrows things down quite a bit. However, I don’t quite understand your test… Please describe these in easy to follow, step by step instructions and I’ll try to repro here;

For example:

  1. Open Third Person AnimBP
  2. Select Mesh
  3. In Details Panel, change mesh to micro dragon…
  4. etc.

-Thanks!

Thanks!Here’s the step:

1.Open BP_MicroDragon that I created

2.Select mesh

3.In Details Panel,change mesh to engine’s default third person mesh

4.Change AnimBP to engine’s default AnimBP

5.Hit compile,then crash appears

If I change the mesh and the animbp to other meshes and animbp,the editor crashes either.

Hey ,

Here are the steps that I took in an attempt to reproduce the editor crash you’ve been experiencing:

  1. Create New Project in 4.10 (with Third Person Blueprint template to have access to “SK_Mannequin” mesh and “ThirdPerson_AnimBP”) and name it MicroAnimTest
  2. On the Micro Monster & Heroes Pack page within the launcher, click Add to Project, select MicroAnimTest as project to add to
  3. Save and close MicroAnimTest
  4. Create a New Project in 4.11 Preview 5
  5. In the New Project screen, select MicroAnimTest in the Projects tab and click open
  6. In the pop-up window, select Open a copy
    a. If it gives a “plugin missing” error, this is irrelevant and inconsequential, click OK, and then Yes
  7. Open the “BP_Dragon” blueprint
  8. Within the Class Defaults tab, click the Skeletal Mesh dropdown and change it from “Micro_Dragon” to “SK_Mannequin”
  9. Click the Anim Class dropdown and change it from “AnimBP_Dragon_C” to “ThirdPerson_AnimBP”
  10. Click Compile and Play in Editor

At no point did I crash or receive any warnings/errors.

If I understand your repro steps correctly, this is essentially what you have done, except for the fact that you are working in a bigger (non-test) project and have previously made changes to the Micro Dragon blueprint other than changing the mesh and animBP.

You mentioned having parent and child blueprints. Is it Animation blueprints that are inheriting from a parent Animation Blueprint? Or is it just regular blueprints inheriting from a parent blueprint? Regarding the logs, I believe TRASHCLASS and “ClassGeneratedBy is null” are the key points to raise eyebrows. These generally indicate that the child has a missing reference to a parent. I would suggest re-creating the parent blueprint (or animation blueprint) from the ground up and as you make changes to the parent and/or child, test for compiler crashes.

I know you said you have a slow upload speed, but it’s hard to picture exactly what’s going on without having the project in front of me. You’re welcome to PM me with a link to your project if you’d like me to take a closer look.

Hope this helps!

-Jake C.

Thanks for your advice.

I tried another method yesterday,in 4.10 I changed the BP_MicroDragon to BP_Enemy_Parent and create a child blueprint as BP_MicroDragon based on the BP_Enemy_Parent.And then in 4.11,I force delete all the original child blueprints,and recreated them based on the BP_Enemy_Parent and added part of my code.Luckly,the crash didn’t occur.So,when the release come,I will have to recreate all my enemy character child BP again.It maybe a enormous work…

However,I have found some other weird BUGs:

1.the custom animnotify(to play custom sound) I create in 4.10 never works

2.if I have a “play particle notify” in a animation sequence,and create an animmontage based on this animation.When in game,I use a montage play node will not trgger the play particle notify,but if I change the "play particle notify"to somewhere in the animmontage,it shows in game

3.some UMG animation plays strangely unless I open the UMG blueprint and play the animation manually and compile it

4.When PIE,I received an yellow warning which never shows in 4.10 or before:

Script call stack:
Function /Game/UI/MiniMap/MiniMap.MiniMap_C:Tick
Function /Game/UI/MiniMap/MiniMap.MiniMap_C:ExecuteUbergraph_MiniMap
Function /Game/UI/MiniMap/MiniMap.MiniMap_C:UpdateImageLocation
Function /Game/UI/MiniMap/MiniMap.MiniMap_C:MoveMask

What does it mean?

5.Everytime I PIE,I have to wait for about 5s or more to actually begin play,I know the engine is compiling the BP that period of time,but I don’t have to wait in 4.10 or before.Also,everytme after PIE,it seems that some of my files are modified so there is a star sign.That means,if I close the editor after PIE,there will be a warning window poped up,asking me to save the modified asset(the truth is that I didn’t modify them)

PS:
One 4.11 feature which impresses me a lot is one of the Mobile Rendering Updates:
Support for hardware instancing on iOS and many Android devices, reducing draw calls for Foliage and InstancedStaticMeshComponents.

However,I have a level which have a large numbers of foliage such as grass,flowers,trees etc.When I package it in 4.10.3,the game runs at an average of 25-30 fps on my iphone6 plus.When I package it in 4.11p5,the result is almost the same,I don’t see any framerate improvement on instancing actually.So ,am I missing some specific settings?

Thanks again!

Hey ,

Glad to hear you got the Parent/Child crash issue resolved! Sounds like maybe the original parent BP_Microdragon you were using contained references to missing or corrupt assets.

In regards to your new issues:

  1. What seems to not be working about your AnimNotify? Is the sound not playing? Are you just not able to see your custom AnimNotify in the Notify Track of your animation? Please elaborate the issue and provide repro steps. Also, ensure that when you’re using a custom AnimNotify, you are overriding the Received_Notify function like so:

http://i.imgur.com/C6Sxnhc.jpg

  1. I inserted a Play Particle Effect notify in an animation sequence, added that sequence to a new AnimMontage, created a new BP with a Play Anim Montage Node in it. When I played in editor, the AnimMontage fired the play particle effect when it was supposed to. Is this not what you experienced? Please elaborate the issue and provide repro steps.
  2. Compiling after making changes is always necessary, so what seems to be the actual issue? Please elaborate the issue and provide repro steps.
  3. While the warning message seems vague, it’s telling us that something funky is going on in the call stack. To further investigate the call stacks that it’s pointing to (apparently ExecuteUbergraph_MiniMap, UpdateImageLocation, and MoveMask), click on Window in the Toolbar, then Developer Tools, then Blueprint Debugger. This will let you interactively view the full call stack for all Blueprint executions in your project.
  4. Take a look [here][2] and [here][3] for some possible solutions to slow compiling times.

Also, I believe the Mobile Rendering Update is in regards to blueprints that utilize the InstancedStaticMeshComponent. If I understand you correctly, your project just has regular foliage (most likely applied with a foliage brush that paints instances of Static Meshes on the landscape). Check this out for more info about the differences out between regular Static Meshes and blueprints with the InstancedStaticMeshComponent in them.

-Jake C.