Communitygithub.com

z1fex/3d-cartoon-animation

縦型3Dカートゥーン解説動画(30~60秒、9:16)を作成。大きな頭のトゥーンキャラクターが「あなた」に向けて物語を語り、まばたきで表情が切り替わり、カメラは止まらず、すべての数字が物理オブジェクトとして登場。歴史、科学、技術、「仕組み」や「どうなるか」系の解説に最適。

3d-cartoon-animation とは?

このスキルは、あらゆるトピックを扱う縦型3Dカートゥーン解説動画(30〜60秒、9:16)を一貫したパイプラインで自動生成するための完全なレシピパッケージです。14のステップからなるワークフローで、トピックの選定からスクリプト作成、ナレーション、ストーリーボード、キャラクターアニメーション、カメラワーク、編集用キャプション、サウンドデザイン、レンダリング、品質チェック、オーナーレビューまでを網羅。Claude CodeやCursorなどのAIエージェントが実行可能な一連のスクリプトとツール群(Node.js + Python + ffmpeg + Three.jsベースのレンダラー)を提供します。非妥協ルールとして「ストーリーボードファースト」「全ての数字を物理オブジェクト化」「ジェスチャーと表情のタイミング厳守」「オーナーのブランドカラーとフォントの使用」などが厳格に設定されており、一貫性のある高品質なアウトプットが保証されます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/z1fex/3D-Cartoon-Style-Animation-Claude-Skill/tree/HEAD

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

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

ドキュメント

3Dカートゥーンアニメーション

バージョン1.0.1(公開版)・メソッドとルックはラウンド1でオーナーに承認済み(「重力はどのように発見されたか」v3、2026年10月26日)。1.0.1によりツールは任意のコンピュータで動作し、フィルムのレンダリング結果は1.0.0と同じです。

「オーナー」 とは、これらのファイルにおいてフィルムの制作依頼者であり承認者を指します。

ストーリーボードファースト(オーナーのルール、2026年10月27日)。すべてのフィルムと新バージョンは、オーナーのフレームワークによるストーリーボードから始まります。承認(スキル4)を得るまでは、ナレーションの収録、詳細な構築、レンダリングは行われません。

このパッケージは、特定の種類の動画(短く、テンポが良く、温かみのある3Dカートゥーン解説動画)を制作するための、完全で再利用可能な方法です。あらゆるトピックに対応します。実際の例は重力に関するものですが、メソッド自体は特定のトピックに依存していません。各スキルは、フックの見つけ方、キャラクターのキャスティング、場所の構築、すべての数字のオブジェクト化、各ジェスチャーとナレーションのタイミング調整、サウンドデザイン、全フレームのチェック方法を、次のトピックが何であれ説明します。

完成した動画の形式

  • フォーマット: 1080×1920、30fps、30〜60秒。ナレーションの一文=1ショット(約1.1〜1.5秒ごとに新しい絵)。最終行は最初のフレームにループします。
  • ストーリー: 最初の2秒で疑問を提示するフック、早期の見返り、「あなた」に語りかけられる stakes、エスカレーション、2/3地点での再フック、1枚の絵で示されるどんでん返し、ループエンディング。
  • ルック: ソフトトゥーンシェーディング、インクアウトライン、温かみのある実用的なライト、リムライト、被写界深度、ライトブルーム、グレイン。肌色の顔。ブランドカラー(ルージュノワール、ブルーコーラル、コニャック、ホワイトサンド、アンスラサイト)を衣装、小道具、セットに使用。現実のものは現実的に(地球は青と緑)。
  • キャラクター: ボールヘッド、ビーンボディ、棒状の手足、ミトンの手。リップシンクなしのペイントされた顔。ストレスのある単語の直前、まばたきを通じて表情が切り替わり、ホールド中は完全に静止。
  • カメラ: 常に動き続け、動きの間を這うように移動し、各文の最初の単語で6フレームのディゾルブに加速。
  • 数字はオブジェクトに: 話されたすべての数字は、そのフレームにカウンター、カレンダー、巻尺、ゲージ、または照明付きサインとして配置されます。
  • テキスト: 最初の2〜3秒間、上部にトピックの質問(「重力はどのように発見されたか?」)、高さ70%の位置に編集用キャプションのロックアップ(EVERYTHINGの上にyou know)。
  • サウンド: ナレーション(ElevenLabs)、その下に-18 LUのオリジナル音楽、すべての目に見えるアクションに控えめなフォーリー音、すべてのストーリービートにアクセント、-14 LUFSにマスタリング。

