UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::MovieScene::TPreAnimatedStateStorage< StorageTraits > Struct Template Reference

#include <MovieScenePreAnimatedStateStorage.h>

+ Inheritance diagram for UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >:

Classes

struct  FCachedData
 
struct  IRestoreMask
 

Public Types

using KeyType = typename StorageTraits::KeyType
 
using StorageType = typename StorageTraits::StorageType
 

Public Member Functions

 TPreAnimatedStateStorage ()
 
 TPreAnimatedStateStorage (StorageTraits &&InTraits)
 
 TPreAnimatedStateStorage (const TPreAnimatedStateStorage &)=delete
 
TPreAnimatedStateStorageoperator= (const TPreAnimatedStateStorage &)=delete
 
void Initialize (FPreAnimatedStorageID InStorageID, FPreAnimatedStateExtension *InParentExtension) override
 
FPreAnimatedStorageID GetStorageType () const override
 
EPreAnimatedStorageRequirement RestorePreAnimatedStateStorage (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement SourceRequirement, EPreAnimatedStorageRequirement TargetRequirement, const FRestoreStateParams &Params) override
 
EPreAnimatedStorageRequirement DiscardPreAnimatedStateStorage (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement SourceRequirement) override
 
void SetRestoreMask (const IRestoreMask *InRestoreMask)
 
void AddReferencedObjects (FReferenceCollector &ReferenceCollector) override
 
FPreAnimatedStorageIndex GetOrCreateStorageIndex (const KeyType &InKey)
 
FPreAnimatedStorageIndex FindStorageIndex (const KeyType &InKey) const
 
void AssignPreAnimatedValue (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement StorageRequirement, StorageType &&InNewValue)
 
bool IsStorageRequirementSatisfied (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement StorageRequirement) const
 
template<typename... KeyArgs>
FPreAnimatedStateEntry FindEntry (KeyArgs &&... InKeyArgs)
 
template<typename... KeyArgs>
FPreAnimatedStateEntry MakeEntry (KeyArgs &&... InKeyArgs)
 
bool IsCapturingGlobalState () const
 
void ForciblyPersistStorage (FPreAnimatedStorageIndex StorageIndex)
 
bool IsStorageInitialized (FPreAnimatedStorageIndex StorageIndex) const
 
bool HasEverAnimated (FPreAnimatedStorageIndex StorageIndex) const
 
const KeyTypeGetKey (FPreAnimatedStorageIndex StorageIndex) const
 
void ReplaceKey (FPreAnimatedStorageIndex StorageIndex, const KeyType &NewKey)
 
const StorageTypeGetCachedValue (FPreAnimatedStorageIndex StorageIndex) const
 
template<typename... ContributorTypes>
void BeginTrackingEntities (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ContributorTypes >... InComponentTypes)
 
template<typename TaskType , typename... ContributorTypes>
void BeginTrackingEntitiesTask (UMovieSceneEntitySystemLinker *Linker, const TaskType &InParams, TComponentTypeID< ContributorTypes >... InComponentTypes)
 
template<typename... ContributorTypes>
void BeginTrackingEntity (FMovieSceneEntityID EntityID, const bool bWantsRestoreState, FRootInstanceHandle RootInstanceHandle, ContributorTypes... InComponents)
 
template<typename... ContributorTypes>
void CachePreAnimatedValues (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ContributorTypes >... InComponentTypes)
 
template<typename TaskType , typename... ContributorTypes>
void CachePreAnimatedValuesTask (UMovieSceneEntitySystemLinker *Linker, const TaskType &InParams, TComponentTypeID< ContributorTypes >... InComponentTypes)
 
template<typename... ContributorTypes>
void CachePreAnimatedValue (ContributorTypes... Values)
 
template<typename... ContributorTypes>
void CacheTrackedPreAnimatedValue (EPreAnimatedCaptureSourceTracking TrackingMode, ContributorTypes... Values)
 
