#include <ComposableCameraLevelSequenceActor.h>
Inherits:
AActorSubclassed by:AComposableCameraLevelSequenceShotActor
Actor dedicated to binding composable cameras into a Level Sequence.
Structure
RootComponent = UCineCameraComponent (OutputCineCameraComponent) ← viewport terminal Sibling = UComposableCameraLevelSequenceComponent ← logic/data driver
Mirrors ACineCameraActor's shape: the CineCamera is the Actor's root component, so every native UE path ("find a UCameraComponent on this actor", Camera Cut Track, viewport Pilot, Sequencer's Camera Cut target resolution) lands on it immediately. PCM::SetViewTarget's implicit- activation filter hits its root-is-camera fast path identical to how it handles CineCameraActor.
The LevelSequenceComponent is a plain UActorComponent (no transform) — it holds the TypeAssetReference bag and drives the internal CCS camera, projecting each tick's pose onto the CineCamera.
Placement
Placeable in the level (Place Actors panel) AND usable as a Sequencer Spawnable / Possessable. The latter two paths remain the most common — the Sequencer Spawnable binding spawns the actor on section entry and destroys it on exit; a Possessable binds an existing in-level instance. Direct level placement is supported for designers who want to author a camera against a Sequencer that always exists in the level (e.g. an in-level cinematic trigger that drives the same actor every play).
Without an active Sequencer driving the LevelSequenceComponent, a free-standing instance is a no-op (see UComposableCameraLevelSequenceComponent::SetEvaluationEnabled — the component still ticks, but with no Shot / Patch overrides to apply it just projects the InternalCamera's default pose). This is by design; the actor doesn't error on a "lonely" instance.
Runtime driver
All real work lives on the LevelSequenceComponent — the actor has no per-frame responsibilities of its own.
Public Methods¶
| Return | Name | Description |
|---|---|---|
AComposableCameraLevelSequenceActor |
AComposableCameraLevelSequenceActor¶
AComposableCameraLevelSequenceActor(const FObjectInitializer & ObjectInitializer)
Protected Attributes¶
| Return | Name | Description |
|---|---|---|
TObjectPtr< UCineCameraComponent > |
OutputCineCameraComponent |
Output viewport-terminal CineCamera. Same component the actor's inherited RootComponent field points at — the dedicated UPROPERTY here surfaces it in the Details panel's Components tree so designers can author per-instance lens / filmback / aperture / post-process / focus settings (all the standard UCineCameraComponent properties). Without an explicit UPROPERTY, the native default subobject still exists at runtime but isn't picked up by the Details panel's component-tree walk, so its internals would render uneditable. |
TObjectPtr< UComposableCameraLevelSequenceComponent > |
LevelSequenceComponent |
Logic-and-data driver ActorComponent. Holds the TypeAssetReference (TypeAsset + Parameters / Variables bags), spawns the transient internal CCS camera each tick, and projects the resulting pose onto the CineCamera root component. Not the Actor's root — the CineCamera is, so native UCameraComponent lookups resolve immediately. |
OutputCineCameraComponent¶
TObjectPtr< UCineCameraComponent > OutputCineCameraComponent
Output viewport-terminal CineCamera. Same component the actor's inherited RootComponent field points at — the dedicated UPROPERTY here surfaces it in the Details panel's Components tree so designers can author per-instance lens / filmback / aperture / post-process / focus settings (all the standard UCineCameraComponent properties). Without an explicit UPROPERTY, the native default subobject still exists at runtime but isn't picked up by the Details panel's component-tree walk, so its internals would render uneditable.
VisibleAnywhere on the pointer (component identity is fixed — can't reassign to a different component) plus the standard EditAnywhere flags on UCineCameraComponent's own UPROPERTYs give the desired surface: pointer is read-only (don't replace the component), but the component's properties are designer-editable.
LevelSequenceComponent¶
TObjectPtr< UComposableCameraLevelSequenceComponent > LevelSequenceComponent
Logic-and-data driver ActorComponent. Holds the TypeAssetReference (TypeAsset + Parameters / Variables bags), spawns the transient internal CCS camera each tick, and projects the resulting pose onto the CineCamera root component. Not the Actor's root — the CineCamera is, so native UCameraComponent lookups resolve immediately.
Protected Methods¶
BeginPlay¶
virtual
virtual void BeginPlay()
EndPlay¶
virtual
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason)