Files
UnrealEngineUWP/Engine/Source/Runtime/AnimGraphRuntime/Private/AnimNodes/AnimNode_SequenceEvaluator.cpp

48 lines
1.4 KiB
C++
Raw Normal View History

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "AnimGraphRuntimePrivatePCH.h"
#include "AnimNodes/AnimNode_SequenceEvaluator.h"
/////////////////////////////////////////////////////
// FAnimSequenceEvaluatorNode
void FAnimNode_SequenceEvaluator::Initialize(const FAnimationInitializeContext& Context)
{
FAnimNode_Base::Initialize(Context);
}
void FAnimNode_SequenceEvaluator::CacheBones(const FAnimationCacheBonesContext& Context)
{
}
void FAnimNode_SequenceEvaluator::UpdateAssetPlayer(const FAnimationUpdateContext& Context)
{
EvaluateGraphExposedInputs.Execute(Context);
}
void FAnimNode_SequenceEvaluator::Evaluate(FPoseContext& Output)
{
if ((Sequence != NULL) && (Output.AnimInstance->CurrentSkeleton->IsCompatible(Sequence->GetSkeleton())))
{
Sequence->GetAnimationPose(Output.Pose, Output.Curve, FAnimExtractContext(ExplicitTime, Output.AnimInstance->ShouldExtractRootMotion()));
}
else
{
Output.ResetToRefPose();
}
}
void FAnimNode_SequenceEvaluator::OverrideAsset(UAnimationAsset* NewAsset)
{
if(UAnimSequenceBase* NewSequence = Cast<UAnimSequenceBase>(NewAsset))
{
Sequence = NewSequence;
}
}
void FAnimNode_SequenceEvaluator::GatherDebugData(FNodeDebugData& DebugData)
{
FString DebugLine = DebugData.GetNodeName(this);
DebugLine += FString::Printf(TEXT("('%s' Play Time: %.3f)"), *Sequence->GetName(), ExplicitTime);
DebugData.AddDebugItem(DebugLine, true);
}