void FAnimNode_RotationOffsetBlendSpace::Evaluate(FPoseContext& Context) { // Evaluate base pose BasePose.Evaluate(Context); // Evaluate MeshSpaceRotation additive blendspace FPoseContext MeshSpaceRotationAdditivePoseContext(Context); FAnimNode_BlendSpacePlayer::Evaluate(MeshSpaceRotationAdditivePoseContext); // Accumulate poses together FAnimationRuntime::AccumulateMeshSpaceRotationAdditiveToLocalPose(Context.Pose, MeshSpaceRotationAdditivePoseContext.Pose, Context.Curve, MeshSpaceRotationAdditivePoseContext.Curve, 1.f); // Resulting rotations are not normalized, so normalize here. Context.Pose.NormalizeRotations(); }
void FAnimNode_AimOffsetLookAt::Evaluate(FPoseContext& Context) { // Evaluate base pose BasePose.Evaluate(Context); if (bIsLODEnabled && FAnimWeight::IsRelevant(Alpha) && (CVarAimOffsetLookAtEnable.GetValueOnAnyThread() == 1)) { UpdateFromLookAtTarget(Context); // Evaluate MeshSpaceRotation additive blendspace FPoseContext MeshSpaceRotationAdditivePoseContext(Context); FAnimNode_BlendSpacePlayer::Evaluate(MeshSpaceRotationAdditivePoseContext); // Accumulate poses together FAnimationRuntime::AccumulateMeshSpaceRotationAdditiveToLocalPose(Context.Pose, MeshSpaceRotationAdditivePoseContext.Pose, Context.Curve, MeshSpaceRotationAdditivePoseContext.Curve, Alpha); // Resulting rotations are not normalized, so normalize here. Context.Pose.NormalizeRotations(); } }