关于 roblox-audio
面向 Roblox 音频开发的技能指南,涵盖旧版 Sound 对象与模块化 AudioPlayer/Wire 系统,供实现播放、空间音效、混音和动态效果时参考。
主要功能
- 01旧版与模块化音频系统
- 022D 与 3D 音频连接
- 03SoundGroup 混音及音效
- 04音频预加载与单次音效
- 05客户端音效播放注意事项
适用场景
- 01为游戏添加背景音乐和音效
- 02配置空间音频及衰减范围
- 03设置音乐与音效的独立音量
- 04避免服务器播放延迟影响反馈
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-audio安装后在 Claude Code 中输入/roblox-audio确认已加载。
附带文件references/full.md
详细介绍
Roblox Audio
何时加载
在实现音频播放、空间/3D 声音、背景音乐、音效、音频混音(SoundGroups)或动态效果时加载。涵盖旧版 Sound 对象和新版模块化 AudioPlayer/Wire 系统。
快速参考
两套系统:旧版(Sound/SoundGroup/SoundEffect):更简单。新版模块化系统(AudioPlayer/AudioEmitter/Wire/AudioDeviceOutput):新项目首选;语音聊天必需。
声音放置位置:作为 BasePart 子项 → 体积声源。Attachment/MeshPart → 点声源。SoundService/Workspace → 全局(背景音乐/UI)。
旧版设置:
local s = Instance.new("Sound")
s.SoundId = "rbxassetid://ID"; s.Looped = true; s.Volume = 0.25
s.RollOffMode = Enum.RollOffMode.InverseTapered
s.RollOffMinDistance = 10; s.RollOffMaxDistance = 100
s.Parent = SoundService; s:Play()
SoundGroups(混音器):将 SoundGroup 嵌套在 Master 下,以便玩家分别调节音乐和音效的音量。bgMusic.SoundGroup = musicGroup。将效果(ReverbSoundEffect、EqualizerSoundEffect、CompressorSoundEffect 等)设为 Sound/SoundGroup 的父项。闪避:在音乐上使用 SideChain = sfxGroup 的 CompressorSoundEffect。
新版模块化系统:2D:AudioPlayer → Wire → AudioDeviceOutput。3D:AudioPlayer → Wire → AudioEmitter(位于 Part 上)。仅限 Studio/插件的 SoundService.DefaultListenerLocation 控制默认监听器;运行时控制需连接显式的 AudioListener。
一次性音效:
local function playSFX(parent, id)
local s = Instance.new("Sound"); s.SoundId = id
s.RollOffMode = Enum.RollOffMode.InverseTapered
s.RollOffMinDistance = 10; s.RollOffMaxDistance = 80
s.Parent = parent; s:Play()
s.Ended:Once(function() s:Destroy() end)
end
预加载:ContentProvider:PreloadAsync({sound1, sound2})。客户端音效:FireClient → OnClientEvent 创建不可见 Part 并调用 playSFX。
注意事项:服务端声音存在延迟 → 在客户端播放反馈。默认 RollOffMaxDistance=10000 studs → 请显式设置。音量大于 1 会产生削波。快速重复播放 → 检查 IsPlaying。一次性音效结束后,务必调用 Destroy()。
详细示例、效果表和客户端模式请参阅 references/full.md。