template<typename OnCacheValue >
void CachePreAnimatedValue (const KeyType &InKey, OnCacheValue &&CacheCallback, EPreAnimatedCaptureSourceTracking TrackingMode=EPreAnimatedCaptureSourceTracking::CacheIfTracked)
 
template<typename OnCacheValue >
void CachePreAnimatedValue (FPreAnimatedStorageGroupHandle GroupHandle, const KeyType &InKey, OnCacheValue &&CacheCallback, EPreAnimatedCaptureSourceTracking TrackingMode=EPreAnimatedCaptureSourceTracking::CacheIfTracked)
 
template<typename... ContributorTypes>
void BeginTrackingAndCachePreAnimatedValues (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ContributorTypes >... InComponentTypes)
 
template<typename TaskType , typename... ContributorTypes>
void BeginTrackingAndCachePreAnimatedValuesTask (UMovieSceneEntitySystemLinker *Linker, const TaskType &InParams, TComponentTypeID< ContributorTypes >... InComponentTypes)
 
void OnObjectReplaced (FPreAnimatedStorageIndex StorageIndex, const FObjectKey &OldObject, const FObjectKey &NewObject) override
 
- Public Member Functions inherited from UE::MovieScene::IPreAnimatedStorage
virtual ~IPreAnimatedStorage ()
 
virtual IPreAnimatedObjectPropertyStorageAsPropertyStorage ()
 
virtual IPreAnimatedObjectEntityStorageAsObjectStorage ()
 
- Public Member Functions inherited from TSharedFromThis< IPreAnimatedStorage >
TSharedRef< IPreAnimatedStorage, Mode > AsShared ()
 
TSharedRef< IPreAnimatedStorage const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< IPreAnimatedStorage, Mode > AsWeak ()
 
TWeakPtr< IPreAnimatedStorage const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 

Public Attributes

StorageTraits Traits
 

Protected Member Functions

template<typename... KeyArgs>
bool ShouldTrackCaptureSource (EPreAnimatedCaptureSourceTracking TrackingMode, KeyArgs &&... InKeyArgs)
 
void TrackCaptureSource (const FPreAnimatedStateEntry &Entry, EPreAnimatedCaptureSourceTracking TrackingMode)
 
- Protected Member Functions inherited from TSharedFromThis< IPreAnimatedStorage >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 

Protected Attributes

TMap< KeyType, FPreAnimatedStorageIndexKeyToStorageIndex
 
TSparseArray< FCachedDataPreAnimatedStorage
 
TSortedMap< FPreAnimatedStorageIndex, StorageTypeTransientPreAnimatedStorage
 
FPreAnimatedStateExtensionParentExtension = nullptr
 
const IRestoreMaskRestoreMask = nullptr
 
FPreAnimatedStorageID StorageID
 

Additional Inherited Members

- Static Protected Member Functions inherited from TSharedFromThis< IPreAnimatedStorage >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 

Detailed Description

template<typename StorageTraits>
struct UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >

Storage container for a specific type of pre-animated state as defined by the specified traits.

Reference collection for KeyType and StorageType is automatically provided by way of an optional AddReferencedObjectForComponent override

Traits must include a type definition or using alias for its KeyType and StorageType, defining the type of key to use for associating the pre-animated value and the storage value type respectively.

Additionally, traits must define a RestorePreAnimatedValue function that will be used by the storage container to restore data back to its previous value.

An example trait that maps an object and a name identifier to a string would look like this: struct FExampleTraits { using KeyType = TTuple<FObjectKey, FName>; using StorageType = FString;

static void RestorePreAnimatedValue(const KeyType& InKey, const FString& PreviousString, const FRestoreStateParams& Params) { if (UMyObjectType* Object = Cast<UMyObjectType>(InKey.Get<0>().ResolveObjectPtr())) { Object->SetStringValue(InKey.Get<1>(), PreviousString); } } }

Furthermore, if the CachePreAnimatedValuesTask is used, traits must implement a CachePreAnimatedValue function that receives the contributor component types, and returns the cached value:

