Concept: The Mode Stack & Blending
UCrimsonCameraComponent owns a UCrimsonCameraModeStack. Each frame the component decides which mode should be on top, the stack ensures that mode is present, and then it blends every active mode's output (FCrimsonCameraModeView - location, rotation, control rotation, FOV) by weight into the final view.
How a mode produces a view
A mode fills its View in Update View (a BlueprintNativeEvent). The default third-person implementation reads the pivot (Get Pivot Location / Get Pivot Rotation), applies the pitch-driven offset curves, then runs penetration avoidance. Subclasses override Update View (or just the pivot getters) to change behavior.
Blending
| Property | Effect |
|---|---|
BlendTime | Seconds for a newly-pushed mode to reach full weight. |
BlendFunction | Linear / EaseIn / EaseOut / EaseInOut - the curve shape of the transition. |
BlendExponent | Sharpness of the Ease functions. |
When weight reaches the top mode, lower modes are fully blended out and dropped. This is why pushing a new mode looks like a smooth transition rather than a cut.
Get Camera Mode Instance can hand you the live instance to drive. Shoulder and zoom are not per-mode; they're shared on the component (see Concept: Shared Camera State).