Agent Skills
返回列表
💻

Godot音频

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/godot-audio-sofw

技能介绍

它在解决什么问题

在 Godot 里让声音响起来很容易,让它响得正确却不容易。典型问题包括:音量滑块拖到一半听起来几乎没变化(因为 volume_db 用的是分贝而非线性值)、同一个 AudioStreamPlayer 被重复触发时短音效被截断、音乐不循环、3D 定位音频完全无声、以及只用 get_playback_position() 做节奏同步时抖动明显。这些坑的根源在于:音频系统运行在对数域,并且按 mix 帧更新,而不是按渲染帧更新。

技能如何工作

该技能把 Godot 4.3+ 的音频管线整理成一条清晰的工作流:

  • 选择播放器节点:非定位声音(音乐、UI、全局音效)用 AudioStreamPlayer,3D 定位音频用 AudioStreamPlayer3D。
  • 路由到总线:在 Audio 面板定义 Master/Music/SFX 总线,播放器按名称绑定;通过 AudioServer 按总线索引控制音量与静音。
  • 用分贝思考:用 linear_to_db / db_to_linear 映射 UI 滑块,并注意 linear_to_db(0.0) 会返回 -inf。
  • 节奏同步:结合 get_time_since_last_mix() 补偿 get_output_latency(),而不是只读播放位置。

适用边界

它只覆盖 Godot 引擎内的音频实现。引擎无关的音频设计(自适应音乐结构、混音哲学、ducking 模式)应交给 audio-design;引擎外的资源导入与编码同样不在范围内。

使用场景

  • 为 2D 游戏角色的攻击和跳跃配置音效,并让音量随距离做 2D 衰减
  • 把背景音乐与音效分别接入 Music/SFX 总线,用代码按 dB 控制音量和静音
  • 实现两段背景音乐之间的交叉淡出切换,避免硬切带来的爆音
  • 开发节奏游戏,把判定时间对齐到音乐节拍,补偿音频输出延迟

适合人员

  • 用 Godot 4.3+ 开发游戏的程序员,需要在代码里正确控制音量与总线路由
  • 独立游戏开发者,想给游戏配上背景音乐和音效但不熟悉 Godot 音频 API
  • 开发节奏类或音乐游戏的工程师,需要做节拍同步和输出延迟补偿