Description

I saw a following assertion.

Assertion failed: (AdditivePoses.Num() > 0) || (NonAdditivePoses.Num() > 0) [Link Removed] [Line: 1381]

 

This is my quick fix

// code placeholder

void FAnimInstanceProxy::SlotEvaluatePose(const FName& SlotNodeName, const FCompactPose& SourcePose, const FBlendedCurve& SourceCurve, float InSourceWeight, FCompactPose& BlendedPose, FBlendedCurve& BlendedCurve, float InBlendWeight, float InTotalNodeWeight)
{
  // quick fix takashi.suzuki@epicgames.com - BEGIN
  //If it doesn't have any montages, just return
  if( MontageEvaluationData.Num() == 0 )
  {
    return;
  }
  // quick fix takashi.suzuki@epicgames.com - END

  //Accessing MontageInstances from this function is not safe (as this can be called during Parallel Anim Evaluation!
  //Any montage data you need to add should be part of MontageEvaluationData
  // nothing to blend, just get it out
  if (InBlendWeight <= ZERO_ANIMWEIGHT_THRESH)
  {
    BlendedPose = SourcePose;
    BlendedCurve = SourceCurve;
    return;
  }


 

 

Steps to Reproduce
  1. Create anim blueprint
  2. Create a sub-anim blueprint that has only input and output node
  3. Put montage slot node and sub animinstance node in main anim blueprint (see following image)
  4. Create level sequence in editor
  5. Put a character that has anim blueprint in the sequencer
  6. Add animation track and apply an animation
  7. Scrabbing seek bar

 

[Image Removed]

Callstack

UE4Editor-Engine.dll!FAnimInstanceProxy::SlotEvaluatePose(const FName & SlotNodeName, const FCompactPose & SourcePose, const FBlendedCurve & SourceCurve, float InSourceWeight, FCompactPose & BlendedPose, FBlendedCurve & BlendedCurve, float InBlendWeight, float InTotalNodeWeight) 行 1381 C++
UE4Editor-AnimGraphRuntime.dll!FAnimNode_Slot::Evaluate_AnyThread(FPoseContext & Output) 行 60 C++
UE4Editor-Engine.dll!FPoseLink::Evaluate(FPoseContext & Output) 行 375 C++
UE4Editor-Engine.dll!FAnimNode_SubInput::Evaluate_AnyThread(FPoseContext & Output) 行 44 C++
UE4Editor-Engine.dll!FPoseLink::Evaluate(FPoseContext & Output) 行 375 C++
UE4Editor-Engine.dll!FAnimInstanceProxy::EvaluateAnimationNode_WithRoot(FPoseContext & Output, FAnimNode_Base * InRootNode) 行 1269 C++
UE4Editor-Engine.dll!FAnimInstanceProxy::EvaluateAnimation_WithRoot(FPoseContext & Output, FAnimNode_Base * InRootNode) 行 1210 C++
UE4Editor-Engine.dll!FAnimNode_SubInstance::Evaluate_AnyThread(FPoseContext & Output) 行 72 C++
UE4Editor-Engine.dll!FPoseLink::Evaluate(FPoseContext & Output) 行 375 C++
UE4Editor-Engine.dll!FAnimInstanceProxy::EvaluateAnimationNode_WithRoot(FPoseContext & Output, FAnimNode_Base * InRootNode) 行 1269 C++
UE4Editor-Engine.dll!FAnimInstanceProxy::EvaluateAnimation_WithRoot(FPoseContext & Output, FAnimNode_Base * InRootNode) 行 1210 C++
UE4Editor-Engine.dll!UAnimInstance::ParallelEvaluateAnimation(bool bForceRefPose, const USkeletalMesh * InSkeletalMesh, FBlendedHeapCurve & OutCurve, FCompactPose & OutPose) 行 665 C++
UE4Editor-Engine.dll!USkeletalMeshComponent::EvaluateAnimation(const USkeletalMesh * InSkeletalMesh, UAnimInstance * InAnimInstance, FVector & OutRootBoneTranslation, FBlendedHeapCurve & OutCurve, FCompactPose & OutPose) 行 1765 C++
UE4Editor-Engine.dll!USkeletalMeshComponent::PerformAnimationProcessing(const USkeletalMesh * InSkeletalMesh, UAnimInstance * InAnimInstance, bool bInDoEvaluation, TArray<FTransform,TSizedDefaultAllocator<32> > & OutSpaceBases, TArray<FTransform,TSizedDefaultAllocator<32> > & OutBoneSpaceTransforms, FVector & OutRootBoneTranslation, FBlendedHeapCurve & OutCurve) 行 1847 C++
UE4Editor-Engine.dll!USkeletalMeshComponent::ParallelAnimationEvaluation() 行 3500 C++
UE4Editor-Engine.dll!USkeletalMeshComponent::DoParallelEvaluationTasks_OnGameThread() 行 2224 C++
UE4Editor-Engine.dll!USkeletalMeshComponent::RefreshBoneTransforms(FActorComponentTickFunction * TickFunction) 行 2136 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-81174 in the post.

1
Login to Vote

Fixed
ComponentAnim - Animation
Affects Versions4.23
Target Fix4.24
Fix Commit9731561
Main Commit9731752
Release Commit9731561
CreatedOct 2, 2019
ResolvedOct 21, 2019
UpdatedOct 21, 2019