Crash with two Animation Blueprints in one Actor ('Outpose is not normalized').

Steps to recreate this crash in an empty third-person-template:

  1. Create an Animation Blueprint and put one Animation in it, but nothing else.

  2. Create an Actor Blueprint, put two Default-Character-Skeletal-meshes in the viewport, and assign the created Animation-Blueprint to both Characters.

  3. Put the Actor in the Map. It’s one Actor with two Characters, who have both the same Animation Blueprint.

  4. 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

1 Like

I cannot edit the post, It says im only allowed to post one embedded media.

I wanted to add, that when it crashes, and it was started from the epic-games-launcher, the message is:
“Assertion failed: OutPose.IsNormalized() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimSequence.cpp] [Line: 1477]”

Sometimes this message does not show up at all, it simply closes then. But when you started from Visual studio, it should always trigger the breakpoint-warning, I posted above.

I also tested changing the skeletal meshes. Even when every character, including the player, has an unique skeletal mesh, it does not change anything.

I have same problem.
Get same error. In UE5.5

	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());
				}
			}
		}
	}
#endif
}

Then i jump, then vs show this line ensureMsgf(Bone.IsRotationNormalized(), TEXT(“Bone (%s) Rotation not normalized from AnimInstance:[%s] Node:[%s] Rotation:[%s]”),

Then I remove physic body simulation, then UE show this line after I run game (not need jumping).
Probarly animation bluprint and sceletal is not much each other so this error is. But if I press in VS continue, then all works fine and no more VS show this errors. nly after UE restart it showing this error…

Hi, do you maybe have a similar Cpu, or an older one? (Intel i9-9900KF)
Maybe your problem is completely different from mine, but I solved the issue by turning off Cpu-cores. After I had always the same crash in the same situation, I then also had crashes in other situations, always when the Cpu is doing work. It also happened in Blender while calculating complex cloth-simulation, so I think it was a Cpu-problem for me, but maybe I am also missing some options for better compatibility.

You can try turning off Cpu-cores for UE, just to test if it fixes the crash.

In task manager you can go to the UE-process that already started, then with right click you can choose “go to details”, and in the details window, when you right-click the same process, you can “set affinity”. There you can choose how much cpu-cores the process is using. I turned off 4 out of 16, and then I didn’t had crashes anymore. I made it so, that it is a permanent setting for my computer, so I only use 12 out of 16 Cpu-cores all the time automatically. It’s the only working solution I found about it.

So you’re trying to apply all the bones on another mesh.
You might want to create a kill cam or something. But you could use some traditional methods.

  1. Parent-Child meshes with same blueprint on both works correct.
  2. Via animation retargeting, you can use different skeletons with one single animation blueprint to calculate.
    Your method isn’t part of good practice. UE5 can do that but you’ll head to your own rain of errors.

Maybe better solution for you is lower cpu frenquency in UEFI and set fixed voltage…