パイプライン(各ステップはスキル)

#ステップスキル出力
1トピックを映像アイデアに変換topic-to-film視点、フック、キャスト、場所、数字リスト、全体像
2スクリプト作成script-and-retentionscript.md(出典付き)
3ナレーション収録と単語のタイミングvoiceover-and-timingvo/voice-final.wav、vo/words-final.json
4全ショットのストーリーボード、オーナー承認storyboard-and-shot-planstoryboard.md、ストーリーボードスチル、オーナーのボード(storyboard/<v>/<Title> - storyboard <n>.png および .html)
5ルックの設定look-lighting-and-brandライトプリセット、パレット、ショットごとのレンズ
6キャストの構築characters-and-facesリグ、衣装、表情の切り替え
7各節の演技motion-and-actingポーズキー、ギャグ、物理演算
8カメラの移動camera-and-transitionsショットごとのオービット移動
9数字の物理オブジェクト化facts-as-objects数字ごとのデバイス
10場所の構築と装飾sets-and-propsキットからの場所、装飾済み
11画面上のテキスト作成captions-and-title-hookキャプションロックアップ、タイトルの質問
12サウンドデザインsound-design-and-mixキューリスト、ミックス、ステム
13全フレームのレンダリングとチェックrender-and-quality-checksMP4、QAレコード
14オーナーレビューと学習review-rounds-and-learningフィードバック、次バージョン、パッケージの更新

この順序でステップを実行します。ステップ4〜11はすべてフィルムごとに1つのファイル(film.mjs)内で行われるため、実際にはストーリーボードを計画し、ショットごとに構築しながらスチルをレンダリングします。

非妥協ルール

  1. ストーリーボードファースト。 オーナーは、ナレーションが収録され、ショットが詳細に構築され、レンダリングが行われる前に、ボード(スキル4)を承認します。
  2. テクニックはコピー、コンテンツは決してコピーしない。 すべてのキャラクター、セット、サイン、ジョーク、発明されたブランド名は、私たち自身のものです。実在の歴史上の人物は、私たち自身のトゥーンキャラクターとして描かれます。著作権で保護されたキャラクターを決して描かないでください。
  3. フックが最初。 最初の2秒で疑問を提示し、タイトルの質問がトピックを指定します。
  4. すべての数字はオブジェクトになり、話された単語とともにフレーム上に登場します。単なるテキストオーバーレイは不可。
  5. ジェスチャーは単語の4フレーム前に、表情はまばたきを介して2フレーム前に配置されます。
  6. すべての目に見えるアクションに音があり、アクションのない音は許可されません。
  7. すべてのフレームがチェックされます(自動フレーミングチェックとジャンプスキャン、その後目視確認)オーナーが確認する前に行います。
  8. 事実には出典があります。 出典が一致しない場合は、明確な言葉で曖昧にします。
  9. オーナーのブランド: 肌色の顔、5つのブランドカラーにブランドレッドを加えたもの、および付属のフォント:キャプション用のTeX Gyre Heros Bold + Instrument Serif Italic、ラベル用のTitan One(オーナーが追加する場合は、ライセンス済みのHelvetica Bold + Editorial New Italic、どちらかを指定)。すべてbrand/にあります。

