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-retention | script.md(出典付き) |
| 3 | ナレーション収録と単語のタイミング | voiceover-and-timing | vo/voice-final.wav、vo/words-final.json |
| 4 | 全ショットのストーリーボード、オーナー承認 | storyboard-and-shot-plan | storyboard.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-checks | MP4、QAレコード |
| 14 | オーナーレビューと学習 | review-rounds-and-learning | フィードバック、次バージョン、パッケージの更新 |
この順序でステップを実行します。ステップ4〜11はすべてフィルムごとに1つのファイル(film.mjs)内で行われるため、実際にはストーリーボードを計画し、ショットごとに構築しながらスチルをレンダリングします。
非妥協ルール
- ストーリーボードファースト。 オーナーは、ナレーションが収録され、ショットが詳細に構築され、レンダリングが行われる前に、ボード(スキル4)を承認します。
- テクニックはコピー、コンテンツは決してコピーしない。 すべてのキャラクター、セット、サイン、ジョーク、発明されたブランド名は、私たち自身のものです。実在の歴史上の人物は、私たち自身のトゥーンキャラクターとして描かれます。著作権で保護されたキャラクターを決して描かないでください。
- フックが最初。 最初の2秒で疑問を提示し、タイトルの質問がトピックを指定します。
- すべての数字はオブジェクトになり、話された単語とともにフレーム上に登場します。単なるテキストオーバーレイは不可。
- ジェスチャーは単語の4フレーム前に、表情はまばたきを介して2フレーム前に配置されます。
- すべての目に見えるアクションに音があり、アクションのない音は許可されません。
- すべてのフレームがチェックされます(自動フレーミングチェックとジャンプスキャン、その後目視確認)オーナーが確認する前に行います。
- 事実には出典があります。 出典が一致しない場合は、明確な言葉で曖昧にします。
- オーナーのブランド: 肌色の顔、5つのブランドカラーにブランドレッドを加えたもの、および付属のフォント:キャプション用のTeX Gyre Heros Bold + Instrument Serif Italic、ラベル用のTitan One(オーナーが追加する場合は、ライセンス済みのHelvetica Bold + Editorial New Italic、どちらかを指定)。すべてbrand/にあります。
新しいトピックのクイックスタート
templates/new-film/をexamples/<topic-slug>/にコピーします。- 新しいトピックワークシート(スキル1)に記入し、スクリプト(スキル2)を
film.mjsのSCRIPTに書き込みます。 - ドラフトタイミングでショットを構築し、ストーリーボードスチルをレンダリングします:
node recipe/tools/render.mjs examples/<slug>/film.mjs <outDir> --stills shots --qa - ストーリーボードファースト。
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を作成した後)。
- 実際の単語に合わせて再タイミング(自動)、ビデオをレンダリング、次にサウンドをレンダリングします:
node recipe/tools/render.mjs examples/<slug>/film.mjs <out> --video --name silent.mp4python -I recipe/tools/sound.py examples/<slug> <out>/silent.mp4 <out>/shots.json "<out>/<Title>.mp4" - チェック:フレーミングレポート、
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 として渡し、ファイルに書き込まないでください。