Communitygithub.com

Chans-gh/ai-coding-video

コードで1フレームずつ動画を作る(Coding Video)スタイルライブラリと手法:100種類以上の純粋コードで実現可能なビジュアルスタイル(C類、トピックと技術:Canvas 2D、WebGL、SVG、Three.js、p5.js、Manim、Remotion等)、実際の素材(T類:録画、スクリーン録画、写真、データ)やAI生成素材(G類:画像生成、動画生成、音声合成)をコードで編集合成する方法、コンテンツタイプ別(教育、トークショー、コマース、プロモーション、短編ドラマ、MV、ニュース、ドキュメンタリー、チュートリアル、旅行、スポーツ、子ども向け絵本)に分類。各スタイルにコピー可能なスタイルプロンプト文、スタイル選択のインデックス、プロンプトの書き方、素材の入手と処理、音楽とナレーションガイド、さらに「スタイル選び」から「サンプル動画出力」、そして「スタイルパックとして固定」までの3段階プロセスを提供します。動画のスタイル決定、スタイルプロンプト作成、AIによるレンダリングコード生成、素材を使った動画制作、「どんなスタイルがあるか/Xに適したスタイルはどれか」の質問、音声合わせなどに使用。

ai-coding-video とは?

AI Coding Videoは、コードを用いて動画を制作するための包括的なスタイルライブラリと方法論を提供するAIエージェントスキルです。Canvas 2D、WebGL、SVG、Three.js、p5.js、Manim、Remotionなど多様な技術スタックに対応し、100種類以上の純粋コードで実現可能なビジュアルスタイル(C類)に加え、実際の素材(T類)やAI生成素材(G類)を活用した動画制作をサポートします。コンテンツタイプ(教育、トークショー、コマース、プロモーション、短編ドラマ、MV、ドキュメンタリー、チュートリアル等)ごとに最適なスタイルを提案し、コピー可能なスタイルプロンプト、技術検証済みのレンダリングコード、素材管理ガイド、音楽・ナレーション選択の手順を提供。スタイル選定からサンプル動画出力、スタイルパック固定までの3段階ワークフローを備え、CursorやClaude CodeなどのAIエージェント環境で効率的に動画制作のスタイリングと実装を支援します。各スタイルには一意のID(例:C-013、T-007)が付与され、インデックスで目的に応じたフィルタリングが可能。AIエージェントはユーザーの要件に基づいて候補スタイルを絞り込み、プロジェクトの技術スタックに合わせた実装コードを生成できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Chans-gh/AI-Coding-Video/tree/HEAD/skills/ai-coding-video

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

AI Coding Video:コードで動画を作るスタイルライブラリ

内容とメンテナンス方法は README.md を参照。このファイルはAIアシスタントがどのように参照・使用するかについて説明します。

いつ使うか

  • ユーザーが動画のスタイルを決めたい、または「どんなスタイルがあるか/Xに適したスタイルはどれか」と尋ねたとき。
  • スタイルの説明文が必要で、それを使ってビジュアルプロンプトを作成したり、直接レンダリングコード(Canvas、WebGL、SVG、Three.js、Manim、Remotion 等)を書くとき。
  • ユーザーが特定のスタイルを自分のプロジェクトで試してみたい(サンプル動画出力)、または選んだスタイルを固定したい(スタイルパック作成)とき。
  • ユーザーが録画、スクリーン録画、写真、データなどの素材を持っているか、AIによる画像生成、動画生成、音声合成を使って素材を作り、コードで編集して動画にしたいとき。
  • 動画に合わせるBGM、効果音、または日本語ナレーションの音色を選びたいとき。

3段階の使い方:スタイル選びからスタイルパックまで

レベル何をする成果物いつ使用する
レベル0:辞書このライブラリから2~3の候補を選び、プロンプトと理由を提示候補リスト + 各スタイルのプロンプト、技術パスユーザーがまだスタイルを決めていないとき
レベル1:サンプル候補にユーザーのブランドカラー、フォント、実際のコンテンツを適用し、ユーザープロジェクトの技術スタックで3~5秒実行横16:9と縦9:16の各サンプル動画 + フレーム抽出コラージュ、ユーザーに確認プロジェクトのスタイル変更・追加時に、1回の対話で完了
レベル2:スタイルパックユーザーが承認したスタイルを、そのプロジェクトでよく使われる表現方法(オープニング、解説、データ、トランジション、字幕等)に適用再利用可能なコードモジュール + プロジェクト規約に組み込むスタイル説明(カラーパレット、フォント、動き、音声、禁止事項)レベル1が承認された後

各レベルはユーザーの承認を得てから次に進む。レベル1のサンプル出力前に、その技術パスがユーザーのプロジェクトで動作するか(ブラウザ、GPU、Python環境等があるか)を確認する。

