#include <ComposableCameraShot.h>
Aim layer — decides camera ROTATION (Position is already determined by the Placement layer). See spec §4.4.
Public Attributes¶
| Return | Name | Description |
|---|---|---|
FComposableCameraAnchorSpec |
AimAnchor |
Where in the world the camera LOOKS AT. Independent of Placement's anchor — when they differ, you get OTS / two-shot framing for free. Resolved from the Shot's Targets list (or a fixed world point). |
EShotAimMode |
Mode |
Selects how Rotation is computed. Currently a single mode (LookAtAnchor); kept as an enum for symmetry with PlacementMode and future expansion (e.g. ManualEuler). |
FVector2D |
ScreenPosition |
Where the resolved aim anchor should land on screen, normalized to [-0.5, 0.5]². With AimZones.bEnabled == false (V1 default) this is a hard rotation constraint — the closed-form solver satisfies it exactly via SolveCameraRotationForScreenTarget every frame. With AimZones.bEnabled == true this becomes the target position the anchor is damped toward (and the center of the zone rectangles). |
FShotScreenZones |
AimZones |
Cinemachine-style screen-space framing zones for Aim.ScreenPosition. Only meaningful for AimMode == LookAtAnchor (NoOp ignores ScreenPosition entirely). When enabled the closed-form rotation solver runs against the zone-derived effective screen target instead of the raw authored ScreenPosition — see [FShotScreenZones](FShotScreenZones.md#fshotscreenzones) for the algorithm. |
AimAnchor¶
FComposableCameraAnchorSpec AimAnchor
Where in the world the camera LOOKS AT. Independent of Placement's anchor — when they differ, you get OTS / two-shot framing for free. Resolved from the Shot's Targets list (or a fixed world point).
Mode¶
EShotAimMode Mode =
Selects how Rotation is computed. Currently a single mode (LookAtAnchor); kept as an enum for symmetry with PlacementMode and future expansion (e.g. ManualEuler).
ScreenPosition¶
FVector2D ScreenPosition = FVector2D::ZeroVector
Where the resolved aim anchor should land on screen, normalized to [-0.5, 0.5]². With AimZones.bEnabled == false (V1 default) this is a hard rotation constraint — the closed-form solver satisfies it exactly via SolveCameraRotationForScreenTarget every frame. With AimZones.bEnabled == true this becomes the target position the anchor is damped toward (and the center of the zone rectangles).
AimZones¶
FShotScreenZones AimZones
Cinemachine-style screen-space framing zones for Aim.ScreenPosition. Only meaningful for AimMode == LookAtAnchor (NoOp ignores ScreenPosition entirely). When enabled the closed-form rotation solver runs against the zone-derived effective screen target instead of the raw authored ScreenPosition — see [FShotScreenZones](FShotScreenZones.md#fshotscreenzones) for the algorithm.