#include <MovieSceneComposableCameraPatchTrack.h>

Inherits: UMovieSceneNameableTrack

Root-level Sequencer track that drives Composable Camera Patches.

Each section on the track represents one Patch activation window (asset + params + parameter bag); when a section enters its TrueRange the runtime fires AddCameraPatch, when it exits ExpireCameraPatch fires.

Root track (no object binding) by design — Patches live on the Director resolved through PlayerIndex + ContextName on the section, mirroring the BP AddCameraPatch library entry. This avoids forcing designers to bind the track to the PCM (which is itself transient and hard to bind cleanly in Sequencer); the section's own properties carry the addressing info.

Multi-row support is on so designers can stack overlapping patches in the same track (different LayerIndex per section, sorted by PatchManager). Each section is independent — sections do not blend with each other; the patch compositor's LayerIndex order does. Easing on each section is enabled and fed into the patch's envelope (EnterDuration / ExitDuration overrides) by the TrackInstance.

Modeled on UMovieSceneCVarTrack: same ImportEntityImpl-via-section pattern, same per-section TrackInstance dispatch through the engine's UMovieSceneTrackInstanceSystem. Track itself stores no animation data — sections own everything.

Public Methods

Return Name Description
UMovieSceneComposableCameraPatchTrack
void AddSection virtual
bool SupportsType virtual const
UMovieSceneSection * CreateNewSection virtual
bool SupportsMultipleRows virtual const inline
EMovieSceneTrackEasingSupportFlags SupportsEasing virtual const
const TArray< UMovieSceneSection * > & GetAllSections virtual const
bool HasSection virtual const
bool IsEmpty virtual const
void RemoveSection virtual
void RemoveSectionAt virtual
void RemoveAllAnimationData virtual

UMovieSceneComposableCameraPatchTrack

UMovieSceneComposableCameraPatchTrack(const FObjectInitializer & ObjectInitializer)

AddSection

virtual

virtual void AddSection(UMovieSceneSection & Section)

SupportsType

virtual const

virtual bool SupportsType(TSubclassOf< UMovieSceneSection > SectionClass) const

CreateNewSection

virtual

virtual UMovieSceneSection * CreateNewSection()

SupportsMultipleRows

virtual const inline

virtual inline bool SupportsMultipleRows() const

SupportsEasing

virtual const

virtual EMovieSceneTrackEasingSupportFlags SupportsEasing(FMovieSceneSupportsEasingParams & Params) const

GetAllSections

virtual const

virtual const TArray< UMovieSceneSection * > & GetAllSections() const

HasSection

virtual const

virtual bool HasSection(const UMovieSceneSection & Section) const

IsEmpty

virtual const

virtual bool IsEmpty() const

RemoveSection

virtual

virtual void RemoveSection(UMovieSceneSection & Section)

RemoveSectionAt

virtual

virtual void RemoveSectionAt(int32 SectionIndex)

RemoveAllAnimationData

virtual

virtual void RemoveAllAnimationData()

Private Attributes

Return Name Description
TArray< TObjectPtr< UMovieSceneSection > > Sections

Sections

TArray< TObjectPtr< UMovieSceneSection > > Sections