Modifiers target camera node classes and change node parameters before evaluation. See Concepts -> Modifiers for lifecycle and gameplay guidance.

UComposableCameraNodeModifierDataAsset

Concrete data asset. This is the object gameplay code adds and removes.

Field Type Purpose
Modifiers TArray<UComposableCameraModifierBase*> Instanced wrapper entries. Each entry is either Node Type override mode or Custom Modifier Class mode.
OverrideEnterTransition UComposableCameraTransitionBase* Optional transition used when adding this asset changes the effective modifier set.
OverrideExitTransition UComposableCameraTransitionBase* Optional transition used when removing this asset changes the effective modifier set.
CameraTagQuery FGameplayTagQuery Boolean tag expression selecting which camera tag containers match this asset. Empty matches all cameras.
CameraTags FGameplayTagContainer Deprecated legacy tag list. Migrated to an ANY query during load.
Priority int32 Higher value wins when multiple matching assets target the same node class.

Registered in the Content Browser under Composable Camera System -> Node Modifier Data Asset.

UComposableCameraModifierBase

Base wrapper and legacy extension class.

Field or function Purpose
bUseCustomModifierClass Selects Custom Modifier Class mode. False means generic Node Type override mode.
NodeTemplate Node Type override template. Checked properties copy from this template into matching runtime nodes.
OverrideProperties Serialized property names enabled for Node Type mode.
CustomModifier Instanced user-authored modifier object used in Custom Modifier Class mode.
NodeClass Legacy/custom target class. Generic wrappers derive the target from NodeTemplate.
ApplyModifier(Node) Blueprint event used by custom modifier subclasses.

Node Type Overrides

In Node Type mode, choose a camera node class and check the properties that should be overridden. Only editable, non-transient, non-deprecated, top-level node properties are eligible. Properties marked with NoModifierOverride are intentionally hidden.

Checked fields are applied before node initialization and are protected from pin auto-resolution for that activation. That means a checked modifier value outranks the same field's graph wire, exposed parameter, and authored default.

Custom Modifier Class

Custom mode owns an instanced user-authored subclass of UComposableCameraModifierBase. The nested modifier supplies NodeClass and receives the legacy ApplyModifier(Node) Blueprint event after initialization.

Use this mode when the modifier needs logic instead of a static property copy.

Matching and Priority

The modifier manager filters active assets through CameraTagQuery, then resolves one winner per node class by Priority. Empty queries match every camera. Legacy CameraTags data keeps its previous "any of these tags" behavior after migration.

There is no additive stacking for the same node class. Put related same-node effects in one modifier entry if they need to combine.

Transitions

When an add/remove changes the effective set, the PCM reactivates the current camera. OverrideEnterTransition and OverrideExitTransition on the modifier asset can override that blend for the add/remove event. If they are unset, normal camera transition resolution applies.

Non-Transient Cameras Only

Transient cameras skip modifier resolution. Clear bIsTransient if a cinematic or temporary camera must respond to modifiers.

See Also