void FAnimNode_ConvertComponentToLocalSpace::Evaluate(FPoseContext & Output)
{
	// Evaluate the child and convert
	FComponentSpacePoseContext InputCSPose(Output.AnimInstance);
	ComponentPose.EvaluateComponentSpace(InputCSPose);

	checkSlow( InputCSPose.Pose.IsValid() );
	InputCSPose.Pose.ConvertToLocalPoses(Output.Pose);
}
void FAnimNode_BlendFaceFXAnimation::Evaluate(FPoseContext& Output)
{
	//convert on the fly to component space and back - This should not happen as the node uses CS. 
	//Yet it happened on invalid VIMs. When this happens the blend node needs to be relinked and the VIM needs to be recompiled and saved
	FComponentSpacePoseContext InputCSPose(Output.AnimInstance);
	EvaluateComponentSpace(InputCSPose);
	InputCSPose.Pose.ConvertToLocalPoses(Output.Pose);

#if !UE_BUILD_SHIPPING
	if(!bIsDebugLocalSpaceBlendShown)
	{
		//show warning only once per node to prevent excessive log spam
		UE_LOG(LogFaceFX, Warning, TEXT("FAnimNode_BlendFacialAnimation::Evaluate. The blend node is using local space input. Please check, relink the blend node and resave VIM. %s. Also contact a FaceFX programmer."), *GetNameSafe(Output.AnimInstance));
		bIsDebugLocalSpaceBlendShown = true;
	}
#endif
}