All skills
quodsoler avatar

/ue-audio-system

@f3742d7

Use when playing, mixing or debugging sound in Unreal Engine — one-shot SFX, looping ambience, music, dialogue or procedural audio. Also use when the user mentions 'UAudioComponent', 'PlaySoundAtLocation', 'SpawnSoundAttached', 'SoundCue', 'MetaSound', 'UMetaSoundSource', 'SetFloatParameter', 'sound attenuation', 'spatialization', 'occlusion', 'sound concurrency', 'submix', 'audio bus', 'sound mix', 'SetSubmixOutputVolume', 'reverb', 'Quartz', 'audio modulation' or 'subtitles'. For VFX timing, see ue-niagara-effects; for anim-notify sounds, see ue-animation-system; for component lifetime and attachment, see ue-actor-component-architecture.

Use this Skill: https://skilld.dev/gh/quodsoler/unreal-engine-skills/ue-audio-system

This session only. Nothing lands on disk.

referencesaudio-component-reference.md

≈562 tokens on demand. Your agent reads this file only when SKILL.md points to it.

UAudioComponent Routing and Delegates

Code for the per-instance routing calls and the delegate bindings summarised in UAudioComponent Control. Everything here is declared in Components/AudioComponent.h.

Per-instance routing and filtering

These override the asset's routing for one playing instance:

AudioComponent->SetSubmixSend(ReverbSubmix, 0.4f);                 // USoundSubmixBase*, level
AudioComponent->SetSourceBusSendPreEffect(DuckingSourceBus, 1.0f); // also PostEffect / PostAttenuation
AudioComponent->SetAudioBusSendPostEffect(AnalysisAudioBus, 1.0f);
AudioComponent->SetLowPassFilterEnabled(true);
AudioComponent->SetLowPassFilterFrequency(800.0f);
AudioComponent->SetHighPassFilterEnabled(true);
AudioComponent->SetHighPassFilterFrequency(120.0f);
AudioComponent->SetOutputToBusOnly(false);

// Inline attenuation instead of an asset
AudioComponent->bOverrideAttenuation = true;
AudioComponent->AttenuationOverrides.bAttenuate = true;
AudioComponent->AttenuationOverrides.bSpatialize = true;
AudioComponent->AttenuationOverrides.FalloffDistance = 3000.0f;

Delegates

Binding the finish and playback-percent delegates, and unbinding them:

// In the class body:
UFUNCTION()
void OnSoundFinished();

UFUNCTION()
void OnPlaybackPercent(const USoundWave* PlayingSoundWave, const float PlaybackPercent);

void OnSoundFinishedNative(UAudioComponent* Component);

// In BeginPlay:
AudioComponent->OnAudioFinished.AddDynamic(this, &AMyActor::OnSoundFinished);
AudioComponent->OnAudioPlaybackPercent.AddDynamic(this, &AMyActor::OnPlaybackPercent);
AudioComponent->OnAudioFinishedNative.AddUObject(this, &AMyActor::OnSoundFinishedNative);

// In EndPlay:
AudioComponent->OnAudioFinished.RemoveAll(this);
AudioComponent->OnAudioPlaybackPercent.RemoveAll(this);
AudioComponent->OnAudioFinishedNative.RemoveAll(this);

The other delegates with a ...Native twin (AudioComponent.h:441-481) are OnAudioPlayStateChanged, OnAudioVirtualizationChanged, OnAudioSingleEnvelopeValue and OnAudioMultiEnvelopeValue. OnQueueSubtitles (:485) has no twin: it is a single-cast dynamic delegate (DECLARE_DYNAMIC_DELEGATE_TwoParams, :67), bound with BindDynamic.

Source: SKILL.md on GitHub

No alerts2d5 checks · Risk SAFE
  • Gen Agent Trust Hub2d

    No security issues detected. This skill provides expert guidance and C++ implementation patterns for Unreal Engine's audio system, following best practices for performance and platform compatibility.

  • Socket2d

    No alerts

  • Snyk2d

    Risk: LOW · No issues

  • Runlayer6mo

    2 files scanned · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at f3742d7. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 3 days ago
metadata
{
  "version": "2.0.0",
  "engine": "5.8"
}

README badge

README badge for quodsoler/unreal-engine-skills/ue-audio-system