static FString CachePreAnimatedValue(UObject* InObject, const FName& StringName) { UMyObjectType* Object = CastChecked<UMyObjectType>(InObject); return Object->GetStringValue(StringName); }

Traits may be stateful if desired. Stateful traits must be provided to the constructor in order to be valid.

Member Typedef Documentation

◆ KeyType

template<typename StorageTraits >
using UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::KeyType = typename StorageTraits::KeyType

The key type to use as a key in the map that associates pre-animated state values to owners (ie, an object and property name)

◆ StorageType

template<typename StorageTraits >
using UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::StorageType = typename StorageTraits::StorageType

The value type this storage should store (ie, the actual property type)

Constructor & Destructor Documentation

◆ TPreAnimatedStateStorage() [1/3]

template<typename StorageTraits >
UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::TPreAnimatedStateStorage ( )
inline

◆ TPreAnimatedStateStorage() [2/3]

template<typename StorageTraits >
UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::TPreAnimatedStateStorage ( StorageTraits &&  InTraits)
inline

◆ TPreAnimatedStateStorage() [3/3]

template<typename StorageTraits >
UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::TPreAnimatedStateStorage ( const TPreAnimatedStateStorage< StorageTraits > &  )
delete

Pre-Animated storage is not copyable

Member Function Documentation

◆ AddReferencedObjects()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::AddReferencedObjects ( FReferenceCollector ReferenceCollector)
inlineoverridevirtual

Called by the owning extension to add reference collection tracking for pre-animated state

Reimplemented from UE::MovieScene::IPreAnimatedStorage.

◆ AssignPreAnimatedValue()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::AssignPreAnimatedValue ( FPreAnimatedStorageIndex  StorageIndex,
EPreAnimatedStorageRequirement  StorageRequirement,
StorageType &&  InNewValue 
)
inline

Assign the value for a specific storage index. It is an error to re-assign an already cached value.

Parameters
StorageIndexThe storage index to assign a value for
StorageRequirementWhether to assign the value to this index's persistent, or transient value. Transient should be used when this value is directly associated with a track evaluating.
InNewValueThe value to assign

◆ BeginTrackingAndCachePreAnimatedValues()

template<typename StorageTraits >
template<typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::BeginTrackingAndCachePreAnimatedValues ( UMovieSceneEntitySystemLinker Linker,
TComponentTypeID< ContributorTypes >...  InComponentTypes 
)
inline

Look at any entity with the specified component types, and set up new associations with storage indices for those entities, whilst also caching pre-animated values at the same time.

◆ BeginTrackingAndCachePreAnimatedValuesTask()

template<typename StorageTraits >
template<typename TaskType , typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::BeginTrackingAndCachePreAnimatedValuesTask ( UMovieSceneEntitySystemLinker Linker,
const TaskType &  InParams,
TComponentTypeID< ContributorTypes >...  InComponentTypes 
)
inline

Look at any entity with the specified component types, and set up new associations with storage indices for those entities, whilst also caching pre-animated values at the same time.

◆ BeginTrackingEntities()

template<typename StorageTraits >
template<typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::BeginTrackingEntities ( UMovieSceneEntitySystemLinker Linker,
TComponentTypeID< ContributorTypes >...  InComponentTypes 
)
inline

Look at any entity with the specified component types, and set up new associations with storage indices for those entities The provided component values are put together to make up the storage key WARNING: Does not cache actual pre-animated values

◆ BeginTrackingEntitiesTask()

template<typename StorageTraits >
template<typename TaskType , typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::BeginTrackingEntitiesTask ( UMovieSceneEntitySystemLinker Linker,
const TaskType &  InParams,
TComponentTypeID< ContributorTypes >...  InComponentTypes 
)
inline

Look at any entity with the specified component types, and set up new associations with storage indices for those entities The provided component values are put together to make up the storage key WARNING: Does not cache actual pre-animated values

◆ BeginTrackingEntity()

