How-To: Switch Camera Modes
Goal: change which camera mode is active - either by pushing/popping overrides on events, or by selecting a mode from game state every frame.
Prerequisites
You completed Quick Start (a working third-person mode).
Option A - Push / pop on events (recommended)
Push an override when something starts (aim, mount, cutscene) and pop it when it ends. Each override is keyed by an owner tag: re-pushing with the same tag replaces it, popping with the same tag removes it. The most-recently-pushed override wins. This works identically in Blueprint and C++.
Verify
Holding aim blends to the aim mode; releasing blends back to the underlying mode.
Option B - Select per frame from state
When no override is active, the component asks Determine Camera Mode every tick which mode to run. Override it to return a mode class computed from game state. Overrides (Option A) still take precedence when present.
Override needs a component subclass
Determine Camera Mode is overridden on the component, so add a Blueprint subclass of Crimson Camera Component to your pawn (rather than the base component) to override it. If you can't swap the component, use Option A (Push Camera Mode) - it needs no subclass.Blueprint vs C++
Blueprint overrides the
Determine Camera Mode event; C++ can instead bind DetermineCameraModeDelegate. The event's default implementation runs the delegate, so both paths coexist.See also
- Concept: Mode Selection & Overrides - precedence, the override stack, and when to use each option.
- Concept: The Mode Stack & Blending - how blend time, function, and weight shape transitions.