threejs-audio-generator — скилл для Claude Code: звук для Three.js
Скилл генерирует через ElevenLabs звуки, музыку и озвучку для игр на Three.js и встраивает их в проект через Web Audio.
npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a claude-codeЧто делает threejs-audio-generator
Скилл оборачивает ElevenLabs в один скрипт scripts/threejs_audio_asset.py. Подкоманды sfx, music, tts, voice-change и isolate пишут готовые mp3 прямо в папку проекта. Перед первой генерацией загляните в references/audio-workflows.md: там матрица звуков, шаблоны промптов и форма Web Audio-менеджера с загрузкой, лупами и разблокировкой по жесту.
Музыку можно заказать коротким промптом с --duration от 3 до 600 секунд или JSON-планом композиции через --plan. Флаг --seed работает только вместе с планом. У API ElevenLabs нет флага лупа, поэтому длину трека и склейку петли агент выставляет по инструкции из референса.
Ключ берётся из --api-key или из переменной ELEVENLABS_API_KEY. Ключ, прописанный только в профиле шелла, может не доехать до процесса; тогда пригодится threejs-game-director/scripts/probe_asset_credentials.sh, он подхватывает профиль. Проверка наличия — probe, а --validate дополнительно дёргает GET /user. Ключ валиден, а генерация всё равно падает с HTTP 4xx? Значит упёрлись в кредиты или тариф, и чинить надо не ключ.
Какие задачи решает
- сгенерировать звук подбора предмета по текстовому описанию
- сделать зацикленный эмбиент дождя или ветра для уровня
- собрать боевую музыку на 60 секунд без интро и затухания
- вычистить шумную запись реплики босса перед встройкой
- озвучить анонсера через TTS выбранным голосом
Примеры запросов агенту
- Сгенерируй короткий звук взрыва через `threejs_audio_asset.py sfx` и положи в `assets/audio/sfx/`
- Сделай зацикленный эмбиент арены на 12 секунд и привяжи его к событию старта боя
- Прогони `assets/audio/source/noisy-boss-line.wav` через `isolate`, потом через `voice-change`, чтобы получить чистую реплику
Как установить threejs-audio-generator
1Через Skills CLI (Vercel)
npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a claude-code2Вручную: положить файлы
~/.claude/skills/threejs-audio-generator/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/threejs-audio-generator/
1Через Skills CLI (Vercel)
npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a codex2Вручную: положить файлы
.agents/skills/threejs-audio-generator/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a cursor2Вручную: положить файлы
.cursor/skills/threejs-audio-generator/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install majidmanzarpour/threejs-game-skills threejs-audio-generator2Вручную: положить файлы
.github/skills/threejs-audio-generator/SKILL.md1Через Skills CLI (Vercel)
npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a gemini-cli2Командой платформы
gemini skills install https://github.com/majidmanzarpour/threejs-game-skills --path skills/threejs-audio-generatorВручную: положить файлы
.devin/skills/threejs-audio-generator/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора4
Весь набор →Похожие
Вопросы о threejs-audio-generator
Как установить threejs-audio-generator в Claude Code?
Выполните npx skills add majidmanzarpour/threejs-game-skills --skill threejs-audio-generator -a claude-code. Скилл окажется в ~/.claude/skills/threejs-audio-generator/SKILL.md.
Что делает threejs-audio-generator?
Генерирует и обрабатывает звук для игр на Three.js: эффекты, лупы, музыку, озвучку и конверсию голоса через ElevenLabs. Заодно подсказывает, как подключить файлы к Web Audio.
Чем `tts` отличается от `voice-change`?
tts синтезирует чистую реплику из текста. voice-change нужен, когда важны тайминг и актёрская подача из черновой записи. Шумную речь перед конверсией прогоняют через isolate.
Исходный текст
SKILL.md · MIT
--- name: threejs-audio-generator description: "Generate, convert, clean, and integrate audio for Three.js browser games with ElevenLabs: sound effects, looping ambience, music tracks and loops (menu, gameplay, boss, victory/defeat stingers), UI sounds, impact/weapon/vehicle audio, creature and boss stingers, announcer and dialogue TTS, voice conversion from a scratch performance, voice cleanup, audio manifests, and Web Audio integration." --- # Three.js Audio Generator Game-ready audio for Three.js projects: SFX, music, voice work, cleanup, and runtime integration. Provider: ElevenLabs. Resolve `<this-skill-dir>` from the actual loaded skill file. Resolve sibling skills beside it first, then use the runner's discovered paths. Do not mix installed versions or assume a particular home directory. ## Reference `references/audio-workflows.md` — the audio matrix, prompt patterns, generation, music, and voice strategy, Web Audio manager shape, and runtime failure modes. Read it before planning a game's audio, generating a batch, wiring runtime playback, or converting voices. ## When to use SFX (jumps, hits, weapons, explosions, pickups, collisions, UI clicks) · music (menu and gameplay loops, boss themes, intensity layers, win/lose stingers) · ambience (wind, rain, city bed, engine hum, room tone, arena beds) · voice (announcer barks, boss lines, tutorial prompts, menu narration) · voice conversion from a scratch performance when timing and acting matter · cleanup and isolation before conversion or final use · Web Audio integration with loading, looping, manifests, volume groups, pause/resume, and gesture unlock. Audio is not cosmetic for a premium game. Build an audio matrix from the events the game actually has; do not add dialogue, weapons, music, or ambience layers just to fill categories. Respect explicit silent, procedural-audio, accessibility, and external-service constraints. A narrow sound fix does not need a new soundtrack. ## API key The script reads `--api-key` or `ELEVENLABS_API_KEY`. Keys never go in skill files, game code, or reports. ```bash python3 <this-skill-dir>/scripts/threejs_audio_asset.py probe # ELEVENLABS_API_KEY=SET|MISSING ``` Keys defined only in a shell profile can be absent from the process env; `threejs-game-director/scripts/probe_asset_credentials.sh` sources the profile and probes all three providers. Add `--validate` to call `GET /user` and confirm the key actually works (prints `VALID_USER=...`) when a key is present but generation fails. A valid key can still be blocked by credit or plan limits, which surface as an `HTTP 4xx` from a real generation attempt — report that as a plan blocker rather than a missing key. ## Commands Run from the game project directory: ```bash 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 ``` ## Defaults - SFX: `mp3_44100_128`, 0.5–2.5s, prompt influence 0.55–0.8. - UI: 0.15–0.8s, high prompt influence, transients kept clear. - Ambience: 8–30s with `--loop`, prompt influence 0.3–0.55. - Music: `music --prompt` (`--duration` 3–600s, `--instrumental`) or `--plan FILE` with a `composition_plan` JSON for sectioned tracks (`--seed` works only with plans). The API has no loop flag; lengths, looping, and layering are in the reference's Music Strategy. - Voice: TTS for clean generated lines; `voice-change` when timing and acting from a scratch performance matter. Isolate noisy speech first. - Runtime: generate into the game project and load through Web Audio. Follow the project's asset/version-control policy; do not commit or publish unless asked. No API keys in browser code. ## Recovery and Coordination For coordinated games use the director's `references/asset-recovery.md`. Preserve outputs and the audio trigger mapping before retrying work. Distinguish missing credentials, permissions, exhausted credits, invalid input, and transient service failures. Reconcile an uncertain paid request before resubmitting; these one-shot commands do not implement Tripo task resume. Keep independent gameplay work moving and provide a local/synthesized fallback with honest limitations when genuinely blocked. Listen to a representative effect or line before generating a batch. Test it through its real game event, then give the lead paths and local playback findings for one consolidated QA pass. ## Report Generated and processed file paths, the prompts, composition plans, text, source files, voice IDs, durations, loop flags and loop points and formats behind them, the runtime trigger mapping and audio groups, and any remaining gaps or plan limits.
© majidmanzarpour · MIT · majidmanzarpour/threejs-game-skills