template<typename StorageTraits >
template<typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::BeginTrackingEntity ( FMovieSceneEntityID  EntityID,
const bool  bWantsRestoreState,
FRootInstanceHandle  RootInstanceHandle,
ContributorTypes...  InComponents 
)
inline

Set up a new associations with a storage index for the given entity The provided component values are put together to make up the storage key WARNING: Does not cache actual pre-animated values

◆ CachePreAnimatedValue() [1/3]

template<typename StorageTraits >
template<typename OnCacheValue >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::CachePreAnimatedValue ( const KeyType InKey,
OnCacheValue &&  CacheCallback,
EPreAnimatedCaptureSourceTracking  TrackingMode = EPreAnimatedCaptureSourceTracking::CacheIfTracked 
)
inline

Save pre-animated state for the specified group and key using a callback. Callback will only be invoked if state has not already been saved.

◆ CachePreAnimatedValue() [2/3]

template<typename StorageTraits >
template<typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::CachePreAnimatedValue ( ContributorTypes...  Values)
inline

Save pre-animated state for the specified values, using CacheIfTracked tracking Requires that the traits class implements CachePreAnimatedValue(ContributorTypes...)

◆ CachePreAnimatedValue() [3/3]

template<typename StorageTraits >
template<typename OnCacheValue >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::CachePreAnimatedValue ( FPreAnimatedStorageGroupHandle  GroupHandle,
const KeyType InKey,
OnCacheValue &&  CacheCallback,
EPreAnimatedCaptureSourceTracking  TrackingMode = EPreAnimatedCaptureSourceTracking::CacheIfTracked 
)
inline

Save pre-animated state for the specified group and key using a callback. Callback will only be invoked if state has not already been saved.

◆ CachePreAnimatedValues()

template<typename StorageTraits >
template<typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::CachePreAnimatedValues ( UMovieSceneEntitySystemLinker Linker,
TComponentTypeID< ContributorTypes >...  InComponentTypes 
)
inline

Cache pre-animated values for entities with the specified component types

◆ CachePreAnimatedValuesTask()

template<typename StorageTraits >
template<typename TaskType , typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::CachePreAnimatedValuesTask ( UMovieSceneEntitySystemLinker Linker,
const TaskType &  InParams,
TComponentTypeID< ContributorTypes >...  InComponentTypes 
)
inline

Cache pre-animated values for entities with the specified component types

◆ CacheTrackedPreAnimatedValue()

template<typename StorageTraits >
template<typename... ContributorTypes>
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::CacheTrackedPreAnimatedValue ( EPreAnimatedCaptureSourceTracking  TrackingMode,
ContributorTypes...  Values 
)
inline

Save pre-animated state for the specified values Requires that the traits class implements CachePreAnimatedValue(ContributorTypes...)

◆ DiscardPreAnimatedStateStorage()

template<typename StorageTraits >
EPreAnimatedStorageRequirement UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::DiscardPreAnimatedStateStorage ( FPreAnimatedStorageIndex  StorageIndex,
EPreAnimatedStorageRequirement  SourceRequirement 
)
inlineoverridevirtual

Discard a specified index within this storage container.

Parameters
StorageIndexThe unique index for the stored state - either an index within PreAnimatedStorage or TransientPreAnimatedStorage.
SourceRequirementThe storage requirement to discard - Persistent will discard all cached state for the object, Transient may leave persistent storage around, if possible.
Returns
The resulting storage requirement for the supplied index

Implements UE::MovieScene::IPreAnimatedStorage.

◆ FindEntry()

template<typename StorageTraits >
template<typename... KeyArgs>
FPreAnimatedStateEntry UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::FindEntry ( KeyArgs &&...  InKeyArgs)
inline

Given a list of arguments suitable for building a storage key, builds that key, and then tries to find an existing pre-animated state entry for that key if it already exists. If it doesn't exist, it returns an empty FPreAnimatedStateEntry.

Note that the arguments are also used for find the group handle, if the storage traits required grouping.

