235 lines
9.8 KiB
Markdown
235 lines
9.8 KiB
Markdown
# 134 — Audio Settings Data Asset (`DA_AudioSettings`)
|
||
|
||
## Purpose
|
||
Central configuration Data Asset for the MetaSounds Audio System. Holds all default bus configurations, volume defaults, pooling limits, ducking amounts, and accessibility settings. Loaded by `SS_AudioManager` on initialization to configure all 4 MetaSound buses.
|
||
|
||
## Dependencies
|
||
- **Requires:** `SS_AudioManager` (132 — loads this DA on init), MetaSound sources (`MS_MasterBus`, `MS_SFXBus`, `MS_AmbientBus`, `MS_MusicBus`, `MS_DialogueBus`)
|
||
- **Required By:** `SS_AudioManager` (132 — direct consumer), Sound Design Team (primary editor target)
|
||
- **Engine/Plugin Requirements:** MetaSounds plugin, GameplayTags plugin
|
||
|
||
## Class Info
|
||
| Property | Value |
|
||
|----------|-------|
|
||
| **Parent Class** | `PrimaryDataAsset` |
|
||
| **Class Type** | Data Asset |
|
||
| **Asset Path** | `Content/Framework/Audio/DA_AudioSettings.uasset` |
|
||
| **Implements Interfaces** | *(none)* |
|
||
|
||
---
|
||
|
||
## 1. Enums
|
||
|
||
*Uses E_AudioBusCategory from `SS_AudioManager` (132).*
|
||
|
||
---
|
||
|
||
## 2. Structs
|
||
|
||
*Uses `S_AudioBusConfig` and `S_RoomAcousticProfile` from `SS_AudioManager` (132).*
|
||
|
||
---
|
||
|
||
## 3. Variables
|
||
|
||
### Bus Configuration (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `SFXBusConfig` | `S_AudioBusConfig` | *(see defaults below)* | `Bus Config` | SFX bus configuration |
|
||
| `AmbienceBusConfig` | `S_AudioBusConfig` | *(see defaults below)* | `Bus Config` | Ambience bus configuration |
|
||
| `MusicBusConfig` | `S_AudioBusConfig` | *(see defaults below)* | `Bus Config` | Music bus configuration |
|
||
| `DialogueBusConfig` | `S_AudioBusConfig` | *(see defaults below)* | `Bus Config` | Dialogue bus configuration |
|
||
|
||
### Volume Defaults (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `DefaultMasterVolume` | `Float` | `1.0` | `Volume` | Default master volume (0–1) |
|
||
| `DefaultSFXVolume` | `Float` | `0.85` | `Volume` | Default SFX volume (0–1) |
|
||
| `DefaultMusicVolume` | `Float` | `0.80` | `Volume` | Default music volume (0–1) |
|
||
| `DefaultAmbientVolume` | `Float` | `0.75` | `Volume` | Default ambient volume (0–1) |
|
||
| `DefaultDialogueVolume` | `Float` | `1.0` | `Volume` | Default dialogue volume (0–1) |
|
||
|
||
### Pool & Limits (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `SFXPoolSize` | `Integer` | `32` | `Pool` | Max concurrent SFX audio components |
|
||
| `MaxConcurrentDialogue` | `Integer` | `2` | `Dialogue` | Max simultaneous dialogue lines |
|
||
| `MaxWeaponFireVoices` | `Integer` | `8` | `SFX Sub-mix` | Max concurrent weapon fire sounds |
|
||
| `MaxFootstepVoices` | `Integer` | `4` | `SFX Sub-mix` | Max concurrent footstep sounds |
|
||
| `MaxImpactVoices` | `Integer` | `8` | `SFX Sub-mix` | Max concurrent impact sounds |
|
||
|
||
### Ducking Configuration (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `DialogueDuckSFX` | `Float` | `0.5` | `Ducking` | SFX volume multiplier during dialogue (1.0 = no duck, 0.5 = -6dB) |
|
||
| `DialogueDuckAmbience` | `Float` | `0.25` | `Ducking` | Ambience volume multiplier during dialogue (-12dB) |
|
||
| `DialogueDuckMusic` | `Float` | `0.125` | `Ducking` | Music volume multiplier during dialogue (-18dB) |
|
||
| `DuckTransitionTime` | `Float` | `0.3` | `Ducking` | Ducking fade-in/out time (seconds) |
|
||
|
||
### Accessibility (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `bMonoAudioDefault` | `Boolean` | `false` | `Accessibility` | Default mono audio state |
|
||
| `DefaultBalance` | `Float` | `0.0` | `Accessibility` | Default L/R balance (-1.0 = left, 0.0 = center, 1.0 = right) |
|
||
| `bAudioCuesForUI` | `Boolean` | `false` | `Accessibility` | Play confirmation SFX on UI button presses |
|
||
|
||
### MetaSound Source References (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `MasterBusSource` | `UMetaSoundSource` | `None` | `MetaSound Ref` | `MS_MasterBus` MetaSound patch |
|
||
| `SFXBusSource` | `UMetaSoundSource` | `None` | `MetaSound Ref` | `MS_SFXBus` MetaSound patch |
|
||
| `AmbientBusSource` | `UMetaSoundSource` | `None` | `MetaSound Ref` | `MS_AmbientBus` MetaSound patch |
|
||
| `MusicBusSource` | `UMetaSoundSource` | `None` | `MetaSound Ref` | `MS_MusicBus` MetaSound patch |
|
||
| `DialogueBusSource` | `UMetaSoundSource` | `None` | `MetaSound Ref` | `MS_DialogueBus` MetaSound patch |
|
||
|
||
### Room Defaults (Instance Editable)
|
||
|
||
| Variable | Type | Default | Category | Description |
|
||
|----------|------|---------|----------|-------------|
|
||
| `DefaultRoomPreset` | `DA_RoomAcousticPreset` | `DA_RP_Outdoor` | `Room` | Fallback room preset when no zone is active |
|
||
| `RoomPresetList` | `Array<DA_RoomAcousticPreset>` | *(all presets)* | `Room` | All available room presets (populates SS_AudioManager.RoomPresets) |
|
||
|
||
---
|
||
|
||
## 4. Default Bus Configurations
|
||
|
||
### SFX Bus Default Config
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| `BusCategory` | `SFX` |
|
||
| `DefaultVolume` | `0.85` |
|
||
| `MetaSoundSource` | `MS_SFXBus` |
|
||
| `bSpatialized` | `true` |
|
||
| `AttenuationSettings` | `ATT_DefaultSFX` |
|
||
| `MaxConcurrentSounds` | `32` |
|
||
| `DuckingPriority` | `10` |
|
||
| `DuckAmount` | `0.5` |
|
||
| `SettingsBindingTag` | `Settings.Audio.SFXVolume` |
|
||
|
||
### Ambience Bus Default Config
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| `BusCategory` | `Ambience` |
|
||
| `DefaultVolume` | `0.75` |
|
||
| `MetaSoundSource` | `MS_AmbientBus` |
|
||
| `bSpatialized` | `false` |
|
||
| `AttenuationSettings` | *(none — stereo)* |
|
||
| `MaxConcurrentSounds` | `1` |
|
||
| `DuckingPriority` | `5` |
|
||
| `DuckAmount` | `0.25` |
|
||
| `SettingsBindingTag` | `Settings.Audio.AmbientVolume` |
|
||
|
||
### Music Bus Default Config
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| `BusCategory` | `Music` |
|
||
| `DefaultVolume` | `0.80` |
|
||
| `MetaSoundSource` | `MS_MusicBus` |
|
||
| `bSpatialized` | `false` |
|
||
| `AttenuationSettings` | *(none — stereo)* |
|
||
| `MaxConcurrentSounds` | `4` (layers) |
|
||
| `DuckingPriority` | `20` |
|
||
| `DuckAmount` | `0.125` |
|
||
| `SettingsBindingTag` | `Settings.Audio.MusicVolume` |
|
||
|
||
### Dialogue Bus Default Config
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| `BusCategory` | `Dialogue` |
|
||
| `DefaultVolume` | `1.0` |
|
||
| `MetaSoundSource` | `MS_DialogueBus` |
|
||
| `bSpatialized` | `true` |
|
||
| `AttenuationSettings` | `ATT_Dialogue` |
|
||
| `MaxConcurrentSounds` | `2` |
|
||
| `DuckingPriority` | `100` |
|
||
| `DuckAmount` | `1.0` (ducks all other buses) |
|
||
| `SettingsBindingTag` | `Settings.Audio.DialogueVolume` |
|
||
|
||
---
|
||
|
||
## 5. Functions
|
||
|
||
### Public Functions
|
||
|
||
#### `GetDefaultBusConfig` → `S_AudioBusConfig`
|
||
- **Description:** Returns the bus config for a given category.
|
||
- **Parameters:**
|
||
| Param | Type | Description |
|
||
|-------|------|-------------|
|
||
| `Bus` | `E_AudioBusCategory` | Which bus to get config for |
|
||
- **Blueprint Authority:** Any (Pure)
|
||
|
||
#### `GetDefaultVolume` → `Float`
|
||
- **Description:** Returns the default volume for a bus category.
|
||
- **Parameters:**
|
||
| Param | Type | Description |
|
||
|-------|------|-------------|
|
||
| `Bus` | `E_AudioBusCategory` | Which bus |
|
||
- **Blueprint Authority:** Any (Pure)
|
||
|
||
---
|
||
|
||
## 6. Data Asset Edibility Notes
|
||
|
||
### Sound Designer Workflow
|
||
1. Open `DA_AudioSettings` in the Content Browser
|
||
2. Assign MetaSound source references to each bus
|
||
3. Adjust default volumes per bus
|
||
4. Configure ducking amounts for dialogue priority
|
||
5. Set SFX pool size and sub-mix voice limits
|
||
6. Assign default room preset
|
||
7. Changes take effect on next game launch (no recompile needed)
|
||
|
||
### Platform-Specific Variants
|
||
- Maintain separate `DA_AudioSettings` Data Assets per platform if needed:
|
||
- `DA_AudioSettings_PC` — Higher pool size (32), full spatialization
|
||
- `DA_AudioSettings_Console` — Reduced pool (24), optimized attenuation
|
||
- `DA_AudioSettings_Mobile` — Minimal pool (16), simplified reverb
|
||
|
||
---
|
||
|
||
## 7. Communication Matrix
|
||
|
||
| Who Talks | How | What Is Sent |
|
||
|-----------|-----|-------------|
|
||
| `SS_AudioManager` (132) | `Direct: Load Data Asset` on Initialize | Reads all bus configs, volumes, pool settings |
|
||
| `SS_AudioManager` (132) | `Function Call: GetDefaultBusConfig` | Queries `S_AudioBusConfig` per category |
|
||
| Sound Design Team | Data Asset Editor | Edits bus configs, MetaSound refs, ducking params |
|
||
|
||
---
|
||
|
||
## 8. Validation / Testing Checklist
|
||
|
||
- [ ] All 4 `BusConfig` structs have non-null `MetaSoundSource` references
|
||
- [ ] SFX `bSpatialized = true`, Ambience/Music `bSpatialized = false`
|
||
- [ ] Dialogue `DuckingPriority = 100` (highest)
|
||
- [ ] Dialogue ducking multipliers: SFX > Ambience > Music (more duck for music)
|
||
- [ ] `SFXPoolSize` between 16–64 (reasonable range)
|
||
- [ ] `MaxConcurrentDialogue <= 2` (prevents overlapping VO chaos)
|
||
- [ ] Volume defaults between 0.0 and 1.0
|
||
- [ ] `DialogueDuck*` multipliers between 0.0 and 1.0
|
||
- [ ] `DefaultRoomPreset` not null
|
||
- [ ] `RoomPresetList` contains all expected room presets
|
||
- [ ] Platform variants have appropriate pool sizes for target hardware
|
||
- [ ] Edge case: Null MetaSound source → SS_AudioManager logs warning and disables that bus
|
||
|
||
---
|
||
|
||
## 9. Reuse Notes
|
||
|
||
- This Data Asset is the **sound designer's control panel** for the entire audio system.
|
||
- `S_AudioBusConfig` fields are exposed directly — no blueprint access required to tune bus behavior.
|
||
- The `SettingsBindingTag` on each bus config maps to the persistent settings key, enabling the settings UI to discover available audio sliders automatically.
|
||
- Ducking amounts use multiplicative volume (not additive dB) for simplicity — a value of 0.5 means "reduce to 50% volume when dialogue is active."
|
||
- Voice limiting per sub-mix (WeaponFire=8, Footsteps=4, Impacts=8) prevents a single audio category from drowning out others.
|
||
|
||
---
|
||
|
||
*Blueprint Spec: DA_AudioSettings — Central configuration for MetaSounds audio buses. Architecture document: [`metasounds-audio-system.md`](../../architecture/metasounds-audio-system.md)*
|