SuperAPI AI 工具集

ue-audio-system

通用与其它

查看项目

更新于 10-15 11:43

技能介绍

该技能针对 Unreal Engine 5.8 的音频系统,用于播放、混音与调试声音。资料指出其中 API 已对照 5.8 头文件验证,旧写法列在"Deprecated — do not use"下。覆盖面包括声音资产、从 C++ 播放、衰减、并发、声音类与混音、子混音/总线路由、MetaSounds、调制、Quartz 与音频分析。

涉及模块:引擎侧代码位于 Engine/Classes/Sound 与 Components/AudioComponent.h(模块 Engine),混音器在 AudioMixer,参数接口在 AudioExtensions。插件模块包括 MetasoundEngine / MetasoundFrontend(MetaSounds)、AudioModulation、AudioSynesthesia(5.8 中为 Beta)、SubtitlesAndClosedCaptions(5.8 中为 Beta)。

依赖配置示例(MyGame.Build.cs): PublicDependencyModuleNames.AddRange(new string[] { "Engine", "AudioMixer", "AudioExtensions" }); PrivateDependencyModuleNames.AddRange(new string[] { "MetasoundEngine", "MetasoundFrontend", "AudioModulation" });

按用途分,该技能涵盖以下主题:选择资产类型(wave、cue、MetaSound)与流式加载;在游戏代码中触发声音;淡入淡出、暂停、音量/音高、完成回调与逐实例发送(UAudioComponent 控制);衰减、3D 声像、HRTF、遮挡、混响发送与听众聚焦;声部数过多、脚步/枪声叠加与声部抢占(并发);按类别的音量滑块、闪避与上下文混音(声音类与混音);路由分组、主音量、音频总线与侧链源(子混音、总线与发送);对一组声音施加混响、EQ、压缩(子混音效果);程序化/自适应音频、运行时参数与图构建(MetaSounds);由游戏曲线/LFO 持续控制参数(调制);节拍同步的触发音、速度与音乐量化(Quartz 音乐同步);对音频的响应(FFT、包络、离线节拍图,分析);字幕与对白文本;以及移动端语音预算、专用服务器、后台运行与 VR 等平台注意事项。

声音资产部分给出 USoundBase 的继承结构:USoundWave(导入的 PCM/压缩资产)、USoundSourceBus(将 UAudioBus 声音化)、USoundCue(节点图)、UMetaSoundSource(程序化图,派生自 USoundWaveProcedural)。每个资产上的关键 USoundBase 字段包括 SoundClassObject、AttenuationSettings、ConcurrencySet(或带 bOverrideConcurrency 的 ConcurrencyOverrides)、Priority、SoundSubmixObject、SoundSubmixSends、BusSends / PreEffectBusSends / PostAttenuationBusSends、VirtualizationMode。USoundCue 节点包括随机、调制器、混音器、衰减、循环、延迟、距离交叉淡化、连接器、开关与波形播放器。USoundWave::LoadingBehavior(ESoundWaveLoadingBehavior)取值有 Inherited、RetainOnLoad、PrimeOnLoad、LoadOnDemand、ForceInline;短音效用 ForceInline,长音乐用 LoadOnDemand,可用 GetLoadingBehavior(bCheckSoundClasses) 读取,并用 OverrideLoadingBehavior 在运行时覆盖。资料还以表格对比 USoundCue 与 UMetaSoundSource 在运行时参数、程序化 DSP、能否在 C++ 运行时构建及适用场景上的差异。

播放声音部分说明所有函数为 Kismet/GameplayStatics.h 中的 UGameplayStatics 静态函数,绝不能在专用服务器上调用,并列出 PlaySound2D、PlaySoundAtLocation、SpawnSoundAtLocation、SpawnSoundAttached 的完整签名与示例;OwningActor 是逐属主并发(bLimitToOwner)的键;SpawnSound2D 以 bPersistAcrossLevelTransition、bAutoDestroy 结尾且返回组件,CreateSound2D 返回未播放的组件需自行调用 Play()。选择原则为:一次性音效用即发即忘,需要淡出、停止或改参数的用生成的句柄,逐角色常驻循环用 CreateDefaultSubobject<UAudioComponent> 成员。

UAudioComponent 控制部分介绍其构造与属性(bAutoActivate、bStopWhenOwnerDestroyed、bIsUISound 等)、播放与淡变 API(Play、FadeIn、AdjustVolume、FadeOut、SetVolumeMultiplier、SetPitchMultiplier、SetPaused、Stop)、状态查询(IsPlaying、GetPlayState 及 EAudioComponentPlayState),以及不修改资产情况下的逐实例路由与滤波(SetSubmixSend、SetSourceBusSendPreEffect / PostEffect / PostAttenuation、SetAudioBusSendPostEffect、低通/高通滤波、SetOutputToBusOnly)和内联衰减。委托分动态(AddDynamic)与 Native(AddUObject,附带 UAudioComponent*)两套,成对出现:OnAudioFinished、OnAudioPlayStateChanged、OnAudioVirtualizationChanged、OnAudioPlaybackPercent、OnAudioSingleEnvelopeValue、OnAudioMultiEnvelopeValue,并在 EndPlay 中用 RemoveAll(this) 解绑。

衰减与空间化基于 FSoundAttenuationSettings(派生自 FBaseAttenuationSettings),涉及形状(Sphere、Capsule、Box、Cone)、距离曲线模型(含 NaturalSound)、空间化算法、空气吸收(LPF 半径与频率)、遮挡(追踪通道、低通频率、音量衰减、插值时间)、混响发送(Linear / CustomCurve / Manual)、优先级衰减,以及听众聚焦和 AudioLink 路由控制。

并发部分基于 FSoundConcurrencySettings,可设置 MaxCount、bLimitToOwner、ResolutionRule(多种抢占规则)、RetriggerTime、VoiceStealReleaseTime、VolumeScaleMode 等,建议每类声音家族共用一个并发资产。声音类与混音部分介绍 USoundClass 的层级与属性、USoundMix 的 SoundClassEffects 与 FadeInTime,以及 SetBaseSoundMix、PushSoundMixModifier、PopSoundMixModifier、ClearSoundMixModifiers、SetSoundMixClassOverride、ClearSoundMixClassOverride 等调用;并给出声音类用于游戏驱动闪避、子混音输出音量用于玩家音量滑块的区分。

子混音、总线与发送部分给出 USoundSubmixBase 的继承结构,子混音输出音量/干湿级、运行时重设父级,以及 bMuteWhenBackgrounded 的建议;FSoundSubmixSendInfo 与 FSoundSourceBusSendInfo 的字段(控制方法、发送级或距离区间、自定义曲线、5.8 中的 LPF/HPF 滤波对);UAudioBus 作为运行时补丁点的用途与启动/注册/查询/注销/停止的调用。子混音效果部分说明 SubmixEffectChain 与随附预设(混响、EQ、动态处理器),并以混响为例展示创建设置、AddSubmixEffect、RemoveSubmixEffect、RemoveSubmixEffectAtIndex,指出 SetSettings 是线程安全的。资料在子混音效果处的 RemoveSubmixEffectAtIndex 调用处被截断。

关于具体价格、收费方式、平台支持范围与效果等事实,资料中暂未提供。