UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneBlendingAccumulator.inl
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
4
6
8template<typename DataType>
10{
11 TMovieSceneBlendingActuator<DataType>* Actuator = Accumulator.FindActuator<DataType>(InActuatorType);
12 if (!ensure(Actuator))
13 {
14 return;
15 }
16
17 TMovieSceneInitialValueStore<DataType> InitialValues(*Actuator, *this, InObject, &Player);
18
20 Tokens.Sort();
21 for (const TBlendableToken<DataType>* Token : Tokens)
22 {
23 Token->AddTo(WorkingTotal, InitialValues);
24 }
25
26 DataType FinalResult = WorkingTotal.Resolve(InitialValues);
27 Actuator->Actuate(InObject, FinalResult, *this, Context, PersistentData, Player);
28
29 if (Actuator->HasInitialValue(InObject))
30 {
32 if (InObject)
33 {
34 SavePreAnimatedStateForAllEntities(Player, *InObject, TypeID, FMovieSceneRemoveInitialValueTokenProducer(Actuator->AsShared()));
35 }
36 else
37 {
38 SavePreAnimatedStateForAllEntities(Player, TypeID, FMovieSceneRemoveInitialGlobalValueTokenProducer(Actuator->AsShared()));
39 }
40 }
41}
42
43
44template<typename DataType>
46{
47 TMovieSceneBlendingActuator<DataType>* Actuator = Accumulator.FindActuator<DataType>(InActuatorType);
48 if (!ensure(Actuator))
49 {
50 return;
51 }
52
53 TMovieSceneInitialValueStore<DataType> InitialValues(*Actuator, *this, AnimatedObject, nullptr);
54
56 for (const TBlendableToken<DataType>* Token : Tokens)
57 {
58 Token->AddTo(WorkingTotal, InitialValues);
59 }
60
61 DataType FinalResult = WorkingTotal.Resolve(InitialValues);
62 Actuator->Actuate(InterrogationData, FinalResult, *this, Context);
63}
#define ensure( InExpression)
Definition AssertionMacros.h:464
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
MOVIESCENE_API FMovieSceneAnimTypeID GetInitialValueTypeID()
Definition MovieSceneBlendingAccumulator.cpp:6
Definition IMovieScenePlayer.h:90
TSharedRef< ObjectType, Mode > AsShared()
Definition SharedPointer.h:1650
Definition Object.h:95
Definition MovieSceneAnimTypeID.h:20
static MOVIESCENE_API FMovieSceneAnimTypeID Combine(FMovieSceneAnimTypeID A, FMovieSceneAnimTypeID B)
Definition MovieSceneAnimTypeID.cpp:42
Definition MovieSceneBlendingAccumulator.h:26
TMovieSceneBlendingActuator< DataType > * FindActuator(FMovieSceneBlendingActuatorID InActuatorTypeID) const
Definition MovieSceneBlendingAccumulator.h:85
Definition MovieSceneBlendingActuatorID.h:8
Definition MovieScenePlayback.h:184
Definition MovieSceneTemplateInterrogation.h:70
Definition MovieSceneInitialValueStore.h:34
Definition MovieSceneInitialValueStore.h:20
Definition PersistentEvaluationData.h:91
virtual void ComputeAndActuate(UObject *InObject, FMovieSceneBlendingAccumulator &Accumulator, FMovieSceneBlendingActuatorID InActuatorType, const FMovieSceneContext &Context, FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) override final
Definition MovieSceneBlendingAccumulator.inl:9
virtual void Interrogate(UObject *AnimatedObject, FMovieSceneInterrogationData &InterrogationData, FMovieSceneBlendingAccumulator &Accumulator, FMovieSceneBlendingActuatorID ActuatorTypeID, const FMovieSceneContext &Context) override final
Definition MovieSceneBlendingAccumulator.inl:45
DataType WorkingDataType
Definition BlendableToken.h:93
Definition BlendableToken.h:100
Definition MovieSceneBlendingActuator.h:40
virtual void Actuate(UObject *InObject, typename TCallTraits< DataType >::ParamType InValue, const TBlendableTokenStack< DataType > &OriginalStack, const FMovieSceneContext &Context, FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player)=0
FMovieSceneBlendingActuatorID GetActuatorID() const
Definition MovieSceneBlendingActuator.h:86
bool HasInitialValue(FObjectKey InObject) const
Definition MovieSceneBlendingActuator.h:94
Definition MovieSceneInitialValueStore.h:49