どう調べるか(順番に従い、一度に全てを読まないこと)

  1. どのスタイルを使えばいいか分からない → まず3つのカテゴリに分類:画面が全てコードで算出される(C類)、実際の素材を使用(T類)、AI生成素材を使用(G類)。ユーザーがどのタイプの動画を作りたいか(トークショー、コマース、MV、ニュース…)を聞いたら、まず index.md の「コンテンツタイプ別」表を調べ、T、G列を対照して提示。純粋コードの場合は、残りのインデックス表(トピック、ビジネス用途、ターゲット、感情、プラットフォームとフォーマット、素材と条件)からそれぞれ該当する行を探し、複数の表に重複して現れるものを優先する。ユーザーに2~3の候補と理由を提示する。
  2. スタイル名または番号が既に分かっている → index.md の「スタイルディレクトリ」で番号(例:C-013、T-007)を見つけ、対応する styles/*.md(C類は技術別ファイル、T類は styles/footage.md、G類は styles/generated.md)を開き、アンカー #C-013 でエントリに移動。
  3. 完全なプロンプトまたはレンダリングコードを書きたい → prompting.md を読む:8つの制御ポイント、汎用テンプレート、制作パス、例、よくある失敗と対策。
  4. 技術でフィルタリングしたい(例:「SVGのみ」「Three.jsが必要」)→ tags.md と data/styles.json を読む。各エントリには id / name / theme / content_type / materials / fit / prompt / layer / suggested / verified / render_code / pack / refs がある(C類はtheme、T、G類はcontent_typeとmaterials)。
  5. 音声を合わせたい → sound.md を読む:まずトピックに基づいてBGMと効果音を決め、次に用途に応じてナレーションの音色を選ぶ。
  6. 素材を使いたい(T類、G類) → materials.md を読む:素材の入手先、ライセンスの確認方法、生成方法、コードで扱うための統一処理、音声の合わせ方。
  7. サンプル動画(レベル1)またはスタイルパック(レベル2)を出力したい → making.md を読む:着手前の確認事項、サンプル動画の書き方とセルフチェック、スタイルパックの5つの方法とSTYLE.mdの書き方。
  8. レンダリングコードを書きたい → まずこのSkillに付属のコードを確認:samples/API.md(サンプル骨格と関数クイックリファレンス)、samples/<番号>/(各検証済みスタイルの scene.js、sound.py)、packs/<名前>/(スタイルパック)。エントリ内の「サンプルコード」「スタイルパック」リンクテキストのパスがこのSkillディレクトリ内の位置を示しているので、ネット経由でGitHubから取得する必要はない。

使用ルール

  • エントリ内の text コードブロックはそのスタイルプロンプト文。そのまま使い、prompting.md のテンプレートでトピック、仕様、音声、フローを補完する。
  • 「技術(検証済み)」は、このリポジトリにサンプル動画を実行できるコードがあることを示す。「技術(推奨)」は未検証の推奨記述であり、ユーザーに説明する際には区別すること。
  • スタイル名だけを書くと汎用的なフラットなスタイルに退化する:必ず3~5の特徴要素、禁止事項、参考作品を含めること。
  • 参考作品は構図、リズム、配色のロジックのみを学び、キャラクター、ロゴ、音楽をそのまま流用しない。名前が作品名や作者を含む「オマージュスタイル」(例:C-187 ジブリ風)も同様:描き方だけを学び、キャラクター、シーン、ロゴ、台詞は全てオリジナルにすること。
  • プロンプトは方向性を決めるだけであり、同じ文でも毎回同じ結果にならない。同じ効果を再現するには、「技術(検証済み)」エントリのサンプルコードを改造して使うこと。プロンプトだけに頼らず、ゼロから再設計もしない:まず samples/<番号>/ をユーザープロジェクトにコピーして動作確認し、その後コンテンツを差し替える(方法は making.md「レベル1:サンプル」参照)。「スタイルパック」がある場合はそれを直接使う。
  • サンプルコードが提供するのはパイプラインと描画方法であり、コンテンツではない:出力パイプライン(lib.js、synth.py、batch.py)はそのまま使用可。抜き型、ライティング、テクスチャなどの描画方法は流用可。サンプル内のキャラクター、構図、配色、テキストはそのままユーザーの動画に流用せず、ユーザーのトピックとブランドに差し替える。
  • 事例内のツールチェーン、費用、所要時間は原作者の自己申告であり、未検証のため保証としてユーザーに約束しない。
  • C類の画面は全てコードで算出され、素材は一切使用しない。写実的な顔、実際の人間によるトークショーなどの効果は純粋コードでは実現不可能なので、T類(ユーザー自身の素材)またはG類(AI生成素材)に切り替え、ユーザーに準備が必要なものを伝える。
  • T類では、ユーザーが使用権を確認した素材、またはパブリックドメイン・オープンライセンスの素材のみを使用し、出典とライセンスを逐一記録する。G類では、任意の画像生成・動画生成・音声合成サービスを使用可能。materials.md「生成サービスの設定」 に従って設定を行う。どちらのカテゴリも設定されていない場合、まずユーザーに何を設定する必要があるかを伝え、生成が不要な部分は通常通り進める。実在の人物は生成せず、実在の人物の声はクローンしない。

内容の変更

スタイルの追加や変更手順は README.md の「メンテナンス」を参照。変更後は必ず以下を実行し、パスすること:

python3 scripts/build_index.py          # styles/*.md から data/styles.json と index.md のスタイルディレクトリを生成
python3 scripts/build_index.py --check  # 番号、タグ、画像、リンク、ディレクトリの一貫性をチェック

番号は追加のみ、変更不可。data/styles.json とスタイルディレクトリは生成物であり、手動で編集しない。

関連スキル