◆ FindStorageIndex()

template<typename StorageTraits >
FPreAnimatedStorageIndex UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::FindStorageIndex ( const KeyType InKey) const
inline

Attempt to find a storage index for the specified key

◆ ForciblyPersistStorage()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::ForciblyPersistStorage ( FPreAnimatedStorageIndex  StorageIndex)
inline

Cause a previously cached value to always outlive any actively animating sources. This is called when a Restore State track overlaps a Keep State track. The Restore State track will initially save state using the Transient requirement, but the Keep State track may need to keep this cached state alive if it is capturing global state. As such, we take the previously cached state and make it persistent.

◆ GetCachedValue()

template<typename StorageTraits >
const StorageType & UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::GetCachedValue ( FPreAnimatedStorageIndex  StorageIndex) const
inline

Get the cached value associated with a particular storage index

◆ GetKey()

template<typename StorageTraits >
const KeyType & UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::GetKey ( FPreAnimatedStorageIndex  StorageIndex) const
inline

Get the key associated with a particular storage index

◆ GetOrCreateStorageIndex()

template<typename StorageTraits >
FPreAnimatedStorageIndex UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::GetOrCreateStorageIndex ( const KeyType InKey)
inline

Attempt to find a storage index for the specified key, creating a new one if it doesn't exist

◆ GetStorageType()

template<typename StorageTraits >
FPreAnimatedStorageID UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::GetStorageType ( ) const
inlineoverridevirtual

Retrieve the ID that uniquely identifies this storage container

Implements UE::MovieScene::IPreAnimatedStorage.

◆ HasEverAnimated()

template<typename StorageTraits >
bool UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::HasEverAnimated ( FPreAnimatedStorageIndex  StorageIndex) const
inline

Check whether we have ever animated the specified storage index.

◆ Initialize()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::Initialize ( FPreAnimatedStorageID  InStorageID,
FPreAnimatedStateExtension InParentExtension 
)
inlineoverridevirtual

Called when this storage is created inside the pre-animated state extension on a UMovieSceneEntitySystemLinker

Reimplemented from UE::MovieScene::IPreAnimatedStorage.

◆ IsCapturingGlobalState()

template<typename StorageTraits >
bool UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::IsCapturingGlobalState ( ) const
inline

◆ IsStorageInitialized()

template<typename StorageTraits >
bool UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::IsStorageInitialized ( FPreAnimatedStorageIndex  StorageIndex) const
inline

Check whether a piece of cached storage has been initialized yet. This will be false where multiple entities contribute to an object's state but a different entity actually assigns the value (eg multiple blended entiies). Saving state for these requires 2 passes: firstly we gather all the entities that contribute to the state (which may not be able to even know how to cache the state), then we capture the actual value.

◆ IsStorageRequirementSatisfied()

template<typename StorageTraits >
bool UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::IsStorageRequirementSatisfied ( FPreAnimatedStorageIndex  StorageIndex,
EPreAnimatedStorageRequirement  StorageRequirement 
) const
inline

Check whether the storage for a given index and requirement has already been initialized

◆ MakeEntry()

template<typename StorageTraits >
template<typename... KeyArgs>
FPreAnimatedStateEntry UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::MakeEntry ( KeyArgs &&...  InKeyArgs)
inline

Creates a new pre-animated state entry from a list of arguments suitable for building the storage key.

Note that the arguments are also used for getting the group handle, if the storage traits required grouping.

◆ OnObjectReplaced()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::OnObjectReplaced ( FPreAnimatedStorageIndex  StorageIndex,
const FObjectKey OldObject,
const FObjectKey NewObject 
)
inlineoverridevirtual

◆ operator=()

template<typename StorageTraits >
TPreAnimatedStateStorage & UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::operator= ( const TPreAnimatedStateStorage< StorageTraits > &  )
delete

◆ ReplaceKey()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::ReplaceKey ( FPreAnimatedStorageIndex  StorageIndex,
const KeyType NewKey 
)
inline

