code-video-infinite は何をしますか?
画面は「生成」されるのではなく、「書かれる」ものです。 ここには画像生成・動画生成モデルはありません。1本の動画は1つのウェブページまたはRemotionプロジェクトであり、時間tを与えられるとそのフレームを描画します。ヘッドレスブラウザまたはRemotionで1フレームずつレンダリングし、ffmpegで音声と結合します。音声もコードで合成できます。そのため、すべての動画は任意のシークができ、いつでも再レンダリングでき、前の版が後の版を壊すことはありません。
このスキルは5つのエンジンを統合したものです:1つの入り口、1つのフロー、3つのゲート。各エンジンは独自の詳細ドキュメントと素材をすべて保持しています。
0 · 作業開始前にこれら2つを実行(30秒、飛ばさないこと)
node scripts/doctor.mjs # 環境:Node / ffmpeg / ffprobe / Python / Chrome / 5つのエンジンが揃っているか
node scripts/find.mjs --stats # ディレクトリ:880件の素材をソース別・コレクション別に集計
doctor に FAIL があったら先に環境を整えてから創作に入ってください。Chrome が足りなければ Chrome をインストールするか npx playwright install chromium を実行。Windows 上で npm が実行ポリシーにブロックされた場合は npm.cmd を使ってください。
1 · 先にエンジンを選び、それからスタイルを決める
ユーザーのニーズがエンジンを決めます。カタログの豊富さで決めてはいけません。1本の動画はデフォルトで1つのメインエンジンのみを使い、2つ目のエンジンは素材を取り出すためだけに使います。
| ニーズの様子 | エンジン | 得意なこと | 初期に必要な代償 |
|---|---|---|---|
| 15–30秒の製品/リリース/スキル動画、リズムあり、カメラワークあり、「PPTみたい」ではないもの | onetake | 単一HTML合成、本物のシャッターによるモーションブラー、合成音、リズムと継承のオラクル | Python + Chrome;4K60レンダリングは遅い(事前に時間を伝える) |
| 製品プロモーション、映画的な雰囲気、実際のWebページ画面、マルチカットナレーション、剪映で再編集したい、SNS公開したい | shotcraft | 124枚のレンズカード + Ink Pressテンプレート + 実際のページキャプチャ + Freesound音声選択 + ワークベンチ | Node + Remotion(npm install);Remotionには独自ライセンスあり |
| 特定の形状、マテリアル、3Dオブジェクト、キャラクターと動物、手描きペーパーアート、すぐ実行できるシーンが必要 | claude-motion | 47のコード事例 + 20のコンポーネント + 30のオブジェクトモデル + 14のシーンスターター、再現性の高いコード(画風タグではない) | Node ≥ 22 + Playwright Chromium + ffmpeg;素材量が多い |
| MGスタイル(フラット/ライン描き/アイソメトリック/3Dレンダリング/ストップモーション/コラージュ/リキッド/モーフィング/バウハウス/Synthwave/ガラス/飾り文字/ステッカー/ピクセル/サイバーHUD) | mg-motion | 15の検証可能な署名技法 + 103サンプル音楽ツールキット + 10の機械ゲート + 2ラウンドの審査 | Chrome(MG_CHROME)+ ffmpeg + フォント自己調達が必要 |
| 1つのアクション、トランジション、テキストアニメーションの実際のソースコードだけが欲しい、別のプロジェクトで使いたい | wise-motion | 462件のエフェクトエントリ、プレビュー、実際のソースコードへの入口とエクスポートスクリプト | 素材だけを提供、あなたの代わりに動画全体をデザインしない |
ルーティングの詳細、否定された組み合わせ、各エンジンの明確な境界は references/engine-selection.md を参照してください。
どの素材も同じコマンドで検索します(5エンジン横断):
node scripts/find.mjs "HUD レーダー"
node scripts/find.mjs "コーヒー 手描き" --limit 5
node scripts/find.mjs fade --source wise-motion
node scripts/find.mjs "タイトル 入場" --collection shot-card --json
2 · 6段階パイプライン(順序は固定、段を削ってもよいがゲートは飛ばせない)
| 段 | 何をするか | 詳細ドキュメント |
|---|---|---|
| 0 要件 | 納品仕様(尺/アスペクト比/fps/ナレーションや字幕の有無/言語)、素材ソース、ターゲットオーディエンスと掲載場所を一度に確認。逐次質問しない | references/pipeline.md §0 |
| 1 参考 | 参考動画があれば実測:エネルギーチャート、カットポイント、静止比率、t80と残像(onetake analyze_ref.py)。参考がなければ、検証可能な数値目標を書く | references/motion-grammar.md |
| 2 コンセプト | 互いに異なる3つの中心アイデアを用意、ユーザーが1つ選択。同時に名前でlook/スタイルを指定、デフォルトを黙って適用しない | onetake §2 / mg-motion §2 |
| 3 リズムと継承 | 絵コンテをリズムと継承の両軸でデザイン:均等な長さのカットは禁止、1つのビートが前のビートを単純に置き換えるのも禁止 | references/motion-grammar.md |
| 4 素材とカット | 実際のページキャプチャ/スクリーンショットからのUI再現/オブジェクトモデル/レンズカード/エフェクトエントリ。最初は最小限の実行可能な断片から | 各エンジン ENGINE.md |
| 5 実装 | 各フレームは時間の純粋関数。アクションはライブラリから選択、カーブはt80で決定。まず静止フレームを出してから全体を | 各エンジン ENGINE.md |
| 6 レンダリングと納品 | 1080p30 ドラフト → 承認 → 4K60/最終版。3つのゲートを通過。納品契約に従って報告 | references/delivery.md |
3 · 鉄則(5エンジン統合・重複除去、すべて実績あり)
- 各フレームは t のみに依存する。
Date.now()禁止、rAFによる状態蓄積禁止、状態に依存するCSSアニメーション禁止。擬似乱数は固定シードを使用。 - テンプレートのストーリーをユーザーのストーリーとしない。 コンセプトは三択。新しい動画にテンプレートのビートを当てはめると、テンプレートと読まれる。
- 前の動画のlookを次の動画に持ち込まない。 look/スタイルは常に名前で選択されなければならず、デフォルトの黙認は禁止。
- メトロノームのように等分してカットしない。 均等な長さのカットは、単独のカットが良くてもスライドショーと読まれる。
- ビートを置き換えず、継承する。 各段落の境界では、何かが生き残り、目に見えて動いたり拡大縮小したりして次の段落に引き継がれる必要がある。排他のシーン(
display:noneによるページ替え)は、リズムが完璧でもPPT。ハードカットのクライマックスとエンドカードは例外。 - 余白はクライマックスを成立させる条件。 参考動画では約1/3の時間が静止している。全体が動きっぱなし = クライマックスなし。
- 小さな要素、大きな背景。 この種の動画のフレームはしばしば70%が白/背景色。画面いっぱいの素材は例外であり、デフォルトではない。
- 原因が見えること。 手が描画パスから描き出される、球が落ちる、点が分裂する——ページが自ら動き出すとスクリーンセーバーと読まれる。
- 速い動きにはシャッターが必要。 約80px/フレームを超える動きにモーションブラーがないと、ちらつきや二重像になる。レンダラーのシャッターを使い、CSSのblurは使わない。
- カメラは主役を追う。 静止したカメラ位置は「ダイナミックなトラッキングカメラが足りない」と評価される。
inFrameを宣言し、カメラを遅らせ、傾け、停止させる。 - ドラフトは1080p30。 承認されていない編集に4K60はレンダリングしない。
- パーティクル/紙吹雪/破片を装飾に使わない。 テンプレートと読まれる。派手にしたければ、文字を自ら着地させる。
- 音はワンルーム、ワンマテリアル。 各イベントに1つの合成音 = 音声版スライドショー。
- 偽装しない: 実行していないサンプル動画を再現と呼んではいけない。無音の動画を音ありと呼んではいけない。技術的通過を美的合格と呼んではいけない。
4 · 3つのゲート、すべて必須
| ゲート | 判定者 | 判定内容 | 通過しない場合の対応 |
|---|---|---|---|
| 機械ゲート | node scripts/qc.mjs gate <video> | 尺/アスペクト比/fps/音声トラックの有無/LUFS/真のピーク/黒フレーム/静止フレーム比率 | 動画を修正して再レンダリング、基準は変更しない |
| 静止フレームゲート | あなた自身 read_image | 6–10枚のキーフレームがポスターとして使えるか:構図/階層/余白/文字レイアウト | 画面を再構成 |
| 審査ゲート | クリーンなコンテキストの独立サブエージェント | 7次元スコア + フレーム番号付き修正リスト。修正後もう一度審査 | 影響度順に修正 |
機械ゲートは機械が計測できることだけを計測。美的判断はすべて独立審査に委ね、制作者の自己チェックには確証バイアスがある。
各エンジン固有のゲート(mg-qc.mjs、verify_promo.py、final-review.md、jury.md)の使い方と判定基準は references/quality-gates.md を参照。
5 · 音声
- 目標:ワンルーム、ワンマテリアル、イベント数はビート数より少なく。音楽はデフォルトで商用許可のある楽曲のみ使用し、記録する。
- よく使うターゲット:
−14 LUFS(SNS/ウェブ)、−16 LUFS(長尺/ポッドキャスト風)、真のピーク≤ −1 dBTP(AACエンコード後にはさらに上がる)。余裕を持たせる場合は−3.5を目安に。 - 既存のツール:onetake
sfx_palette.py/score.py(合成+録音ミックス)、mg-motionaudio.py+ 103サンプル、shotcraftsound-design.md+sfx-source.py(Freesound、デフォルトCC0)。 - 詳細とライセンスの制限は
references/sound.mdを参照。
6 · 納品契約
各動画には以下の7項目が必要(1つ欠けると未完了):コンセプト2文 / タイムコード付きビートシート / 署名技法の対応一覧 / 使用したスタイルとその継ぎ目 / 技術的アプローチ / 実測値(尺 アスペクト比 fps LUFS 真のピーク 黒フレーム 静止フレーム比率) / 正直なトップ3の弱点。
エンジン追加納品物:onetake 多言語同源(?lang= で分岐しない)、claude-motion ADAPTATION.md(保持/改変/ライセンス/未解決問題)、shotcraft モーションワークベンチと剪映プロジェクト、mg-motion バージョンディレクトリ v1/ v2/。詳細は references/delivery.md。
7 · ディレクトリマップ
Code-Video-Infinite.skill/
├── SKILL.md # このファイル:ルーティング + 鉄則 + ゲート + 納品
├── README.md # 人間向け:5つのエンジンの概要、インストール方法、ライセンス表
├── LICENSES.md # エンジン別ライセンスとサードパーティ宣言
├── references/ # 統合後の共有知識(この階層で新規作成、エンジン横断的な判断のみ)
│ ├── engine-selection.md # 決定マトリックスと境界
│ ├── pipeline.md # 6段階パイプラインの各段の詳細
│ ├── motion-grammar.md # リズム/カーブ/継承/カメラワークの統一語彙
│ ├── sound.md # 音声とライセンスの制限
│ ├── quality-gates.md # 3つのゲートの判定基準
│ ├── delivery.md # 納品契約
│ ├── assets-and-licenses.md# 素材の場所と再配布の可否
│ └── provenance.md # 5つのソース、バージョン、統合時の変更点
├── catalog/
│ ├── INDEX.md # 880件の素材リスト(生成物)
│ ├── index.json # 同一データの機械可読版
│ └── assets-index.json # 537の重い素材リスト
├── scripts/
│ ├── doctor.mjs # 環境自己診断
│ ├── find.mjs # エンジン横断検索
│ ├── qc.mjs # 統一機械ゲート(measure / gate / delegate)
│ ├── build-catalog.mjs # インデックス再構築
│ └── check-links.mjs # ドキュメント相互リンク健全性確認
└── engines/ # 5つのエンジンをそのまま保持(各ドキュメント/素材/ライセンス含む)
├── onetake/ ENGINE.md + lib/motion.js + scripts/ + looks/ + cases/
├── shotcraft/ ENGINE.md + references/shots(124) + template/ + demos/ + assets/
├── claude-motion/ ENGINE.md + references/*.json + assets/{cases,extensions,models,scenes}
├── mg-motion/ ENGINE.md + mg-styles-15/{harness,assets} + references/ + scripts/
└── wise-motion/ ENGINE.md + catalog/registry.json + references/effects(462) + scripts/
8 · いつどのファイルを読むか
| タイミング | 読むべきファイル |
|---|---|
| どのエンジンを使うべきかわからない | references/engine-selection.md |
| 作業を始める、各段の具体的なアクションとコマンドが必要 | references/pipeline.md |
| リズムが悪い、PPTみたい、動きが弱すぎる/強すぎる | references/motion-grammar.md |
| ナレーション/効果音/BGM/ラウドネス | references/sound.md |
| 動画ができた、ゲートを通るか不安 | references/quality-gates.md |
| 納品、レポート、再修正が必要 | references/delivery.md |
| あるエンジンの素材を使いたい、商用利用できるか不明 | references/assets-and-licenses.md |
| エンジンをアップグレードしたい、またはソースを追跡したい | references/provenance.md |
| エンジンの詳細(唯一の権威) | engines/<engine>/ENGINE.md およびその references/ |
9 · ライセンスと素材の境界(一言で)
5つのエンジンのライセンスはそれぞれ異なります。統合リポジトリは各エンジンのライセンスを変更しません。 onetake は PolyForm Noncommercial(非商用無料)、wise-motion は Apache-2.0、claude-motion とその上位 mg-styles-15 は MIT(サードパーティ資産は各ライセンスを保持)、shotcraft は独自ライセンスで Remotion は別途独立ライセンスあり(企業商用は各自確認が必要)。フォント、モデル、効果音、BGM の許諾は references/assets-and-licenses.md および各エンジンの LICENSE / ATTRIBUTION / NOTICE に記載されています。ブランド名はすべて架空のものを使い、実際の商標は使用しないでください。