mcpField
T
threejs-audio-generator

threejs-audio-generator

github.com/majidmanzarpour创意与媒体2.6k3.0k 次安装4 周前更新
代码仓库

关于 threejs-audio-generator

用于 Three.js 游戏音频制作与集成的 Skill,涵盖音效、音乐、语音处理及 Web Audio 播放,并通过 ElevenLabs 生成素材。

主要功能

  1. 01生成音效与环境音
  2. 02制作音乐和语音台词
  3. 03转换并清理语音录音
  4. 04通过 Web Audio 集成播放

适用场景

  1. 01制作拾取音效和游戏环境音
  2. 02生成菜单或游戏音乐
  3. 03将草稿表演转换为语音台词
  4. 04配置循环播放和音量分组

安装

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

$npx skills add https://github.com/majidmanzarpour/threejs-game-skills --skill threejs-audio-generator

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
audio-workflows.md
scripts/
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_plan JSON 来生成分段曲目(--seed 仅适用于方案)。API 没有循环标记;时长、循环和分层请参阅参考资料中的“音乐策略”。
  • 语音:干净的生成语句使用 TTS;当临时录音的时机和表演效果至关重要时使用 voice-change。先分离含噪语音。
  • 运行时:在游戏项目中生成音频,并通过 Web Audio 加载。遵循项目的资源/版本控制政策;除非明确要求,否则不要提交或发布。不要在浏览器代码中放置 API 密钥。

故障恢复与协作

协同开发游戏时,请使用 director 的 references/asset-recovery.md。重试前保留输出和音频触发映射。区分凭据缺失、权限问题、额度耗尽、输入无效和临时服务故障。重新提交前先核实状态不明的付费请求;这些一次性命令不支持 Tripo 任务续接。如果确实受阻,应继续推进独立的游戏开发工作,并提供本地或合成的替代方案,同时如实说明其局限。

批量生成前,先试听有代表性的音效或语音。通过游戏中的实际事件进行测试,然后将文件路径和本地播放测试结果提供给负责人,以便统一进行一次 QA 检查。

报告

报告生成及处理后的文件路径、提示词、作曲方案、文本、源文件、语音 ID、时长、循环标记与循环点以及对应格式、运行时触发映射和音频组,以及任何尚存的缺口或套餐限制。

评论

支持 Markdown