How-To: Expose Camera Options as User Settings

Goal: let players tune the camera from an options menu - field of view, screen-shake intensity, occlusion fade, camera lag, and auto-recenter. CrimsonCamera exposes a runtime setter for each; any system can call them, and on the full Crimson stack CrimsonCore applies a player's saved choices for you.

Prerequisites
A pawn with a UCrimsonCameraComponent and a working third-person mode (Quick Start). For occlusion options, the pawn also has a UCrimsonCameraOcclusionComponent.
On the full stack this is automatic
With CrimsonCore + CrimsonSettings you don't call these setters by hand. Author the camera options in a settings data asset (keys like Camera.FieldOfView) and CrimsonCore's player camera manager reads the saved values and applies them each frame. See the CrimsonSettings wiki -> How-To: Expose Another Plugin's Settings. The setters below are what that layer calls - and what you call directly when using CrimsonCamera standalone.

1. Field of view (absolute override)

Set Field Of View Override sets an absolute FOV applied after the per-mode blend, so every mode renders at that FOV. Pass 0 (or less) to clear it and fall back to each mode's authored FOV.

On FOV slider changed: get the Crimson Camera Component -> Set Field Of View Override (New Field Of View = slider degrees). Set 0 to use the mode's authored FOV.
Verify
Moving the slider changes the live FOV immediately (check with showdebug camera), and it holds when you switch to aim / lock-on.
FOV override is absolute
An override forces the same FOV in every mode - so a narrower authored aim FOV is overridden while the option is set. Clear it (0) to restore per-mode FOVs.

2. Screen-shake intensity

Set Camera Shake Scale stores a persistent multiplier applied to the Scale of every shake played through Play Camera Shake (default 1.0; 0 disables shakes routed through the component).

On shake-intensity slider changed: get the Crimson Camera Component -> Set Camera Shake Scale (New Scale = 0..1).
Applies to component-routed shakes
The multiplier scales shakes played via UCrimsonCameraComponent::PlayCameraShake. Shakes started directly on the player camera manager bypass it.
Verify
Set the scale to 0 and component-routed shakes stop; set 0.5 and the same hit shakes at half strength.

3. Occlusion fade (on/off + strength)

On the pawn's UCrimsonCameraOcclusionComponent, Set Occlusion Enabled(false) turns fading off and snaps any faded geometry back to its original material; Set Occlusion Fade Strength(0..1) sets how far occluders fade.

Get the Crimson Camera Occlusion Component -> Set Occlusion Enabled (bool) and/or Set Occlusion Fade Strength (0..1).
Verify
Turning occlusion off makes a wall between camera and pawn stop fading (any current fade snaps back); the strength slider changes how transparent occluders become.

4. Camera lag & auto-recenter (runtime)

How-To: Add Camera Lag & Recenter sets these once on the mode. To change them live from an options menu, fetch the active third-person mode and call its setters.

Get Camera Mode Instance (or Get Active Camera Mode) -> Cast to your third-person mode -> Set Camera Lag Enabled / Set Camera Lag Speed / Set Auto Recenter Enabled, etc.
Mode-instance state
Lag and recenter live on the mode instance (one per class). Re-apply after a mode switch if you drive them yourself - or let CrimsonCore's apply layer handle re-application for you.
Verify
Moving the lag slider changes how far the camera trails in real time; the change holds until you switch modes (then re-apply, or let CrimsonCore re-apply it).

See also

  • CrimsonSettings wiki -> How-To: Expose Another Plugin's Settings - wire these to a player options screen with zero glue.
  • How-To: Add Camera Lag & Recenter - the mode properties these setters drive.
  • How-To: Fade Occluding Geometry - the occlusion component setup.