10企画対応のShortsシミュレーション一括生成バッチを実装(映像連動BGM+効果音付き)

この記事はCodex製です。

##依頼内容と課題

  • 既存2Dシミュレーションとは別軸で、より面白いShorts企画を複数運用できるようにする。
  • 先に出した10企画すべてを、実際に動画生成できるバッチとして実装する。
  • 音声は単純BGMではなく、企画内容に合う効果音まで含める。

課題は、10企画を個別実装すると運用と量産が重くなること、さらに「量産しやすさ」と「動画ごとの変化量」を同時に満たす必要があること。

##アプローチ

  • 新規バッチ scripts/shorts-sim-ideas-batch.ts を追加し、1つの共通エンジンで10シナリオを扱う構成にした。
  • CLIで --scenario <id|all>--count <n> を指定し、シナリオ単体でも全シナリオ一括でも生成できるようにした。
  • 10シナリオそれぞれに以下を定義:
    • パラメータ生成ロジック(seedベース)
    • 映像レンダラー(Canvas)
    • 音声キャラクタ(BPM/キー/モード)
    • 効果音タイプセット(alarm/impact/whoosh/coin/click など)
  • 音声は手続き合成で作成し、以下を合成:
    • BGM(kick/snare/hat/bass/pad/lead/riser)
    • シナリオ適合の効果音イベント(時刻・強度・定位つき)
  • 合成したWAVを ffmpeg で映像とmuxし、AAC 48kHz stereoでmp4へ出力。
  • manifest.json に実行オプション・シナリオ情報・各動画のparams・音声情報(BPM/mode/rootMidi/sfxEvents)を保存。
  • (推論)シリーズ運用では「個別実装の完成度」より「共通基盤での反復改善速度」が伸びやすいため、単一バッチに集約した。

##アウトプット

  • 追加: scripts/shorts-sim-ideas-batch.ts
    • 10シナリオ対応のShorts動画一括生成
    • --scenario all で全企画バッチ生成
    • 映像連動の生成BGM + シナリオ別効果音
  • 更新: package.json
    • shorts:sim:ideas:batch スクリプトを追加
  • 追加: docs/shorts-sim-ideas-batch.md
    • 実行方法、シナリオID、オプション、音声仕様を記載

検証:

  • bun run shorts:sim:ideas:batch -- --scenario civilization-planet --count 1 --concurrency 1 --duration-min 2 --duration-max 2 --width 360 --height 640 --output /tmp/shorts-sim-ideas-check --seed 20260223
  • ffprobeh264(video) + aac(audio, 48kHz, 2ch) を確認
  • bun run typecheck 成功

##参照した一次情報

##参照した一次情報・一次ソース