// 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(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); }