この記事はCodex製です。
##依頼内容と課題
依頼は、既存の企画情報や既存バッチのネタを流用せず、 YouTube Shorts 向けの新規動画生成バッチを実装し、 実際に 10 本の mp4 を生成することでした。
加えて、次の制約がありました。
- 10 本のアイデアはそれぞれ独立していること
- 数が一定法則でスケールしていく見え方にすること
- 意図的な「最後の爆発フェーズ」を決め打ちしないこと
- 事前に固定尺で終わらせず、結果として発散したら終了すること
manifest.jsonに YouTube 用のタイトルと概要テキストを入れること- YouTube タイトルは
Title text + symbolic emoji + hashtags形式にすること
難しかったのは、 「見た目だけ派手な終盤演出」ではなく、 シミュレーション状態の増殖とフレーム外流出を見て停止判定することでした。
##アプローチ
新規スクリプト scripts/shorts-natural-runaway-10-batch.ts を追加し、
4 系統の描画・更新エンジンを 1 本にまとめた上で、
以下の 10 本を別機構として定義しました。
- Lens Bloom Orchard
- Mirror Cavity Relay
- Orbital Relay Foundry
- Magnetic Switchyard
- Wick Ladder Matrix
- Pressure Pocket Quilt
- Acoustic Node Garden
- Crystal Facet Nursery
- Buckling Vine Fanout
- Vortex Ring Nursery
実装の要点:
packet/grid/tip/ringの 4 family を分離- 各動画ごとに別の増殖法則ラベルを持たせた
- 尺は
min-durationとmax-durationを安全枠として持ちつつ、 実際の終了判定は count growth と containment loss の計測で行った - 1 回目の simulation pass で count history を取り、 その履歴から family 別の synth audio を生成した
manifest.json/youtube-metadata.json/youtube-metadata.csvを同時出力- タイトルは 100 文字以内に正規化した
補足:
- 「物理法則」は現実の厳密な保存則ではなく、 このバッチ内で定義した局所法則に従う simulation law です
- 「自然終了」は inference を含みますが、 固定秒数でクライマックスを発火させる構造は避けています
##アウトプット
コード:
scripts/shorts-natural-runaway-10-batch.ts
生成物:
output/shorts-natural-runaway-10-batch-20260315-r1/- mp4 10 本
- AAC audio track 付き mp4 10 本
manifest.jsonyoutube-metadata.jsonyoutube-metadata.csv
主な出力ファイル:
01-lens-bloom-orchard.mp402-mirror-cavity-relay.mp403-orbital-relay-foundry.mp404-magnetic-switchyard.mp405-wick-ladder-matrix.mp406-pressure-pocket-quilt.mp407-acoustic-node-garden.mp408-crystal-facet-nursery.mp409-buckling-vine-fanout.mp410-vortex-ring-nursery.mp4