Replace the key associated with a particular storage index

◆ RestorePreAnimatedStateStorage()

template<typename StorageTraits >
EPreAnimatedStorageRequirement UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::RestorePreAnimatedStateStorage ( FPreAnimatedStorageIndex  StorageIndex,
EPreAnimatedStorageRequirement  SourceRequirement,
EPreAnimatedStorageRequirement  TargetRequirement,
const FRestoreStateParams Params 
)
inlineoverridevirtual

Restore a specified index within this storage container. Usually called when all the things contributing to this storage index have finished evaluating.

Parameters
StorageIndexThe unique index for the stored state - either an index within PreAnimatedStorage or TransientPreAnimatedStorage.
SourceRequirementThe source requirement that is requesting to restore state: Persistent - indicates that the storage should be completely restored as a result of a sequence finishing or explicitly restoring state Transient - indicates that all 'Restore State' tracks have finished evaluating for this index, but persistent state may still be cached
TargetRequirementThe target requirement for storage - None implies that no state needs to remain cached for this index, Persistent implies that keep state entities have finished, but the state still needs to be cached.
ParamsAdditional restore parameters defining the instigator context
Returns
The resulting storage requirement for the supplied index

Implements UE::MovieScene::IPreAnimatedStorage.

◆ SetRestoreMask()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::SetRestoreMask ( const IRestoreMask InRestoreMask)
inline

Called prior to restoring pre-animated state to control whether this storage should restore state or not

◆ ShouldTrackCaptureSource()

template<typename StorageTraits >
template<typename... KeyArgs>
bool UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::ShouldTrackCaptureSource ( EPreAnimatedCaptureSourceTracking  TrackingMode,
KeyArgs &&...  InKeyArgs 
)
inlineprotected

◆ TrackCaptureSource()

template<typename StorageTraits >
void UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::TrackCaptureSource ( const FPreAnimatedStateEntry Entry,
EPreAnimatedCaptureSourceTracking  TrackingMode 
)
inlineprotected

Begins tracking the current entry with the currently set tracking source, if necessary/desirable. If the entry is valid, we assume the metadata must already exist.

Member Data Documentation

◆ KeyToStorageIndex

template<typename StorageTraits >
TMap<KeyType, FPreAnimatedStorageIndex> UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::KeyToStorageIndex
protected

Map that associates a storage index with a key. This indirection allows common code to deal with indices without knowing concrete templated types.

◆ ParentExtension

template<typename StorageTraits >
FPreAnimatedStateExtension* UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::ParentExtension = nullptr
protected

Pointer to our parent extension

◆ PreAnimatedStorage

template<typename StorageTraits >
TSparseArray<FCachedData> UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::PreAnimatedStorage
protected

Sparse array of cached data that represents persistent, or both persistent and transient storage (but never exclusively transient storage). FPreAnimatedStorageIndex defines an index into this array (or into the rarely used TransientPreAnimatedStorage map)

◆ RestoreMask

template<typename StorageTraits >
const IRestoreMask* UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::RestoreMask = nullptr
protected

Temporary restoration mask

◆ StorageID

template<typename StorageTraits >
FPreAnimatedStorageID UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::StorageID
protected

Our storage ID

◆ Traits

template<typename StorageTraits >
StorageTraits UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::Traits

Traits instance - normally not required but some traits require state

◆ TransientPreAnimatedStorage

template<typename StorageTraits >
TSortedMap<FPreAnimatedStorageIndex, StorageType> UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >::TransientPreAnimatedStorage
protected

Storage that holds values that need to be kept transiently (for evaluation). This map is only used if a Keep State section previously captured a value (because it is evaluating in a 'Capture Global State' context) and we end up animating the same value using a Restore State section. The Restore State section has to re-capture its starting value whilst also keeping the previously captured value alive to ensure that the section can restore to its starting value in addition to the sequence itself restoring to the global starting value


The documentation for this struct was generated from the following file: