Unreal Engine Blueprint — Audio Logic & Asset Management
Handle Blueprint audio logic: game event detection, parameter wiring to MetaSounds/Wwise, asset scanning, and audio component setup.
Blueprint Audio Architecture
Blueprints are the WHEN layer — they detect game events and route parameters to audio systems:
Game Event (overlap, anim notify, input)
→ Blueprint Logic (detect, filter, transform)
→ Audio Action (play sound, set RTPC, post event)
Audio Blueprint Nodes
Playback
| Node | Use | Spatial |
|---|
PlaySound2D | UI, non-positional audio | No |
PlaySoundAtLocation | One-shot 3D sound | Yes |
SpawnSoundAtLocation | Persistent 3D sound (returns component) | Yes |
SpawnSound2D | Persistent non-spatial | No |
Dialogue
| Node | Use |
|---|
PlayDialogue2D | Non-spatial dialogue |
PlayDialogueAtLocation | 3D dialogue |
SpawnDialogue2D | Persistent non-spatial dialogue |
SpawnDialogueAtLocation | Persistent 3D dialogue |
Mixing
| Node | Use |
|---|
SetSoundMixClassOverride | Override sound class volumes |
ClearSoundMixClassOverride | Remove overrides |
PushSoundMixModifier | Activate sound mix |
PopSoundMixModifier | Deactivate sound mix |
SetGlobalPitchModulation | Global pitch shift |
Wwise (via AkAudio plugin)
| Node | Use |
|---|
PostEvent | Trigger Wwise event |
SetRTPCValue | Set RTPC parameter |
SetSwitch | Set switch group value |
SetState | Set global state |
PostTrigger | Post Wwise trigger |
Game Event Patterns
Animation Notify → Sound
AnimNotify_Footstep
→ Line Trace Down (surface detect)
→ Set Switch (Surface = result)
→ PostEvent (Play_Footstep)
Overlap Volume → Ambient
OnBeginOverlap
→ Set RTPC (Ambient_Volume = 1.0)
OnEndOverlap
→ Set RTPC (Ambient_Volume = 0.0)
State Change → Weather Audio
OnWeatherChanged (Rain/Snow/Wind/Clear)
→ Set State (Weather = new_state)
→ Set RTPC (Wind_Intensity = value)
Damage → Impact Sound
OnHit / OnDamageReceived
→ Get Hit Result (surface, location, normal)
→ SpawnSoundAtLocation (location, rotation from normal)
→ Set Switch (Material = physical material)
Player Movement → Audio Params
Tick / Timer
→ Get Velocity → Vector Length
→ Set RTPC (Player_Speed = length)
→ Set RTPC (Player_Height = Z position)
Blueprint Scanning
The MCP plugin can deep-scan Blueprint graphs for audio-relevant nodes.
Scan Commands (via TCP plugin)
// List all project Blueprints
{"action": "list_assets", "class_filter": "Blueprint"}
// Scan one BP for audio nodes
{"action": "scan_blueprint", "asset_path": "/Game/BP_Player", "audio_only": true, "include_pins": true}
// List MetaSounds assets
{"action": "list_assets", "class_filter": "MetaSoundSource"}
// List all sound waves
{"action": "list_assets", "class_filter": "SoundWave"}
Batch Project Scan
python scripts/scan_project.py --full-export --import-db --rebuild-embeddings
Scans all BPs + MetaSounds graphs, imports to SQLite, rebuilds TF-IDF embeddings.
Scan Output Structure
{
"blueprint_name": "BP_Player",
"parent_class": "Character",
"total_nodes": 245,
"graphs": [
{
"graph_name": "EventGraph",
"nodes": [
{
"type": "CallFunction",
"function": "PlaySoundAtLocation",
"is_audio": true,
"pins": [...]
}
]
}
],
"audio_summary": {
"total_audio_nodes": 4,
"functions": ["PlaySoundAtLocation", "SetRTPCValue"],
"events": ["Play_Footstep"],
"components": ["AkComponent"]
}
}
Audio Detection Keywords
Sound, Audio, Ak, Wwise, MetaSound, RTPC, PostEvent, SoundCue, SoundWave, AudioComponent, AkComponent, SoundClass, SoundMix, Attenuation, Reverb, Submix, AudioVolume, AmbientSound, DialogueWave, SoundBase
Asset Types (class_filter values)
| Filter | What |
|---|
Blueprint | All Blueprints |
WidgetBlueprint | UI Blueprints |
AnimBlueprint | Animation Blueprints |
MetaSoundSource | MetaSounds Source assets |
MetaSoundPatch | MetaSounds Patch assets |
SoundWave | Imported audio files |
SoundCue | Legacy Sound Cue graphs |
SoundAttenuation | Attenuation settings |
SoundClass | Sound classification |
SoundConcurrency | Concurrency rules |
SoundMix | Mix presets |
ReverbEffect | Reverb settings |
Blueprint ↔ MetaSounds Wiring
Exposing MetaSounds Parameters to Blueprint
- Add graph input in MetaSounds (Float, Int32, Trigger)
- In Blueprint, get AudioComponent reference
- Call
SetFloatParameter / SetIntParameter / SetTriggerParameter
AudioComponent → SetFloatParameter("Cutoff", 2000.0)
AudioComponent → SetTriggerParameter("Fire")
Blueprint ↔ Wwise Wiring
- Create GameParameter in Wwise (e.g., "Player_Speed")
- In Blueprint, call
SetRTPCValue("Player_Speed", velocity)
- In Wwise, map RTPC to volume/pitch/filter curves
Available MCP Tools (Python)
| Tool | Function |
|---|
bp_search | Search knowledge DB for Blueprint nodes |
bp_node_info | Get detailed node specification |
bp_list_categories | List Blueprint node categories |
bp_call_function | Execute allowlisted function via plugin |
bp_list_assets | List project assets by class |
bp_scan_blueprint | Deep-scan BP graph for audio nodes |
UE4 → UE5 Conversion Map
| UE4 Sound Cue | UE5 MetaSounds |
|---|
| Attenuation | UE.Attenuation interface |
| Concatenator | Trigger Sequence → Wave Players |
| Crossfade by Distance | Map Range + Crossfade |
| Delay | Trigger Delay |
| Doppler | Doppler Pitch Shift |
| Looping | Wave Player Loop=true |
| Mixer | Add (Audio) |
| Modulator | Random Get → Multiply |
| Oscillator | Sine/Saw/Square/Triangle |
| Random | Random Get |
| Sound Wave Player | Wave Player |
| Branch | Trigger Route |
| Continuous Modulator | LFO |
| Switch | Trigger Route + graph input |
Source Files
- Blueprint tools:
src/ue_audio_mcp/tools/blueprints.py
- Knowledge DB:
src/ue_audio_mcp/knowledge/db.py (tables: blueprint_audio, blueprint_core, blueprint_nodes_scraped, project_blueprints)
- Tutorials:
src/ue_audio_mcp/knowledge/tutorials.py
- Scan script:
scripts/scan_project.py
- BP scraper:
scripts/scrape_blueprint_api.py
- C++ scan command:
ue5_plugin/UEAudioMCP/Source/UEAudioMCP/Private/Commands/QueryCommands.cpp
$ARGUMENTS