vocaloid-style-mv
Make an original animated music video (MV / PV) for a song from its audio file plus lyrics, in the Vocaloid / J-pop lyric-video tradition: 手書き/tegaki (V家手书, 手描きMV, ボカロPV), 文字PV and kinetic typography (リリックモーション, リリックビデオ, 歌詞動画, 歌词视频, 动态歌词), anime-illustration MVs with an original character — for any mood, from dark ballads to bright upbeat summer pop. Renders to MP4 with a deterministic Canvas2D/WebGL2 engine in a headless browser: JIZURA lyric motion, AI-generated art, optional Blender toon 3D, beat-locked editing, 9:16 vertical/Shorts version. Use it whenever the user wants a music video, MV, PV, lyric video or beat-synced animation for a song, e.g. "make an MV for my song", "turn this track into a lyric video", "给这首歌做个MV/PV", "做个V家手书", "この曲のMVを作って", "ボカロPV作って", "縦型ショートも" — even if they only give a .wav/.mp3 and say "make a cool video for it". Not for editing existing footage or clip compilations.
含まれるファイル(116)
- SKILL.md12.0 KB
- references/01-workflow.md11.1 KB
- references/02-creative-direction.md16.2 KB
- references/03-audio-and-lyrics.md24.4 KB
- references/04-asset-generation.md19.7 KB
- references/05-engine.md32.4 KB
- references/06-jizura.md13.3 KB
- references/07-blender-3d.md18.1 KB
- references/08-render-and-delivery.md15.2 KB
- references/09-qa-and-lessons.md7.8 KB
- references/effect-cookbook.md20.6 KB
- scripts/check_env.py22.9 KB
- scripts/new_project.py13.0 KB
- template/.gitignore1.6 KB
- template/analysis/.gitkeep0 B
- template/assets/bg/.gitkeep0 B
- template/assets/char/.gitkeep0 B
- template/assets/style/luts/P1_oumagatoki_duo.png184 B
- template/assets/style/luts/P1_oumagatoki.png219 B
- template/assets/style/luts/P2_zansho_duo.png176 B
- template/assets/style/luts/P2_zansho.png237 B
- template/assets/style/luts/P3_fumikiri_duo.png190 B
- template/assets/style/luts/P3_fumikiri.png118 B
- template/assets/style/luts/P4_hotarubi_duo.png174 B
- template/assets/style/luts/P4_hotarubi.png230 B
- template/assets/style/luts/P5_taishoku_duo.png174 B
- template/assets/style/luts/P5_taishoku.png182 B
- template/assets/style/palettes.json5.6 KB
- template/audio/.gitkeep0 B
- template/blender/helpers_selftest.py4.0 KB
- template/blender/probe_scene.py20.5 KB
- template/blender/shots/_shared.py31.3 KB
- template/blender/shots/shotA_street.py38.6 KB
- template/blender/shots/shotB_crossing.py32.7 KB
- template/demo/lyrics_demo.lrc471 B
- template/demo/make_demo_song.py18.5 KB
- template/demo/README.md2.2 KB
- template/demo/sections_demo.json1.0 KB
- template/engine/core/assets.js2.8 KB
- template/engine/core/draw.js16.6 KB
- template/engine/core/gl.js13.2 KB
- template/engine/core/main.js11.1 KB
- template/engine/core/trans.js6.5 KB
- template/engine/core/util.js6.1 KB
- template/engine/fonts/fonts.css5.6 KB
- template/engine/fonts/fonts.js2.2 KB
- template/engine/fonts/manifest.json5.7 KB
- template/engine/fonts/OFL_delagothicone.txt4.3 KB
- template/engine/fonts/OFL_dotgothic16.txt4.3 KB
- template/engine/fonts/OFL_kaiseitokumin.txt4.3 KB
- template/engine/fonts/OFL_kleeone.txt4.3 KB
- template/engine/fonts/OFL_mplusrounded1c.txt4.2 KB
- template/engine/fonts/OFL_notosansjp.txt4.3 KB
- template/engine/fonts/OFL_notosanssc.txt4.3 KB
- template/engine/fonts/OFL_notoserifjp.txt4.2 KB
- template/engine/fonts/OFL_notoserifsc.txt4.2 KB
- template/engine/fonts/OFL_rampartone.txt4.3 KB
- template/engine/fonts/OFL_reggaeone.txt4.3 KB
- template/engine/fonts/OFL_shipporiminchob1.txt4.3 KB
- template/engine/fonts/OFL_yujisyuku.txt4.3 KB
- template/engine/fonts/OFL_zenkakugothicnew.txt4.3 KB
- template/engine/fonts/OFL_zenoldmincho.txt4.3 KB
- template/engine/index.html1.7 KB
- template/engine/scenes/dark.js60.7 KB
- template/engine/scenes/glass.js65.9 KB
- template/engine/scenes/intro.js74.4 KB
- template/engine/scenes/memory.js72.7 KB
- template/engine/scenes/meta.js54.0 KB
- template/engine/scenes/night.js60.4 KB
- template/engine/scenes/scenes.js6.5 KB
- template/engine/scenes/typo.js63.8 KB
- template/engine/timeline.js28.3 KB
- template/engine/vertical.html1.7 KB
- template/engine/vertical.js8.0 KB
- template/jizura/app/engine.html1.7 KB
- template/jizura/app/host_direct.html3.7 KB
- template/jizura/app/host_iframe.html2.1 KB
- template/jizura/app/jizura_adapter.js6.4 KB
- template/package.json1.9 KB
- template/PROJECT_README.md12.3 KB
- template/requirements.txt2.3 KB
- template/setup.ps112.6 KB
- template/setup.sh11.4 KB
- template/tools/alpha_matte.py24.5 KB
- template/tools/analyze_audio.py88.6 KB
- template/tools/blender_common.py59.4 KB
- template/tools/blender_run.py2.5 KB
- template/tools/build_jizura_bundle.mjs4.1 KB
- template/tools/fetch_fonts.py5.5 KB
- template/tools/gigafile_upload.mjs5.2 KB
- template/tools/imagegen.py11.8 KB
- template/tools/jizura_parts.mjs1.9 KB
- template/tools/jizura_probe.mjs3.8 KB
- template/tools/jizura_serve.mjs3.8 KB
- template/tools/jz_cuts_at.mjs2.9 KB
- template/tools/kit_env.mjs5.9 KB
- template/tools/kit_env.py10.9 KB
- template/tools/preview_style_fx.mjs10.1 KB
- template/tools/render_final.mjs7.3 KB
- template/tools/render_final.ps1375 B
- template/tools/render_frames.mjs30.2 KB
- template/tools/review_sheets.py3.9 KB
- template/tools/stills.mjs4.8 KB
- template/tools/style_palette_sheet.py14.5 KB
- template/tools/transcribe_align_mms.py5.9 KB
- template/tools/transcribe_kana.py5.5 KB
- template/tools/transcribe_lines.py14.6 KB
- template/tools/transcribe_onset_probe.py4.5 KB
- template/tools/transcribe_prep.py3.1 KB
- template/tools/transcribe_reconcile.py15.9 KB
- template/tools/transcribe_score.py4.1 KB
- template/tools/transcribe_separate.py4.5 KB
- template/tools/transcribe_translation.py6.6 KB
- template/tools/transcribe_vocal_activity.py2.3 KB
- template/tools/transcribe_whisper.py6.2 KB
- template/tools/verify_style_snippets.mjs8.8 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Vocaloid-style MV pipeline (手書き / 文字PV)
This skill turns a song + its lyrics into a finished, showreel-quality lyric MV (16:9 master, 9:16 vertical version, share encodes). It packages a pipeline that was used to make 「残光」 (Music / Lyrics / Movie:NikusonP) — a 3:46 MV with an original V家-style singer, a cracked-sky / afterglow concept, JIZURA typography, two Blender 3D sequences and ~70 beat-locked shots, rendered in ~4 minutes on an RTX 3080.
The goal is a film of similar craft, not a copy. Every song gets its own concept, character, palette, motifs and storyboard derived from its lyrics and structure. The scene library and the 残光 case study are a toolbox and a worked example; reusing their look wholesale defeats the point. references/02-creative-direction.md explains how to find a new concept and gives a variation matrix.
What you have
template/— a complete project: the engine (engine/), scene library (engine/scenes/*.js), JIZURA adapter (jizura/), all tools (tools/), Blender shot scripts (blender/), palettes/LUTs, a procedural demo (demo/, synthetic song) and a default commented timeline.scripts/new_project.py— scaffold a project from the template (--song,--lyrics,--title,--title-sub,--artist,--credit,--setup).scripts/check_env.py— what's installed.references/— the method. Read the ones you need, when you need them (table at the end).- The 残光 case study (storyboard, timeline, prompts, contact sheets) is not inside this skill folder. In a repo checkout it is
examples/zanko/(two levels above this file). With only the installed skill, read it online: https://github.com/EGSECDA/vocaloid-style-mv-pipeline/tree/main/examples/zanko (raw:https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/<FILE>). Everyexamples/zanko/...path inreferences/means this folder.
Requirements
Required: Node 20+, Python 3.10+, ffmpeg/ffprobe, Microsoft Edge or Chrome (Playwright drives it headless with the GPU).
Optional but used for full quality: NVIDIA GPU (WebGL + NVENC), an image generator (the kit wraps the Codex CLI's native image tool; any model works with the chroma-key method), Blender 5.x (3D shots), the lyric-timing set (faster-whisper, onnxruntime, pykakasi + CPU torch/torchaudio 2.8; only when the lyrics have no timestamps).
Run python <skill>/scripts/check_env.py first (<skill> = the folder containing this SKILL.md) and tell the user what is missing and what that costs (e.g. "no Blender → I'll do the 3D moments as 2.5D").
The workflow (phases, deliverables, checkpoints)
Work in phases; each ends with something on disk you can show. Details, commands and acceptance criteria: references/01-workflow.md.
- Scaffold —
python <skill>/scripts/new_project.py <dir> --song <song.wav> --lyrics <lyrics> --title <title> --title-sub <Latin subtitle> --artist <artist> --credit "Music / Lyrics / Movie:<artist>" --setup. The four strings setZ.TITLE,Z.TITLE_SUB,Z.ARTISTandZ.CREDITinengine/timeline.js(HUD, end card, 9:16 header and footer); ask the user for the exact credit line.--creditwithout--artisttakes the artist from after the credit's colon;--titlewithout--title-subclears the demo's subtitle. Setup installs deps, fetches fonts, clones JIZURA (pinned to the tested commit) and builds it.- Plain-text lyrics (no timestamps — the usual case) need forced alignment for the timings: add
--setup-args "-Lyrics"(macOS / Linux:--setup-args "--lyrics"), then install the alignment deps once inside the project:python -m pip install --target vendor/pydeps_torch torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cpu. - Smoke test (recommended on a new machine): run the demo in a separate throwaway project —
python <skill>/scripts/new_project.py _smoke --setup, then the steps it prints (demo/README.md). Never run it in the film's project:demo/make_demo_song.pywritesaudio/song.wav(it refuses to replace an existing file unless--force), and the demo steps overwriteanalysis/lyrics_mv.lrcandanalysis/sections.json. Run it before scaffolding the film and the film's project can reuse its fonts:--setup-args "-FontsFrom ../_smoke/engine/fonts"(bash:--fonts-from; sibling folders; combine as"-Lyrics -FontsFrom …").
- Plain-text lyrics (no timestamps — the usual case) need forced alignment for the timings: add
- Listen —
python tools/analyze_audio.py→analysis/audio.json(beats, downbeats, bars, sections, stops, impacts) +envelope_30fps.json. Curate section labels. Lyrics: always ask for / use the official lyrics; transcription is only for when nothing else exists, forced alignment gives plain-text lyrics their timings. Produceanalysis/lyrics_mv.lrcwith JIZURA markup. →references/03-audio-and-lyrics.md - Concept — from the lyrics: thesis, logline, emotional arc, colour script, master shapes/motifs, character bible, signature moments. Write
docs/CONCEPT.md. Checkpoint: show the user the concept in a few lines before generating art. →references/02-creative-direction.md - Character & assets — write the character bible, generate 3 master candidates, let the user (or you) pick
REF_master.png, then every pose with the master as reference + a shared style block; backgrounds from the storyboard's locations; chroma-key to RGBA. Checkpoint: contact sheet of masters. →references/04-asset-generation.md - Storyboard → timeline — shot list mapped to bars and lyric lines (
docs/STORYBOARD.md), thenengine/timeline.js(shots with scene/args/lyric plan/post/transition). Times come fromaudio.json(B(n)bar starts,nb(t)nearest beat) so every cut lands on the music. →references/01-workflow.md,references/05-engine.md - Build — reuse/adapt scenes from the library, write new ones for the song's signature moments, set up JIZURA plans + curation (
references/06-jizura.md), optional Blender sequences (references/07-blender-3d.md). Parallelise: one agent per scene file (disjoint ownership), each with a test timeline and a visual review loop. - Review — stills at shot midpoints → contact sheets → fix; then full render (~4 min) → review sheets every 1.5–2 s → fix → re-render. Use the checklist and known failure modes in
references/09-qa-and-lessons.md. This loop is where most of the quality comes from; budget for 2–3 passes. - Deliver — 16:9 master (NVENC CQ16), share encode (x264 CRF 19), 9:16 vertical re-layout, previews; credits in the title lockup, outro and end card (ask the user for the exact credit line, e.g. "Music / Lyrics / Movie:NikusonP"). Optional upload (
tools/gigafile_upload.mjs). →references/08-render-and-delivery.md
Principles that make it look like a showreel (why they matter)
- Everything is a pure function of song time
t. Parallel render workers seek arbitrary frames; any wall-clock or unseeded randomness makes frames differ between workers and flicker at segment joins. Particles are closed-form; noise is seeded (Z.rnd,Z.rng,Z.noise1). - The beat grid is law. Tempo drifts (128→132 BPM in 残光), so cuts use real beat/bar times from
audio.json, nevern * 60/bpm. Lyrics appear ~0.2 s before the voice; cuts land on downbeats; big moments on chorus downbeats, stops and post-chorus hits. - Layers, not one canvas. Scene layer (illustration, boil + palette grade) → text layer (JIZURA lyrics, custom type, HUD; stays crisp) → foreground layer (a character drawn in front of the lyrics — text passing behind the singer is one of the strongest looks) → WebGL post (line boil on 2s, gradient-map LUTs, bloom, CA, grain, flashes).
- Restraint, then bursts. Quiet verses with long holds and one effect at a time make choruses hit. Escalate per section; the last chorus brings back earlier ideas "on fire" plus one new move. End on an idea (the 残光 ending is a hard cut on the song's dead stop and a cyan retinal afterimage).
- Typography is half the film. JIZURA gives a huge vocabulary, but it must be curated (some parts draw opaque cards, the wrong colour schemes vanish — dark text at night, ivory text on a daylight sky — gimmick layouts break the mood). Custom typographic scenes carry the キメ lines.
- Match the film's key. The template, the scene library and the 残光 notes are tuned for low-key dusk/night frames: dark-scheme lyrics (light text), bloom from a 0.72 threshold, amber rims and glows, black type cards, the dusk palettes P1–P5. For a bright film (summer, noon, sea, snow) change those defaults before the first still:
references/02-creative-direction.md§13. - Original character, consistent. Never imitate an existing character (no Hatsune Miku likeness). One master reference image anchors every pose.
- Look at every result. Render stills, view them (images are readable), critique like an art director, fix, repeat. Don't trust that code "should" look right.
Working style
- Keep the user in the loop at the checkpoints (concept, character master, first stills, first full render) — a 3–6 line summary plus an image is enough.
- Prefer parallel subagents for independent scene files / asset batches / Blender shots, each owning disjoint files and saving work to disk early (long runs can be interrupted by usage limits; on-disk work survives and can be resumed).
- Measure, don't guess: per-frame render cost (
tools/stills.mjsprints ms), render throughput, asset counts. - Credit the artist on screen and in README files; ask for the credit line if not given.
References (read when the phase needs it)
| file | read when |
|---|---|
references/01-workflow.md | starting a project; planning phases, commands, acceptance criteria, time budget |
references/02-creative-direction.md | turning lyrics into a concept, colour script, motifs, storyboard; making it different (variation matrix); bright / daytime films (§13) |
references/03-audio-and-lyrics.md | audio analysis fields, section curation, lyrics (official / transcription / alignment), LRC markup |
references/04-asset-generation.md | character bible, prompts, Codex image generation, chroma key, consistency |
references/05-engine.md | engine API, layers, post params, transitions, scene library catalogue, writing new scenes |
references/06-jizura.md | JIZURA lyric layer: plans, styles, curation deny-lists, centre-free, vertical, debugging |
references/07-blender-3d.md | toon 3D sequences keyed to the beat, line art, timings |
references/08-render-and-delivery.md | rendering, encodes, vertical 9:16 re-layout, review tooling, upload |
references/09-qa-and-lessons.md | review checklist and every failure mode we hit (with fixes) |
references/effect-cookbook.md | menu of motion/FX recipes, palette and typography systems |
Author of the kit and of 「残光」: NikusonP. JIZURA 字面: github.com/852wa/JIZURA, MIT licence (Copyright (c) 2026 hakoniwa).
レビュー
まだレビューはありません。使ってみた感想をお寄せください。