void FAnimNode_BlendSpacePlayer::UpdateInternal(const FAnimationUpdateContext& Context) { if ((BlendSpace != NULL) && (Context.AnimInstanceProxy->IsSkeletonCompatible(BlendSpace->GetSkeleton()))) { // Create a tick record and fill it out FAnimGroupInstance* SyncGroup; FAnimTickRecord& TickRecord = Context.AnimInstanceProxy->CreateUninitializedTickRecord(GroupIndex, /*out*/ SyncGroup); const FVector BlendInput(X, Y, Z); if (PreviousBlendSpace != BlendSpace) { Reinitialize(); } Context.AnimInstanceProxy->MakeBlendSpaceTickRecord(TickRecord, BlendSpace, BlendInput, BlendSampleDataCache, BlendFilter, bLoop, PlayRate, Context.GetFinalBlendWeight(), /*inout*/ InternalTimeAccumulator, MarkerTickRecord); // Update the sync group if it exists if (SyncGroup != NULL) { SyncGroup->TestTickRecordForLeadership(GroupRole); } PreviousBlendSpace = BlendSpace; } }
void FAnimNode_SequencePlayer::UpdateAssetPlayer(const FAnimationUpdateContext& Context) { EvaluateGraphExposedInputs.Execute(Context); if ((Sequence != NULL) && (Context.AnimInstance->CurrentSkeleton->IsCompatible(Sequence->GetSkeleton()))) { const float FinalBlendWeight = Context.GetFinalBlendWeight(); // Create a tick record and fill it out FAnimGroupInstance* SyncGroup; FAnimTickRecord& TickRecord = Context.AnimInstance->CreateUninitializedTickRecord(GroupIndex, /*out*/ SyncGroup); if (InternalTimeAccumulator > Sequence->SequenceLength) { InternalTimeAccumulator = 0.f; } Context.AnimInstance->MakeSequenceTickRecord(TickRecord, Sequence, bLoopAnimation, PlayRate, FinalBlendWeight, /*inout*/ InternalTimeAccumulator); // Update the sync group if it exists if (SyncGroup != NULL) { SyncGroup->TestTickRecordForLeadership(GroupRole); } } }
void FAnimNode_BlendSpacePlayer::Update(const FAnimationUpdateContext& Context) { EvaluateGraphExposedInputs.Execute(Context); if ((BlendSpace != NULL) && (Context.AnimInstance->CurrentSkeleton->IsCompatible(BlendSpace->GetSkeleton()))) { // Create a tick record and fill it out FAnimGroupInstance* SyncGroup; FAnimTickRecord& TickRecord = Context.AnimInstance->CreateUninitializedTickRecord(GroupIndex, /*out*/ SyncGroup); const FVector BlendInput(X, Y, Z); Context.AnimInstance->MakeBlendSpaceTickRecord(TickRecord, BlendSpace, BlendInput, BlendSampleDataCache, BlendFilter, bLoop, PlayRate, Context.GetFinalBlendWeight(), /*inout*/ InternalTimeAccumulator); // Update the sync group if it exists if (SyncGroup != NULL) { SyncGroup->TestTickRecordForLeadership(GroupRole); } } }