SuperAPI AI 工具集

roblox-audio

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:在 Roblox 中实现声音与音乐,覆盖两套并存的系统。Audio API 为模块化当前方案,链路为 AudioPlayer → Wire →(AudioEmitter…AudioListener)→ Wire → AudioDeviceOutput,效果对象插入链路中;语音聊天处理、混音图、分析器、语音合成/识别必须用它。经典 Sound 仍受支持:单个对象,父级设为部件即 3D,设为 SoundService/UI 即 2D,经 SoundGroup 与 SoundEffect 子级路由,适合简单游戏与既有代码。同一功能不要混用两套,跟随项目现有做法。

主要能力:2D 音频(音乐、UI)在客户端创建 AudioPlayer,设置 Asset(AssetId 已弃用)、Looping、Volume,用 AudioFader 统一控制音量,再经 Wire 连到 AudioDeviceOutput。3D 音频把 AudioEmitter 放在部件/附件上,Wire 连接 AudioPlayer → AudioEmitter;监听由 SoundService.ListenerLocation 控制默认 AudioListener(相机或角色),AudioListener → AudioDeviceOutput 在默认设置下自动完成;距离衰减与方向性在发射器/监听器上设置,AudioEmitter:SetDistanceAttenuation 与 AudioInteractionGroup 字符串属性决定谁听到什么。经典 Sound 可用 SoundGroup 分组调音量,设置 RollOffMaxDistance,父级到部件为 3D,父级到 SoundService/UI 为 2D,用 SoundService:PlayLocalSound 播放仅客户端 UI 点击音。

使用方式与注意:客户端启动的声音仅该客户端听到(UI、本地反馈、玩家自选音乐);服务端启动会复制给所有人,应少用,优先用远程事件让各客户端本地播放,以便各自应用音量设置。SoundService.RespectFilteringEnabled 默认为 true 时客户端播放的声音不复制。流式加载中,被流出的部件内的声音或发射器会停止,环境音应放在常驻模型或 SoundService。资源须为自有并上传到与体验相同的所有者(用户/群组),或 Creator Store 标注免费使用的音频;他人私有音频除非共享给体验否则不播放,注意 Output 中的加载失败/权限错误。上传会自动分类为音效或歌曲。关键声音可用 ContentProvider:PreloadAsync 预加载,但不要全部预加载以免拖慢加入;频繁播放的声音应做对象池。

附加能力:效果器包括 AudioEqualizer、AudioCompressor、AudioReverb、AudioEcho、AudioChorus、AudioDistortion、AudioFlanger、AudioPitchShifter、AudioTremolo、AudioFilter、AudioLimiter、AudioAnalyzer(读取响度/频谱做可视化);AudioTextToSpeech 与 AudioSpeechToText;语音聊天中每个玩家的 AudioDeviceInput 可经效果器接线实现电台、对讲、距离感,需尊重玩家语音设置。建议为玩家提供独立的音乐/音效音量滑块与静音选项。相关技能:roblox-ui、roblox-architecture、roblox-performance。