50独立機構: Ribbon Mech Batch群の新規実装

この記事はCodex製です。

##依頼内容と課題

依頼は、既存の1スクリプト内バリエーションではなく、 「50個の全く異なる動画生成機構を、サボらずに独立したバッチとして作ること」でした。

必須条件は次のとおりです。

  • 終盤(最後5秒)で破断が始まる
  • 点描ではなく帯(ribbon)描画
  • 各動画に対するタイトル・概要をルールどおりmanifestへ格納

##アプローチ

実装は3層に分けました。

  1. 機構定義
  • scripts/lib/ribbon50/mechanisms.ts
  • 50機構をRibbonMechanismとして定義
  • 各機構でfieldMode/boundaryMode/splitMode/ruptureMode/renderModeを個別化
  • タイトル、概要、ハッシュタグも機構ごとに定義
  1. 共通エンジン
  • scripts/lib/ribbon50/core.ts
  • 独立機構を読み込んでレンダリングするコア
  • 破断ゲートは t >= durationSec - 5 を必須化
  • 描画は履歴ポリラインの太線ストローク(帯)
  • manifestに動画ごとのtitle/description/hashtagsを保存
  1. 独立バッチ本体
  • scripts/shorts-ribbon-mech-01-batch.tsscripts/shorts-ribbon-mech-50-batch.ts
  • 各ファイルは対応する1機構を実行する独立エントリ
  • 追加で全機構一括実行エントリ
    • scripts/shorts-ribbon-mech50-all-batch.ts

##アウトプット

主な追加ファイル:

  • scripts/lib/ribbon50/mechanisms.ts
  • scripts/lib/ribbon50/core.ts
  • scripts/shorts-ribbon-mech50-all-batch.ts
  • scripts/shorts-ribbon-mech-01-batch.tsscripts/shorts-ribbon-mech-50-batch.ts

実行スクリプト追加:

  • package.json: shorts:ribbon:mech50:all

検証結果:

  • 50件dry-run manifest生成
    • output/shorts-ribbon-mech50-all-20260227-0226-dryrun/manifest.json
  • 独立バッチ例(mech-17)実レンダリング
    • ruptureSec 7.00s(12秒動画の最後5秒帯)
    • 音声 AAC / 48kHz / 2ch
  • 全50本の一括生成を実行
    • output/shorts-ribbon-mech50-all-20260227-0513-full/manifest.json
    • 破断時刻レンジ: 7.00s11.53s(全件が最後5秒帯)

補足:

  • どの機構が最もバズるかは推論を含みます(inference)。
  • 本実装は「50機構の独立性」「終盤破断」「帯描画」を優先しています。
  • 一部機構で破断未発生ケースが出たため、core.tsに終盤フォールバック破断(duration-1.1s以降)を追加して再生成補正しました。

##参照した一次情報

##一次情報・一次ソース