135 — Room Acoustic Preset Data Asset (DA_RoomAcousticPreset)
Purpose
Data Asset that defines the acoustic properties of a room or environment. Contains reverb parameters (density, decay time, wet/dry mix), occlusion settings, and per-bus application flags. Used by BP_RoomAudioZone and SS_AudioManager to configure room reverb when the player enters a new acoustic zone.
Dependencies
- Requires:
SS_AudioManager (132 — applies reverb to buses), BP_RoomAudioZone (133 — assigns preset to zone volume)
- Required By:
BP_RoomAudioZone (133 — direct assignment), SS_AudioManager (132 — room transition interpolation), Sound Design Team (primary editor target)
- Engine/Plugin Requirements: MetaSounds plugin (reverb parameters), GameplayTags plugin
Class Info
| Property |
Value |
| Parent Class |
PrimaryDataAsset |
| Class Type |
Data Asset |
| Asset Path |
Content/Framework/Audio/RoomPresets/DA_RoomAcousticPreset.uasset |
| Implements Interfaces |
(none) |
1. Enums
Uses E_AudioBusCategory from SS_AudioManager (132).
2. Structs
Uses S_RoomAcousticProfile from SS_AudioManager (132). Field reference:
| Field |
Type |
Description |
RoomPresetName |
FName |
Identifier for this room preset |
ReverbDensity |
Float (0–1) |
How dense the reverb reflections are |
ReverbDecayTime |
Float (seconds) |
RT60 decay time |
ReverbWetLevel |
Float (0–1) |
Wet/dry mix for reverb |
ReflectionsDelay |
Float (ms) |
Pre-delay before reflections start |
RoomSizeScale |
Float (0.5–3.0) |
Perceived room size |
OcclusionMultiplier |
Float (0–1) |
How much walls occlude sound (0=open, 1=blocked) |
LowPassCutoff |
Float (Hz) |
Low-pass filter cutoff (simulates wall filtering) |
bApplyToSFX |
Boolean |
Apply reverb to SFX bus |
bApplyToAmbience |
Boolean |
Apply reverb to Ambience bus |
bApplyToDialogue |
Boolean |
Apply reverb to Dialogue bus |
TransitionTime |
Float (seconds) |
Crossfade time when entering this room |
3. Variables
Acoustic Profile (Instance Editable)
| Variable |
Type |
Default |
Category |
Description |
AcousticProfile |
S_RoomAcousticProfile |
(preset-specific) |
Acoustic |
Complete acoustic profile struct (see below for per-preset values) |
Meta (Instance Editable)
| Variable |
Type |
Default |
Category |
Description |
PresetDisplayName |
Text |
"Unnamed Preset" |
Meta |
Human-readable name shown in editor dropdowns |
PresetDescription |
Text |
"" |
Meta |
Description of what this preset is for |
bIsDefaultFallback |
Boolean |
false |
Meta |
Is this the default/fallback preset? (Outdoor should be true) |
4. Default Preset Values
DA_RP_Outdoor (Default Fallback)
| Field |
Value |
RoomPresetName |
Outdoor |
ReverbDensity |
0.05 |
ReverbDecayTime |
0.3 |
ReverbWetLevel |
0.05 |
ReflectionsDelay |
5.0 |
RoomSizeScale |
3.0 (max — open space) |
OcclusionMultiplier |
0.0 (no occlusion) |
LowPassCutoff |
20000 (no filtering) |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
1.0 |
DA_RP_SmallRoom
| Field |
Value |
RoomPresetName |
SmallRoom |
ReverbDensity |
0.4 |
ReverbDecayTime |
0.6 |
ReverbWetLevel |
0.25 |
ReflectionsDelay |
15.0 |
RoomSizeScale |
0.8 |
OcclusionMultiplier |
0.3 |
LowPassCutoff |
8000 |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
1.5 |
DA_RP_LargeHall
| Field |
Value |
RoomPresetName |
LargeHall |
ReverbDensity |
0.7 |
ReverbDecayTime |
3.0 |
ReverbWetLevel |
0.5 |
ReflectionsDelay |
40.0 |
RoomSizeScale |
2.5 |
OcclusionMultiplier |
0.1 |
LowPassCutoff |
10000 |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
2.0 |
DA_RP_Cave
| Field |
Value |
RoomPresetName |
Cave |
ReverbDensity |
0.8 |
ReverbDecayTime |
4.5 |
ReverbWetLevel |
0.65 |
ReflectionsDelay |
60.0 |
RoomSizeScale |
2.0 |
OcclusionMultiplier |
0.6 |
LowPassCutoff |
4000 |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
2.5 |
DA_RP_VoidSpace
| Field |
Value |
RoomPresetName |
VoidSpace |
ReverbDensity |
0.15 |
ReverbDecayTime |
8.0 |
ReverbWetLevel |
0.8 |
ReflectionsDelay |
120.0 |
RoomSizeScale |
3.0 |
OcclusionMultiplier |
0.0 (ethereal — no occlusion) |
LowPassCutoff |
3000 |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
3.0 (dramatic slow transition) |
DA_RP_Industrial
| Field |
Value |
RoomPresetName |
Industrial |
ReverbDensity |
0.6 |
ReverbDecayTime |
2.0 |
ReverbWetLevel |
0.4 |
ReflectionsDelay |
25.0 |
RoomSizeScale |
2.2 |
OcclusionMultiplier |
0.4 |
LowPassCutoff |
6000 |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
1.5 |
DA_RP_Bathroom
| Field |
Value |
RoomPresetName |
Bathroom |
ReverbDensity |
0.9 |
ReverbDecayTime |
1.2 |
ReverbWetLevel |
0.55 |
ReflectionsDelay |
8.0 |
RoomSizeScale |
0.6 |
OcclusionMultiplier |
0.7 |
LowPassCutoff |
7000 |
bApplyToSFX |
true |
bApplyToAmbience |
true |
bApplyToDialogue |
true |
TransitionTime |
1.0 |
5. Functions
Public Functions
GetProfileName → FName
- Description: Returns the
RoomPresetName from the acoustic profile. Used for debug display and logging.
- Parameters: (none)
- Blueprint Authority: Any (Pure)
GetTransitionTime → Float
- Description: Returns the crossfade duration. Used by
SS_AudioManager for transition interpolation.
- Parameters: (none)
- Blueprint Authority: Any (Pure)
ShouldApplyToBus → Boolean
- Description: Returns whether this preset should apply reverb to a specific bus category.
- Parameters:
| Param |
Type |
Description |
Bus |
E_AudioBusCategory |
Which bus to check |
- Blueprint Authority: Any (Pure)
6. Blueprint Graph Logic Flow
Room Preset Application (in SS_AudioManager)
7. Data Asset Edibility Notes
Sound Designer Workflow
- Create a new Data Asset:
Miscellaneous → Data Asset → DA_RoomAcousticPreset
- Name it with the
DA_RP_ prefix (e.g., DA_RP_ConcertHall)
- Fill in the
AcousticProfile struct with desired reverb values
- Set
PresetDisplayName and PresetDescription for editor clarity
- Set
TransitionTime based on how dramatic the room change should feel
- Assign the preset to
BP_RoomAudioZone.RoomPreset in level
Creating a New Room Preset
- Duplicate the closest existing preset (e.g., copy
DA_RP_SmallRoom for a closet)
- Adjust values:
- Smaller room → higher
ReverbDensity, lower ReverbDecayTime, lower RoomSizeScale
- Larger room → lower
ReverbDensity, higher ReverbDecayTime, higher RoomSizeScale
- Outdoor → near-zero
ReverbWetLevel, minimal ReflectionsDelay
- Cave/underground → high
ReverbDecayTime, high OcclusionMultiplier, low LowPassCutoff
- Use
bApplyToSFX / bApplyToAmbience / bApplyToDialogue to selectively apply reverb (e.g., dialogue through a radio should NOT get room reverb)
Tuning Guidelines
| Parameter |
Small Room |
Medium Room |
Large Hall |
Outdoor |
Cave |
ReverbDensity |
0.4–0.6 |
0.3–0.5 |
0.6–0.8 |
0.0–0.1 |
0.7–0.9 |
ReverbDecayTime |
0.3–0.8s |
0.8–2.0s |
2.0–4.0s |
0.1–0.5s |
3.0–6.0s |
ReverbWetLevel |
0.15–0.3 |
0.2–0.4 |
0.4–0.6 |
0.0–0.1 |
0.5–0.8 |
ReflectionsDelay |
5–20ms |
15–40ms |
30–60ms |
2–10ms |
40–80ms |
RoomSizeScale |
0.5–1.0 |
1.0–2.0 |
2.0–3.0 |
3.0 |
1.5–2.5 |
LowPassCutoff |
5000–10000Hz |
6000–12000Hz |
8000–16000Hz |
20000Hz |
2000–5000Hz |
8. Communication Matrix
| Who Talks |
How |
What Is Sent |
BP_RoomAudioZone (133) |
Direct: Reference |
Holds a DA_RoomAcousticPreset as RoomPreset variable |
SS_AudioManager (132) |
Function Call: SetRoomPreset(Preset) |
Receives preset, interpolates reverb parameters |
SS_AudioManager (132) |
Function Call: PopRoomPreset() |
Restores previous preset from stack |
| Sound Design Team |
Data Asset Editor |
Edits reverb profiles, transition times |
9. Validation / Testing Checklist
10. Reuse Notes
- Create as many presets as needed per level. Presets are small Data Assets — negligible memory cost.
bApplyToAmbience = false is useful for "music-only" zones (e.g., boss arenas where ambient reverb would muddy the music).
bApplyToDialogue = false is useful for radio/phone conversations — the EQ toggle on the Dialogue bus handles the "radio voice" effect, not room reverb.
- The
TransitionTime field should be tuned carefully: too fast sounds abrupt; too slow feels laggy. 1.0–1.5s is a safe default.
- For open-world streaming, assign the outdoor preset as the global default and place room zones only around enclosed spaces — this minimizes active zone overlap.
Blueprint Spec: DA_RoomAcousticPreset — Room acoustic profile Data Asset. Architecture document: metasounds-audio-system.md