anidoodle について
anidoodleは、コードで静止画、映像、ループ、インタラクティブ作品を作るスキルです。決定論的な描画エンジンに、ビジュアル制作、音楽、レビュー、書き出しの手順を組み合わせています。
主な機能
- 01コードによる静止画・映像・ループ制作
- 02画面と音声の決定論的な生成
- 03ビジュアルスタイルと物語の制作手順
- 04音楽制作と効果音
- 05レンダリング、検証、書き出しツール
活用シーン
- 01コードでポスターやカバーを制作
- 02ループ映像やアニメーションロゴを制作
- 03音楽付きのストーリー映像を制作
- 04解説映像やローンチ動画を制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alexgreensh/ anidoodle --skill anidoodleインストール後、Claude Code で/anidoodleを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
engine/package-lock.jsonpackage.jsonengine/assets/refs/PROVENANCE.jsonengine/facts/launchExample.jsonlaunchExampleClean.jsonengine/src/canvas-core/adaptAlmond.tsadaptAquarelle.tsadaptScrapbook.tsassetKit.tsbake.tsbakerSheet.tsballoon.tsballoonDraw.tsbanner.tsbitRig.tsblueprint.tsblueprintKit.tsbrickBalloon.tsbrokenColour.tsbrokenColourKit.tscallout.tscalloutDemo.tscamera.tsengine/src/canvas-core/character/build.tscheck.tsdesign.tsengine/src/canvas-core/character/human/balance.tscanon.tsclothing.tsfigure.ts詳細
anidoodle
すべてコードで描かれた画像、映像、インタラクティブ作品です。ある純粋関数がすべてのフレームを描き、別の関数がスコアを構成して再生します。同じソースから、どのマシンでも、どのサイズでも、どの長さでも、同じピクセルと同じサウンドを再構築できます。8種類のアコースティック楽器は、任意のダウンロードを利用して実物の録音を再生できます。スコアに取りかかる前に、必ずユーザーに確認してください。許可なくダウンロードしてはいけません。
エンジンを作るのは簡単なほうです。作品は、意図がなかったから、題材がそれ自体のアイコンにすぎなかったから、スタイルが単なるパレットの差し替えだったから、音楽に形式がなかったから、あるいは断片を承認し続けるうちに作り手の忍耐が尽きたから、無駄になってしまいます。このスキルには、こうした問題を防ぐための技術が備わっています。
まず質問してから、制作する
references/workflows/start-here.md を読み、そこにあるヒアリングを行ってください。質問は一度に1つずつ、依頼内容で未確定のことだけを尋ね、まず自分のおすすめを伝えます。何を作るのか、どのスタイルにするのか(ギャラリーシート https://github.com/alexgreensh/anidoodle/blob/main/skills/anidoodle/assets/styles.jpg を見せてください。リストは references/styles/INDEX.md にあります)、どの形にするのか(1x1、9x16、16x9、4x5、または任意の幅 x 高さ)、どのくらいの長さにするのか(長さは自由。決して上限を設けないでください)、どのようなサウンドにするのか(無音、または音楽のスタイルとムード)、どのキャラクターを使うのかを確認します。「お任せします」と言われたら、自分で選び、その理由を1行で伝えてください。描き始める前に、回答を簡潔なブリーフにまとめてください。
何を作りますか?
| 制作物 | 参照先 |
|---|---|
| 静止画:ヒーロー画像、スポット画像、カバー、カード、ポスター、シリーズ | 以下の静止画ワークフロー、references/formats.md |
| 自分で描かれていく画像(タイムラプス、メイキング) | references/workflows/drawing-process.md |
| ループ、ステッカー、アニメーションロゴ、アンビエントヘッダー | 以下のループワークフロー、references/formats.md |
| 長さ自由のストーリー映像 | 以下の映像ワークフロー、references/workflows/long-film.md |
| 解説やインフォグラフィック。アイデアを説明するために分解される機械(スタイル自由) | references/workflows/explainer.md、references/workflows/machines.md |
| ローンチ動画や製品動画(スクリーンショットも歓迎) | references/workflows/launch-video.md。references/workflows/launch-video-kit.md を使って制作します。製品情報は references/workflows/facts.md を参照してください |
| ページの背景色とブランドに合わせたサイト用アート(ヒーロー画像、タイル、スポット画像、シェアカード)、または UI に反応するウェブアニメーション | references/workflows/site-art.md、references/workflows/interactive.md |
| 描画レッスン、または「これはどう描けばいいですか?」 | references/workflows/teach-drawing.md |
| どのスタイル(木版画からおもちゃのブロックまで)でも同じ見た目を保つキャラクター | references/workflows/character-consistency.md、references/anatomy.md |
| ユーザーの画像に合わせたスタイル | references/workflows/adapt-a-style.md |
| スコアやサウンドトラック | references/music/README.md |
- 音楽:スタイルを表す語彙とムードを選び、緊張感の起伏とモチーフをスケッチし、独自のハーモニー、モチーフ、形式を作曲します(
references/music/compose.md、技法についてはreferences/music/theory/)。node tools/music.mjs craftの結果が、自分で選んだ指摘だけになるまで修正し、人が聴く前にcheckが PASS になることを確認してください。スタイルが決めるのはサウンドであり、音符ではありません。 - 効果音:
references/music/sound-design.mdを参照してください。映画のフレームに合わせて鳴らす、シード値で決まる14種類のレイヤー効果音(filmSfx)があります。スコアの音量は効果音に合わせて下がり、各キューはスコアから6 dB 以内に収める必要があります。効果音は実際に方向が変わる場面に限り、映画1本につきライザーとインパクトを1つずつにしてください。 - ローンチ映像:
launchTemplate.tsは、データ(プロンプト、プレート、または製品自体の UI、製品に合わせて作曲したスコア、文言、インストール用の行)から、1つのタイムラインを使ってあらゆる形の製品ローンチ映像をレンダリングします。launch.mjs new|ship。トークンの節約につながる習慣についてはreferences/working-method.mdを参照してください。
7つの原則
- すべての要素には意味があります。 静止画なら、1つのアイデア、1つの主役、1つの光源。映像なら、1つの変化、1つの結末、そして再び登場する1つの象徴です。→
references/storytelling.md - リアリティの基準を明示します。 動物、物、人のいずれについても、解剖学的特徴、視点、開いた参考資料を明記します。→
references/realism-and-craft.md、references/anatomy.md - スタイルとは、描線の作り方です。 配色だけでなく、画材、エッジ、描線の順序を変えます。→
references/styles.md - 静止画1枚で見た目を確認してから、最初から最後まで作ります。 それ以降は、チェック工程にかけるコストが、その効果を上回ります。→
references/working-method.md - 契約は絶対です。
(frame, env)に対して純粋であること(インタラクティブな作品では入力ログも含みます)。rng(seed)のみを使い、時計もctx.filterも使いません。生成物はありません。持ち込まれた画像はハッシュで埋め込めます。サウンドパックは別途ダウンロードし、ハッシュで固定します。→references/determinism-and-contract.md - 音楽は形容詞ではなく、計画を立てます。 スタイル、各セクションのムード、データとしての音符、その後に測定です。音楽を聴くことはできないため、出荷前に人間が1人で聴きます。→
references/music/ - 1人が指揮し、1人が制作し、2人ともすべて記録します。 セッションの品質が落ちたらリセットします。記憶を担うのはファイルです。→
references/working-method.md
ワークフロー
静止画。 (1) アイデアを1文で述べ、主役と光源を明記します。(2) 実在するものにはすべて本物の参考資料を開き、どの資料かを記録します。(3) スタイルを選び、まずそのスタイルのプレートのヘッダーを読みます。(4) その画材の順序で描きます。(5) still.mjs でフルサイズにレンダリングし、切り抜き(顔、手、足、接合部)でディテールチェックを行い(references/craft-bar.md)、書面で批評します。✋ 承認は1回です。 (6) 同じソースから、求められたすべてのサイズと形状を納品し、reproducible と表示されたことを伝えます。
ループ。 静止画と同様ですが、さらに、すべての動きがループ上で周期的であること、主役が決して止まらないこと、毎秒何かが動くことが条件です。最後のフレームとフレーム0を比べて、継ぎ目を確認します。✋ 承認は1回、動作するファイルに対して行います。
映像。 (1) 3文でストーリーをまとめます(導入、変化、結末)と、象徴を決めます。長い映像では、軸となるストーリーに加えて、各章を1行でまとめます。書けない場合は、作業を止めます。(2) グリッド:1ビートは 60 x fps / bpm フレームです。bpm は依頼内容のスコアから決めます。すべてのフレーム番号を記載したキューテーブルを1つ用意し、読み込み時にチェッカーを実行します。(3) 実在するものにはすべて本物の参考資料を用意します。(4) 見た目を確認する静止画を1枚、最も難しいフレームで作り、書面で批評します。✋ 承認。 (5) 音楽サンプルを8秒分だけ作ります。✋ 承認。 (6) 映像全体を制作します。機械的なチェックを継続的に実行します。(7) 新しい批評者がレビューします。あなた自身では行いません(references/workflows/review.md):ストーリーボードの後、各シーンの後、そして全体のレンダリング後に、制作過程を一切見ていない新しいサブエージェントが、問題を優先度順・タイムスタンプ付きで報告し、判定を下します。最も重大な問題を修正し、別の新しい批評者が再確認します。最大3ラウンドまでとし、ledger.md に記録します。
(8) ✋ 最終承認。 検証したことと、検証できないことを伝えます。
承認ゲートは最大3回です。承認は予算です。間違えたときの損失が大きい箇所に使います。
クラフトの基準
判断基準:誇りを持った人間のイラストレーターが納品する品質か、それとも機械的に図形を組み合わせただけか。注意点を網羅した表は references/craft-bar.md です。特に多くの作品の品質を損なうのは、楕円だけで作られた主役、あるスタイルを別のスタイルに色替えしただけの表現、描かれるのではなくフェードインする物体、ゴムのような関節の人物、ショットごとに描き方が異なるキャラクターです。
動きのある作品には何も起きない時間を作りません。毎秒、何かが目に見えて変化します。描画される過程を見せる映像は kind: "drawing" と宣言し、より厳しい基準で評価します。静止したままのフレームでは不合格です。
エンジン
engine/ は、移植可能なアートコアとツール群です。engine/src/canvas-core は DOM もバックエンドも認識しません。W、H、fps、durationFrames は作品の meta から取得します。
カメラの動き(パン、ドリー、レンズ、ドリーズーム、視差、シェイク)とスローモーションやフリーズフレームについては、engine/src/canvas-core/camera.ts、engine/src/canvas-core/timeRemap.ts、references/camera.md を参照してください。
シーン間の継ぎ目については、references/motion-grammar.md を参照してください(動きを受け継ぐカット:seams.ts。tools/deck.mjs deal は作品ごとに異なる動きを割り当てます。deck.mjs find "<name>" は、動きの日常的な呼び名から対応するカードを探します)。render.mjs --blur auto はモーションブラーを付けてレンダリングします(画面上で計測した速度に基づき、フレームごとのサブフレームを線形光で平均化します。--shutter 180)。デフォルトの処理経路には影響しません。
node <skill>/engine/tools/scaffold.mjs ~/art --film intro --format 9x16 --duration 12 # seconds
cd ~/art && npm install && npx playwright-core install chromium
node tools/still.mjs intro --frame 0 --out out/look.png --scale 2 # a still, with its hash
node tools/render.mjs intro # MP4; --out x.gif|x.webm|x.apng
node tools/gate.mjs intro # determinism, contract, dead air
node tools/emit.mjs intro --out out/intro.html # one self-contained offline player
node <skill>/engine/tools/soundfetch.mjs list # no network. Nothing installed and not declined: ask the user now
node <skill>/engine/tools/soundfetch.mjs get piano rooms # on their yes (piano 233 MB, all 373 MB). On no: soundfetch.mjs decline
| ツール | 機能 |
|---|---|
scaffold.mjs | 静止画や映像を含むプロジェクトを作成します。--duration、--format または --size、--fps、--bpm を指定できます |
still.mjs / render.mjs | ハッシュ付きでフレームを 2 回描画します(1 つのブラウザーで --frames a,b,c --sheet を指定)/任意の形式で作品をレンダリングします(--from/--to、--poster-frame、--hashes) |
gate.mjs | 決定性、コントラクト、無音区間、アーティファクトをチェックします。--self-test は失敗を検出できることを証明します |
registry.mjs / gallery.mjs | スタイルプレート自体からスタイル一覧を取得します/ギャラリーシートを生成します |
docs-check.mjs | ドキュメント内のスタイル数、長さ、パスがコードと一致しない場合に失敗します |
verify-export.mjs | レンダリング済みファイルの QA を行います:フレーム、長さ、スコア、A/V 同期、エンコード後のトゥルーピーク。最初のフレームやループの継ぎ目のチェックは任意で、--delivery を指定できます |
launch.mjs | ローンチ映像を作成します:new <name> で仕様を作成し、ship <name> --shapes 16x9,9x16 で各形式をレンダリングし、ポスターとキャプションを作成して検証し、フレームをチェックします(framecheck.mjs:テキストがすべて表示され、読むのに十分な時間表示され、9:16 のスマートフォン画面上の領域を避けていることを確認します)。さらに facts.json(facts.mjs)をチェックします |
test.mjs(npm test) | engine/test/ のユニットテストスイートを実行します。ブラウザーは不要です |
music.mjs | vocab はスタイルの語彙を表示します。check は作曲したスコア(キー、マスター、ガード、ステム、新規性、録音が再生されたパート)をゲートし、その構成(ARC)を表示します。render、meter も実行できます |
soundfetch.mjs | サウンドパック:list、get <id...|all>、where、verify、remove <id> |
sfx.mjs | 効果音キット:list、one、kit <dir>、test |
4 つのバックエンドと 1 つのアートコア:playwright、html-player、remotion、hyperframes。
→ references/backends-and-adapters.md
実例
- スタイルプレートは
engine/src/canvas-core/にあります。それぞれのスタイルには、手描きの静止画と、描画過程を収めた映像があり、ヘッダーとreferences/styles/<id>.mdにレシピが記載されています。 - MECHANICAL LEPIDOPTERA は
example/にあります。47 秒のスコア付き映像です。scaffold.mjs ~/study --exampleを実行してください。
学んでください。コピーはしないでください。 技巧の基準は、受け継ぐだけでは満たせません。
正直な限界
スコアを聴くことも、映像の動きを見ることも、インタラクティブな作品を使うこともできません。それらに関する主張はすべて、計測または人間から得た情報に基づいています。どちらに基づくものかを明記してください。緑のチェックマークは、再実行するまでは単なる主張です。静止画を信頼する前に、--scale 2 で 1 フレームをレンダリングしてください。誤った変換を通して合成されたレイヤーは、1 倍では正しく見えても、2 倍では崩れます。