mcpField
A
audio

audio

github.com/drawcall-ai开发127 次安装
代码仓库

关于 audio

面向使用 Three.js 音频节点的游戏开发者,指导如何设置游戏音效。内容包括事件覆盖、空间音频、混音、重叠播放及浏览器音频启动。

主要功能

  1. 01在摄像机上设置 AudioListener
  2. 02选择空间或非空间播放
  3. 03平衡高频与低频提示音
  4. 04用节点池处理重叠播放
  5. 05在用户操作后恢复音频
  6. 06检查游戏事件的音效覆盖

适用场景

  1. 01为游戏世界事件添加空间音效
  2. 02避免重复音效盖过混音
  3. 03让连续枪声或脚步声播放不中断

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/drawcall-ai/skills --skill audio

安装后在 Claude Code 中输入/audio确认已加载。

详细介绍

音频

声音是反馈,不是点缀。如果某个动作会改变游戏状态(开火、装弹、拾取、受击、死亡、脚步声、UI 点击),却没有声音,这一刻就会显得不对劲。为每个这样的时刻接入声音。

设置

在摄像机上挂载一个 AudioListener,然后为每种声音选择空间音频或非空间音频:

const listener = new AudioListener()
camera.add(listener)
const buffer = await new AudioLoader().loadAsync('/sound-effects/gunshot.mp3')

// World event with a position → PositionalAudio attached to the source (pans + attenuates with distance)
const shot = new PositionalAudio(listener)
shot.setBuffer(buffer)
weapon.add(shot)
shot.play()

// UI / non-spatial event (reload, pickup, menu) → plain Audio
const ui = new Audio(listener)
ui.setBuffer(buffer)
ui.play()

混音平衡

覆盖全面不应让混音听起来疲劳。频繁播放的提示音和循环背景音,其默认音量应低于罕见的确认音,因为重复播放会让声音即使本身合适,也显得很响。脚步声、环境风声、引擎轰鸣、无人机声以及其他近乎持续的声音,通常应作为低音量的背景纹理;它们应能确认动作或氛围,但不要盖过武器声、受击声、UI 确认音或人声。重复播放的声音应从较低音量开始,只有在游戏反馈变得难以辨识时才调高。

对于声源可见或在空间中有意义的世界音效,优先使用空间音频:敌人射击、敌人死亡、撞击、门、机器、游戏世界中的拾取物以及附近的危险。非空间音频适用于 UI、音乐背景、旁白,以及应在听者脑海中保持稳定的玩家专属反馈。如果出于技术原因必须将世界音效设为非空间音频,请降低音量并记录这一权衡,以免听起来像全局警报。

重叠播放与浏览器策略

  • 一个 Audio/PositionalAudio 节点不能同时播放两次(对正在播放的节点调用 .play() 会发出警告并且不执行任何操作)。对于快速连续的声音(枪声、脚步声),应保留一小组节点,或每次射击都从共享缓冲区创建一个新节点,以免声音互相截断。PositionalAudio 只有在挂载到场景图中时(source.add(node)),才会进行声像定位和音量衰减,因此池化的空间音频节点必须保持挂载状态——普通的非空间 Audio 没有此要求。
  • 浏览器会阻止音频播放,直到用户进行交互。首次点击或按键时恢复音频:listener.context.resume()。

覆盖范围

检查游戏中的反馈时刻,并确认每个时刻都有声音:开火、空枪、开始装弹 + 装弹完成、拾取、制作、造成伤害和受到伤害、死亡、脚步声(按地面材质变化)、波次/回合转换、胜利/失败。市场上的 sound-effect 和 background-music 资源可以满足大多数需求;如果某个时刻没有合适的资源,请合成一段简短的 WebAudio 音调,不要让它保持静音。

人声与旁白 → speech 技能

对于语音输出——NPC 对话、旁白、教程语音、无障碍朗读——请使用 speech 技能。它会根据文本和语音输入返回音频片段 URL,并提供语音选择、缓存、浏览器自动播放限制以及首次请求预热方面的指导。仅使用此音频技能,通过上述相同的 Audio/PositionalAudio 节点播放生成的片段。

评论

支持 Markdown