void USkeletalMeshComponent::PostBlendPhysics() { SCOPE_CYCLE_COUNTER(STAT_UpdateLocalToWorldAndOverlaps); // Flip bone buffer and send 'post anim' notification FinalizeBoneTransform(); // Update Child Transform - The above function changes bone transform, so will need to update child transform UpdateChildTransforms(); // animation often change overlap. UpdateOverlaps(); // Cached local bounds are now out of date InvalidateCachedBounds(); // update bounds UpdateBounds(); // Need to send new bounds to MarkRenderTransformDirty(); // New bone positions need to be sent to render thread MarkRenderDynamicDataDirty(); }
void USkeletalMeshComponent::CompleteParallelBlendPhysics() { Exchange(AnimEvaluationContext.LocalAtoms, AnimEvaluationContext.bDoInterpolation ? CachedLocalAtoms : LocalAtoms); FlipEditableSpaceBases(); // Update Child Transform - The above function changes bone transform, so will need to update child transform UpdateChildTransforms(); // animation often change overlap. UpdateOverlaps(); // New bone positions need to be sent to render thread MarkRenderDynamicDataDirty(); FinalizeBoneTransform(); ParallelAnimationEvaluationTask.SafeRelease(); ParallelBlendPhysicsCompletionTask.SafeRelease(); }