BPC_AtmosphereStateController — Atmosphere State Controller
Blueprint Spec — UE 5.5–5.7
Parent Class
ActorComponent
Dependencies
Purpose
Central atmosphere orchestrator. Manages the overall mood and tension of the environment by coordinating lighting, audio, VFX, and other atmospheric systems based on the current fear state, narrative phase, difficulty bias, and player context. Acts as the single decision point for all ambient presentation, decoupling individual media systems from game logic.
Variables
| Name |
Type |
Description |
CurrentAtmosphereState |
EAtmosphereState |
Active atmosphere preset |
AtmosphereIntensity |
Float (0.0–1.0) |
Global intensity bias |
FearIntensityBias |
Float |
From DifficultyManager |
NarrativeAtmosphereOverride |
EAtmosphereState |
Story-forced atmosphere |
bAllowAtmosphereChanges |
Bool |
Master toggle |
bHasNarrativeOverride |
Bool |
Active story override |
AmbientTransitionTime |
Float |
Seconds for crossfade between states |
CurrentLightingPreset |
FName |
Active lighting key |
CurrentAudioPreset |
FName |
Active ambient audio key |
CurrentVFXPreset |
FName |
Active VFX preset key |
AtmosphereBlendWeight |
Float (0.0–1.0) |
Current crossfade progress |
bIsInPanicMode |
Bool |
Panic state active |
PanicModePreset |
FName |
Preset for panic state |
SafeZonePreset |
FName |
Preset for safe zones |
ExplorationPreset |
FName |
Default exploration preset |
CombatPreset |
FName |
Combat tension preset |
InvestigationPreset |
FName |
Suspense/investigation preset |
AtmospherePresets |
TMap<FName, FAtmospherePreset> |
All registered presets |
Enums
| Enum |
Values |
Description |
EAtmosphereState |
Exploration, Suspense, Combat, Panic, SafeZone, Cinematic, Custom |
Atmosphere modes |
Structs
| Struct |
Fields |
Description |
FAtmospherePreset |
State: EAtmosphereState, LightingKey: FName, AudioAmbienceKey: FName, VFXPresetKey: FName, Intensity: Float, TransitionTime: Float, bLoops: Bool |
Complete atmosphere configuration |
FAtmosphereTransition |
FromState: EAtmosphereState, ToState: EAtmosphereState, Duration: Float, BlendCurve: UCurveFloat |
Transition definition |
Functions
| Name |
Inputs |
Outputs |
Description |
Initialize |
— |
— |
Register presets, bind events |
SetAtmosphere |
State: EAtmosphereState |
— |
Transition to atmosphere state |
SetAtmosphereIntensity |
Intensity: Float |
— |
Override global intensity |
GetCurrentAtmosphere |
— |
EAtmosphereState |
Current state |
RegisterPreset |
Key: FName, Preset: FAtmospherePreset |
— |
Add custom preset |
ApplyNarrativeOverride |
State: EAtmosphereState |
— |
Story-forced atmosphere |
ClearNarrativeOverride |
— |
— |
Return to gameplay atmosphere |
TriggerPanicMode |
— |
— |
Immediate panic atmosphere |
EndPanicMode |
— |
— |
Restore previous atmosphere |
SetTuningBias |
Bias: Float |
— |
From DifficultyManager |
GetPresetForState |
State: EAtmosphereState |
FAtmospherePreset |
Lookup preset |
EvaluateAtmosphere |
— |
— |
Determine best state from inputs |
ApplyPreset |
Preset: FAtmospherePreset |
— |
Push to all subsystems |
BlendToAtmosphere |
TargetState: EAtmosphereState, Duration: Float |
— |
Smooth transition |
Event Dispatchers
| Name |
Parameters |
Fired When |
OnAtmosphereChanged |
NewState: EAtmosphereState, Intensity: Float |
Atmosphere state changes |
OnAtmosphereIntensityChanged |
NewIntensity: Float |
Intensity bias changes |
OnPanicAtmosphereStarted |
— |
Panic mode activated |
OnPanicAtmosphereEnded |
— |
Panic mode deactivated |
OnNarrativeOverrideApplied |
State: EAtmosphereState |
Story override |
Blueprint Flow
Communications With
Reuse Notes
- Single instance on player character or persistent game actor
- All atmosphere presets are data-driven (can be expanded via Data Assets)
- Presets are keyed by FName for extensibility without enum changes
- Narrative overrides take priority over gameplay atmosphere
- Panic mode is a temporary atmosphere state; EndPanicMode restores evaluation
- Subsystems (Lighting, Audio, VFX) are decoupled; AtmosphereStateController only sets keys and intensities
- Blend curves control crossfade smoothness between states
- Renamed from
BPC_AtmosphereController to BPC_AtmosphereStateController per Master naming convention.
- Cross-references updated:
BPC_LightingManager → BPC_LightEventController, BPC_AudioManager → BPC_AudioAtmosphereController → SS_AudioManager (132 — deprecated), BPC_VFXManager removed (not in Master).