bPostEvaluatingAnimation = true behind DO_CHECK

Some of our code recently was relying on SkeletalMeshComponent::IsPostEvaluatingAnimation, similar to a few other spots we’ve seen:

`// Sequencer\MovieSceneControlRigParameterTemplate.cpp 918 37
if (!SkeletalMeshComponent->IsPostEvaluatingAnimation())

// Runtime\MovieSceneTracks\Private\Systems\MovieSceneSkeletalAnimationSystem.cpp 145 19
if (!Component->IsPostEvaluatingAnimation())

// Runtime\MovieSceneTracks\Private\Systems\MovieSceneSkeletalAnimationSystem.cpp 584 31
if (!SkeletalMeshComponent->IsPostEvaluatingAnimation() &&

// Runtime\Experimental\Animation\Constraints\Private\TransformableHandleUtils.cpp 37 31
if (InSkeletalMeshComponent->IsPostEvaluatingAnimation())`

if the build has DO_CHECK 0, though, this will always return false. It seems like the guard should be outside the DO_CHECK ?

`void USkeletalMeshComponent::PostAnimEvaluation(FAnimationEvaluationContext& EvaluationContext)
{
#if DO_CHECK
checkf(!bPostEvaluatingAnimation, TEXT(“PostAnimEvaluation already in progress, recursion detected for SkeletalMeshComponent [%s], AnimInstance [%s]”), *GetPathNameSafe(this), *GetPathNameSafe(EvaluationContext.AnimInstance));

//FGuardValue_Bitfield(bPostEvaluatingAnimation, true); // removed
#endif
FGuardValue_Bitfield(bPostEvaluatingAnimation, true); // added

SCOPE_CYCLE_COUNTER(STAT_PostAnimEvaluation);`

Hey,

Yea, this makes sense. Talking with the team, we’ll move this outside as well..

Thanks for confirming Dustin!