SuperAPI AI 工具集

audio-system

通用与其它

查看项目

更新于 10-15 22:40

技能介绍

用途:在 Godot 4.3+ 项目中实现音频系统,示例不含已废弃 API,先给 GDScript 再给 C#。相关技能包括 event-bus(解耦音频触发)、save-load(持久化音频设置)、resource-pattern(音频数据容器)。

主要能力:音频节点分三类——AudioStreamPlayer(非定位,用于音乐、UI、全局音效)、AudioStreamPlayer2D、AudioStreamPlayer3D(定位音效)。音频总线类似调音台,默认有 Master,可添加 Music、SFX、UI 及子总线;每个播放器通过 bus 属性指定目标总线。支持从代码设置总线音量(dB,滑块需用 linear_to_db/db_to_linear 转换)、静音、运行时启停总线效果(混响、延迟、压缩、限幅、低通、高通、合唱、失真、EQ)。空间音频按与 AudioListener2D/3D(或当前相机)的距离调整音量与声像,可设 max_distance、attenuation、max_polyphony、panning_strength;3D 另有 unit_size、max_db、attenuation_model、doppler_tracking。

使用方式:音乐用 OGG Vorbis,短音效用 WAV,避免 MP3 用于音效(开头有静音);循环在 AudioStream 资源导入设置中配置,不在代码里。音乐播放器建议放入 autoload 以跨场景存活,并实现交叉淡入淡出;高频音效使用预实例化的 SFX 池,避免频繁创建节点。设置菜单滑块通过 AudioServer.set_bus_volume_db 接总线音量,并用 ConfigFile 持久化。自适应音乐可用 AudioStreamPlaylist、AudioStreamSynchronized、AudioStreamInteractive(4.3+)。

限制与注意:Godot 4.7 起 AudioStreamPlayer2D/3D 的默认 area_mask 由 1 改为 0,Area 的 audio_bus_override 对默认值播放器失效,需改回 layer 1。常见问题包括播放器未入场景树、总线名不匹配或静音、音乐随场景重启、缺少监听器导致无空间声像、无复音上限、滑块非线性、3D 音源为立体声、WAV 无淡入淡出导致爆音。资料未提供具体价格、平台与效果数据。