Pixel Crew リール
コピー元のサンプルは projects/ai-delivery-team です(なぜ機能するかは docs/REFERENCE-BREAKDOWN.md を参照)。マップと過去に問題になったルールについては CLAUDE.md を読んでください。
1 · スクリプトを先に(script.json)
機能する構成:フック(5秒以内) → N個の同一ビート(各約3.5秒) → ペイオフ → キーワードCTA。
- フック:驚くような数字とシステム全体を1フレームに(「従業員7名、全員人間じゃない」)。
- 各ビート:「役割は a、b、c を行います」 — アニメーション化できる3つの具体的な名詞。
- ペイオフ:人間の唯一の仕事(承認、決定、レビュー)。
- CTA:「コメントでキーワードを送っていただければ〜をお送りします」(キーワードは
brand.keywordに)。 linesは2〜4単語のキャプションフレーズで記述します。各行が1つのキャプションになります。- 合計時間は30〜45秒を目指します。音声速度1.3〜1.4でKokoroは約3.5語/秒になります。
- ブランドハンドル、承認者名、キーワードが不明な場合はユーザーに尋ねます。それ以外は
@yourhandleプレースホルダーをそのままにして、その旨を伝えます。
2 · スキャフォールド
node scripts/new.mjs reel <名前>
python3 scripts/voice.py projects/<名前> # 最初にタイミング、次にそれに合わせてデザイン
3 · シーン(index.html + style.css + scenes.js)
- スクリプトの各シーンに1つの
<section class="scene">を同じ順序で配置します(R.cuts()がそれらをTIMING.scenesにマッピングします)。 - 各従業員シーン:
.head内に.step[data-step][data-label]+.title(980px以内に収まるサイズ)、次にその仕事を表現する1つまたは2つの.card。 - すべてのシーンに独自のアクセントカラー(
--accent: var(--rN))を与え、背景(is-paper、is-peri、is-lav、is-cobalt)を交互に設定します。 - すべての話された名詞をアニメーション化:
R.pop(el, R.word(scene, line, "noun"))、R.tick、R.type、R.grow、スタンプにはR.slam。 data-icon、data-bot、data-burst、data-face、data-presenterプレースホルダーを使用します。Sprites.hydrate()がそれらを埋めます。- 最後に
R.captions(...)とR.register()を記述します。インラインのwindow.__timelines["main"]行を保持します。
4 · 確認、そしてレンダリング
node scripts/build.mjs projects/<名前> --no-voice --no-render --snap <シーンごとに1回>
# projects/<名前>/build/snaps/contact-sheet*.jpg を確認、修正、繰り返し
node scripts/hf.mjs lint projects/<名前>
node scripts/build.mjs projects/<名前> --no-voice # → renders/<名前>.mp4
MP4自体を検証:ffmpeg -i renders/<名前>.mp4 -vf fps=1,scale=180:-1,tile=8x5 sheet.jpg
および -af ebur128(目標 ≈ -14 LUFS)。以下の点を確認:空白の最初のフレーム、テキストが端に触れていないか、要素がInstagramのUIの下に隠れていないか、キャプションの同期が取れているか。
スワップ
- 音声:
script.json → voice.voice(am_michael、am_puck、am_fenrir、af_heart、bf_emma…)、または独自のものをbuild/voice.wavに録音してvoice.py --from-wavを実行。 - 音楽:
build/music-override.wavにトラックをドロップ。 - ホスト:所有者のキャラクター(
kit/brand.js、kit/avatars/)が[data-presenter]と[data-face]によって自動的に使用されます。画像ホストのサイズは幅で指定(.is-img)、腰から上です。特に依頼がない限り、別のキャラクターを描かないでください。