Steps to recreate this crash in an empty third-person-template:
-
Create an Animation Blueprint and put one Animation in it, but nothing else.
-
Create an Actor Blueprint, put two Default-Character-Skeletal-meshes in the viewport, and assign the created Animation-Blueprint to both Characters.
-
Put the Actor in the Map. It’s one Actor with two Characters, who have both the same Animation Blueprint.
-
If you play now it will crash. It will take a while and it is random, I think it’s faster when you put the acotr multiple times in the map. It crashed everytime I tried it after running around in the map. It also crashed a lot of times in the editor without playing, when the animations play in the actor-preview. Before it crashes it should trigger a breakpoint as a warning, when you run it with Visual Studio. It looks like this:
The text that shows up with the breakpoint-warning is:
`if (!Pose.IsNormalized())
{
// Show bone transform with some useful debug info
const auto& Bones = Pose.GetBones();
for (int32 CPIndex = 0; CPIndex < Bones.Num(); ++CPIndex)
{
const FTransform& Bone = Bones[CPIndex];
if (!Bone.IsRotationNormalized())
{
const FBoneContainer& BoneContainer = Pose.GetBoneContainer();
const FReferenceSkeleton& RefSkel = BoneContainer.GetReferenceSkeleton();
const FMeshPoseBoneIndex MeshBoneIndex = BoneContainer.MakeMeshPoseIndex(FCompactPoseBoneIndex(CPIndex));
ensureMsgf(Bone.IsRotationNormalized(), TEXT("Bone (%s) Rotation not normalized from AnimInstance:[%s] Node:[%s] Rotation:[%s]"),
*RefSkel.GetBoneName(MeshBoneIndex.GetInt()).ToString(),
*AnimInstanceProxy->GetAnimInstanceName(), LinkedNode ? *LinkedNode->StaticStruct()->GetName() : TEXT("NULL"),
*Bone.GetRotation().ToString());
}
}
}`
After the breakpoint, when you continue playing, it will crash, and close the editor.
It says: “Error at 0x00007FFF574CE8CE (UnrealEditor-Engine.dll) in UnrealEditor.exe: 0xC0000005:”, and it can’t read the memory at position 0xFFFFFFFFFFFFFFFF.
In the Scriptstack from the logfile, it says the rotation is not normalized, exactly what the warning of the breakpoint was.
Script Stack (0 frames) :
[2023.04.26-21.41.18:308][162]LogOutputDevice: Error: Ensure condition failed: Bone.IsRotationNormalized() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimNodeBase.cpp] [Line: 54]
Bone (pelvis) Rotation not normalized from AnimInstance:[ABP_Quinn_C /Game/ThirdPerson/Maps/UEDPIE_0_ThirdPersonMap.ThirdPersonMap:PersistentLevel.BP_ThirdPersonCharacter_C_0.CharacterMesh0.ABP_Quinn_C_0] Node:[AnimNode_Base] Rotation:[X=0.267054109 Y=-0.662099059 Z=0.000000000 W=0.679978008]
[2023.04.26-21.43.00:565][162]LogStats: FDebug::EnsureFailed - 0.006 s
I very often got the message ‘Outpose is not normalized’, the messages varied a bit, but it was always about not normalized bones.
Does anybody know if this is a bug?
I thought maybe there is a known workaround, or a better method of having two Animation Blueprints in one Actor. Child-Animation-Blueprints did not work as a fix.
If you want two characters to have a conversation, for example, it would be very helpful to have them in one Blueprint- actor that can trigger events when you come near the conservation, or do other logic.
It took me a while to recreate this bug. I changed characters, animations, and reimported them. I used 2 different pc’s, unrealengine 5.1, and also 5.2, and visual studio 2019, and also 2022. The trigger seems to be only the animation blueprints not working together. I also ran Unreal Engine as administrator and made sure no file is write-protected.
Semi-Fix:
There is a weird fix for this. You can open the task manager, right-click unreal editor, “go to details”, right-click again, set affinity. then you can set how much cpu-cores are assigned. If you uncheck exactly 4 it will not crash anymore. 3, 2 or 1 do not work. I always check 12 out of 16 cpu-cores, when I want to work with the project.
Information about my Setup:
Unreal Engine 5.1 (new install, verified)
Graphics-Card: Nvidia RTX 3060ti
Ram: 32 GB
Cpu: Intel i9-9900KF