新しいトピックのクイックスタート

  1. templates/new-film/ を examples/<topic-slug>/ にコピーします。
  2. 新しいトピックワークシート(スキル1)に記入し、スクリプト(スキル2)を film.mjs の SCRIPT に書き込みます。
  3. ドラフトタイミングでショットを構築し、ストーリーボードスチルをレンダリングします: node recipe/tools/render.mjs examples/<slug>/film.mjs <outDir> --stills shots --qa
  4. ストーリーボードファースト。
    • templates/storyboard.json を examples/<slug>/storyboard/v1/storyboard-1.json にコピーし、ショットごとに1つのパネルとそのスチルを追加します。
    • ボードを描きます:node recipe/tools/storyboard-board.mjs examples/<slug>/storyboard/v1/storyboard-1.json。
    • オーナーにボードを提示し、承認されるまで修正します(storyboard-2、...)。
    • その後、ナレーションを収録します: ELEVENLABS_API_KEY=… node recipe/tools/voiceover.mjs examples/<slug>(vo/text.txt を作成した後)。
  5. 実際の単語に合わせて再タイミング(自動)、ビデオをレンダリング、次にサウンドをレンダリングします: node recipe/tools/render.mjs examples/<slug>/film.mjs <out> --video --name silent.mp4 python -I recipe/tools/sound.py examples/<slug> <out>/silent.mp4 <out>/shots.json "<out>/<Title>.mp4"
  6. チェック:フレーミングレポート、node recipe/tools/jump-scan.mjs <video> <out>/shots.json、python -I recipe/tools/sfx-levels.py <out> <out>/cue-sheet.txt、その後すべてのフレームを目視確認(スキル13)。

ファイル配置

パス内容
skills/14のステップスキル
recipe/engine/レンダラー:core.mjs(ルック、ポストプロセス、キャプション、コンポジット、チェック)、faces.mjs、character.mjs、props.mjs、props2.mjs、kit.mjs(トピックに依存しない場所とライトプリセット)、places.mjs / places2.mjs(例の装飾された場所)、index.html、vendor/three(three.js r186、MIT)、fonts/
recipe/tools/storyboard-board.mjs(オーナーのストーリーボードボード、PNGとクリック可能なHTMLページとして)、render.mjs、voiceover.mjs、sound.py、jump-scan.mjs、sfx-levels.py、paths.mjs(FFmpeg、Chrome、Playwrightの位置)
templates/new-film/film.mjs(ドラフトタイミングで動作するトピックに依存しないスターター)とワークシート
examples/how-gravity-was-found/承認済みフィルム:ソース、ナレーション、最終ビデオ、ストーリーボード、キューシート、ステム、以前のバージョン
references/リファレンススタディ、オーナーの指示、エンジンAPI、グリッチカタログ、フィードバック履歴、エンジンノート
brand/承認済みフィルムの色とフォント:palette.json、palette.css、style-sheet.png(recipe/tools/style-sheet.mjs で描画)
evaluation/納品チェックリスト、受け入れ基準、既知の制限
preview/style-card.json:スタイルの名前、ルック、フォーマットを1枚のカードにまとめ、例のポスター、フィルム、ストーリーボードを参照

新しいマシンでのセットアップ

必要なツール:

  • Node 22以上
  • FFmpeg 6以上(ffprobeを含む)、PATHが通っていること
  • Python 3.10以上(NumPyあり)
  • ChromeがWebGL2に使用できるグラフィックスカード

パッケージフォルダで、npm install、npx playwright install chromium、pip install -r requirements.txt を実行します。詳細な手順はREADMEにあります。FFmpegが別の場所にある場合は、CARTOON_FFMPEG を設定します。別のChromeを使用するには、CARTOON_CHROME を設定します(recipe/tools/paths.mjs を参照)。

フィルムはパッケージフォルダ内(examples/<slug>/)に配置する必要があります。これは、レンダラーがパッケージをブラウザに提供するためです。ナレーションには、テキスト読み上げ権限を持つElevenLabs APIキーが必要で、コマンド実行時に ELEVENLABS_API_KEY として渡し、ファイルに書き込まないでください。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル