关于 threejs-audio-generator
用于 Three.js 游戏音频制作与集成的 Skill,涵盖音效、音乐、语音处理及 Web Audio 播放,并通过 ElevenLabs 生成素材。
主要功能
- 01生成音效与环境音
- 02制作音乐和语音台词
- 03转换并清理语音录音
- 04通过 Web Audio 集成播放
适用场景
- 01制作拾取音效和游戏环境音
- 02生成菜单或游戏音乐
- 03将草稿表演转换为语音台词
- 04配置循环播放和音量分组
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ majidmanzarpour/ threejs-game-skills --skill threejs-audio-generator安装后在 Claude Code 中输入/threejs-audio-generator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/audio-workflows.mdscripts/threejs_audio_asset.py详细介绍
Three.js 音频生成器
为 Three.js 项目打造可用于游戏的音频:音效、音乐、配音、清理和运行时集成。提供方:ElevenLabs。
根据实际加载的技能文件解析 <this-skill-dir>。优先在其旁边查找同级技能,然后使用运行器发现的路径。不要混用已安装的版本,也不要假定特定的主目录。
参考资料
references/audio-workflows.md — 音频矩阵、提示词模式、生成、音乐与语音策略、Web Audio 管理器结构及运行时故障模式。规划游戏音频、批量生成、接入运行时播放或转换语音之前,请先阅读。
适用场景
音效(跳跃、击打、武器、爆炸、拾取、碰撞、UI 点击)· 音乐(菜单和游戏循环、Boss 主题、强度分层、胜利/失败提示音)· 环境音(风、雨、城市底噪、引擎嗡鸣、室内底噪、竞技场底噪)· 语音(播报员短句、Boss 台词、教程提示、菜单旁白)· 当时机和表演效果至关重要时,根据临时录音进行语音转换 · 转换或最终使用前的清理与分离 · Web Audio 集成,包括加载、循环、清单、音量组、暂停/恢复和手势解锁。
对于高品质游戏,音频并非装饰。请根据游戏实际包含的事件制定音频矩阵;不要为了填满类别而添加对白、武器、音乐或环境音层。遵守明确提出的静音、程序化音频、无障碍和外部服务限制。单个音效问题不需要配一整套新配乐。
API 密钥
脚本读取 --api-key 或 ELEVENLABS_API_KEY。切勿将密钥放入技能文件、游戏代码或报告中。
python3 <this-skill-dir>/scripts/threejs_audio_asset.py probe # ELEVENLABS_API_KEY=SET|MISSING
仅在 shell 配置文件中定义的密钥可能不会出现在进程环境变量中;threejs-game-director/scripts/probe_asset_credentials.sh 会加载配置文件并探测全部三个提供方。
如果密钥存在但生成失败,可添加 --validate 调用 GET /user 并确认密钥是否有效(打印 VALID_USER=...)。有效密钥仍可能受到额度或套餐限制,这类问题会在实际生成请求中以 HTTP 4xx 的形式出现——应报告为套餐限制,而非密钥缺失。
命令
在游戏项目目录中运行:
python3 <this-skill-dir>/scripts/threejs_audio_asset.py sfx \
--prompt "tight futuristic boost pickup, bright transient, short sparkling tail, arcade racing game" \
--duration 1.2 --prompt-influence 0.65 --out assets/audio/sfx/boost-pickup.mp3
python3 <this-skill-dir>/scripts/threejs_audio_asset.py sfx \
--prompt "seamless cyber resort ambience, distant surf, soft neon transformer hum, gentle crowd bed" \
--duration 12 --loop --prompt-influence 0.45 --out assets/audio/ambience/cyber-resort-loop.mp3
python3 <this-skill-dir>/scripts/threejs_audio_asset.py music \
--prompt "driving synthwave race loop, 128 BPM, punchy analog bass, bright arpeggios, steady energy with no intro or fade-out, designed to loop" \
--duration 60 --instrumental --out assets/audio/music/race-loop.mp3
python3 <this-skill-dir>/scripts/threejs_audio_asset.py tts \
--text "Perfect shot." --voice-id JBFqnCBsd6RMkjVDRZzb --out assets/audio/voice/perfect-shot.mp3
python3 <this-skill-dir>/scripts/threejs_audio_asset.py isolate \
--input assets/audio/source/noisy-boss-line.wav --out assets/audio/voice/boss-line-clean.mp3
python3 <this-skill-dir>/scripts/threejs_audio_asset.py voice-change \
--input assets/audio/source/scratch-boss-line.wav --voice-id JBFqnCBsd6RMkjVDRZzb \
--remove-background-noise --out assets/audio/voice/boss-line-final.mp3
默认设置
- 音效:
mp3_44100_128,0.5–2.5 秒,提示词影响度为 0.55–0.8。 - UI:0.15–0.8 秒,较高的提示词影响度,保持瞬态清晰。
- 环境音:8–30 秒并使用
--loop,提示词影响度为 0.3–0.55。 - 音乐:使用
music --prompt(--duration为 3–600 秒,--instrumental),或使用--plan FILE并提供composition_planJSON 来生成分段曲目(--seed仅适用于方案)。API 没有循环标记;时长、循环和分层请参阅参考资料中的“音乐策略”。 - 语音:干净的生成语句使用 TTS;当临时录音的时机和表演效果至关重要时使用
voice-change。先分离含噪语音。 - 运行时:在游戏项目中生成音频,并通过 Web Audio 加载。遵循项目的资源/版本控制政策;除非明确要求,否则不要提交或发布。不要在浏览器代码中放置 API 密钥。
故障恢复与协作
协同开发游戏时,请使用 director 的 references/asset-recovery.md。重试前保留输出和音频触发映射。区分凭据缺失、权限问题、额度耗尽、输入无效和临时服务故障。重新提交前先核实状态不明的付费请求;这些一次性命令不支持 Tripo 任务续接。如果确实受阻,应继续推进独立的游戏开发工作,并提供本地或合成的替代方案,同时如实说明其局限。
批量生成前,先试听有代表性的音效或语音。通过游戏中的实际事件进行测试,然后将文件路径和本地播放测试结果提供给负责人,以便统一进行一次 QA 检查。
报告
报告生成及处理后的文件路径、提示词、作曲方案、文本、源文件、语音 ID、时长、循环标记与循环点以及对应格式、运行时触发映射和音频组,以及任何尚存的缺口或套餐限制。