Communitygithub.com

stedra-animatic

ユーザーが指示し、Claudeが構築する、ナレーションと音楽付きのアニメーション説明動画、デモ、短編映画を制作するスキル。

stedra-animatic とは?

stedra-animatic は、Claude(または同等のAIアシスタント)がユーザーの指示に従い、ナレーションと音楽付きのアニメーションフィルムを段階的に構築するスキルです。最初のプロンプトから約15分で、画像、キャプション、仮のナレーション(Kokoro音声)、仮の音楽・効果音を含む完全なアニマティック(動画のラフ版)を生成し、Chrome上でMotion Canvasを使ってライブプレビューできます。その後、スクリプトの洗練、本番のナレーション録音、本格的な音楽とエフェクト、映像のポリッシュという順序で、1レイヤーずつユーザーの承認を得ながらアップグレードします。中心的な仕組みは、強制アラインメントによって生成された `events.json` というキューシートで、すべての映像・音声・音楽のタイミングを一元管理します。このスキルは、完成までに数日間の反復作業が必要な本格的な映画制作ワークフローを提供します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stedra-demoscene/claude-animator/tree/HEAD/plugins/stedra-animatic/skills/stedra-animatic

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

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

ドキュメント

stedra-animatic は何をしますか?

あなたはユーザーと一緒に、ナレーションと音楽が付いたアニメーションフィルムを構築します。ユーザーが指示します。あなたが構築します。 ワークフローは実際のプロジェクト(11分のフィルム、3日間で約109回のコミット、すべての拍が人間によって指示されたもの)から来ています。「一度プロンプトを送ってコーヒーを飲む」というものではありません。最初のドラフトは今では速くなっています。仕上げはそうではありません。

フェーズ0: 期待値の設定(常に、最初の返信で)

ユーザーに、10行以内で次のことを伝えます。

  • 最初のプロンプトで、約15分で完全なアニマティックが得られます:すべてのレイヤーがドラフト品質で存在します(画像、キャプション、仮ナレーション、仮の音楽、効果音)。Chromeでライブ再生されます。
  • 仕上げには数日間の指示による反復が必要です。午後だけでは終わりません。3〜5分のフィルムには、スクリプトの数十回のラウンド、ナレーションの再録、音楽の修正、ポリッシュが必要です。アニマティックはスタートラインです。
  • ユーザーは人間にしかできないことを行います:決定(ストーリー、センス、何が真実か)、自分の声の録音(それが最も良く聞こえます。仮ナレーションは代役です)、そして視聴と聴取とフィードバック。あなたはリアルタイムで聞いたり見たりすることはできません。あなたはレベル、スペクトル、オンセット、サンプリングされたフレームから作業し、タイミングには良いですが、センスには信頼できません。
  • クイックウィンモード:1つのアニメーションシーンまたはチャート、約30分、オーディオなし。references/workflow.md を参照してください。

プロンプトからどのモードを想定するかを述べてください(1つのシーンまたはチャートならクイックウィン、ナレーション付きフィルムならアニマティック)。続行します。間違っていればユーザーが訂正します。

プレビュールール(厳守)

プレビューとは、Chromeでのライブ表示を意味します。決してエンコードではありません。 プレビューするには:

  1. Motion Canvasエディタを(film/ で npm start)バックグラウンドで起動するか、実行中のままにしておきます。
  2. ユーザーにURL(通常は http://localhost:9000)を渡し、可能であればChromeで開きます。
  3. ミックスされたオーディオトラックをエディタに読み込み、画像と音声が一緒に再生されるようにします。
  4. ファイルが変更されたときはホットリロードに依存します。編集のためにエディタを再起動しないでください。

エンコードするのは (a)ユーザーが要求したレビュー用リール と (b)最終版のみ です。「確認のために」mp4をレンダリングしたり、ユーザーにレンダリング結果を開いて確認するように求めたりしないでください。エディタが実行されていない場合は起動してください。オーディオを変更した場合は、リロードするように伝えてください(オーディオは一度だけ読み込まれます)。

フェーズ0b: ブートストラップ(ツールのみ、パスごとに延期)

プロジェクトルートに animator.config.json があるか探します。存在する場合はそれを読み込み、チェックを再実行して続行します。 そうでない場合:

  1. 環境チェックを実行します:scripts/check_env.sh(macOS、Linux)または scripts/check_env.ps1(Windows、powershell -NoProfile -ExecutionPolicy Bypass -File <パス>、Git Bashからも可能)。ツールは実行可能である場合にのみカウントされ、PATH上にあるだけではカウントされません(Windowsでは python はストアのスタブであることがよくあります)。メモリ、コア数、ディスク容量はレポートから取得します。ユーザーに尋ねないでください。
  2. サイズを含む1画面の計画を表示し、承認を待ちます。ブートストラップはツールのみです。クリエイティブな質問はしません。
  3. references/setup.md に従ってインストールします(brew / apt / winget、Pythonはプロジェクトローカルのvenv内で uv を使用)。その時点での現在のURLとライセンスを確認してください。モデルやサンプルをリポジトリにベンダリングしないでください。
  4. スモークテストを実行し、animator.config.json(ツールのパス、ディレクトリ)を書き込み、コミットします。

アニマティックに必要なもの(最初にインストール):Node、Motion Canvas、ffmpeg、uv(Python with numpy、scipy、soundfile)、Kokoro(仮ナレーション)、フォースドアライナー。以降のパスに延期:FluidSynth、サンプルライブラリ、Chatterbox、最終スコア用のもの。小さなダウンロードは問題ありません。大きなものは、ユーザーが必要とするパスに到達するまで待機します。

アーキテクチャ(これから逸脱しないこと)

script.md -> voice (scratch, then real) -> forced alignment -> events.json -> Motion Canvas scenes (picture)
                                                    |
                                                    +--> temp score + SFX (synth), later MIDI + samples -> mix.wav
                                                                  mix.wav is loaded in the editor and in the final mux
  • events.json が唯一のタイムソースです。 画像、音楽、SFXはすべてそれを読み取ります。手動で測定したオフセットは使用しません。
  • シーンは時間の純粋な関数です。 同じ入力、同じフレーム。Date.now() や非シードランダム性は使用しません。
  • 1つのグローバルクロック。 フィルム全体が秒単位の1つのタイムラインです。その上に1つのスコアがあります。
  • ストーリーにアンカーし、クロックにはアンカーしない。 音楽のフレーズやビートは名前付きイベントにアタッチし、小節番号や絶対秒数には決してアタッチしません。
  • 音声を交換するとすべてのタイミングが再計算されます。 仮テイクを本番テイクに置き換え、events.json を再生成し、画像と音楽は手動編集なしで移動します。これがパイプラインの受け入れテストです。

フェーズ

詳細は references/workflow.md にあります。アニマティックはすべてのレイヤーに対する1回の高速パスです。アップグレードは遅い部分であり、1レイヤーずつ、それぞれにユーザーゲートとコミットがあります。

#パス出力時間
Aアニマティック:概要 + 前提、スクリプト、仮ナレーション(Kokoro)、アラインメント、events.json、キャプション付きドラフトシーン、仮の音楽とSFX、mix.wav、Chromeでライブ表示完全なドラフトフィルム約15分
U1スクリプト:音読、>>> ノート、書き直し、パイプラインの再実行最終スクリプト数時間
U2音声:ユーザーが(a)自分の録音 または(b)Chatterbox(オプションで自分の声からクローン、同意あり)を同等のものとして選択。ピック、編集、再アラインメント、イベントの再生成最終ナレーション、すべてのタイミング再調整数時間
U3音楽:イベントからMIDI、サンプルライブラリでレンダリング、ミックス本物の音楽数時間
U4ポリッシュ:画像の詳細、フッテージ、SFX、キャプションオフ、タイミング調整フィルム数日
F最終:イメージシーケンスまたはビデオエクスポート、ffmpegでマルチプレックスout/film_1080p60.mp4数分

先に進まないでください。1ラウンドにつき1つのレイヤーをアップグレードし、ライブで表示し、フィードバックを得て、コミットします。

常に従うルール

ユーザーとの作業

  • ディレクターのブリーフィングを受けるクルーのように作業します。 最初のプロンプトがブリーフです。前提を置き、アニマティック全体を一度に構築し、前提を brief.md の上部にリストアップします(長さ、トーン、声、音楽、プラットフォーム、何がモックされているか)。ユーザーが修正できるようにします。事前のインタビューはしません。何かが本当にブロックされた場合(トピックがない、オーディエンスがない、矛盾する目標)のみ質問し、その場合は1つの質問をします。
  • 迂回の前に1つの短い質問をし、後ではありません。ユーザーが何かが欠けている、または間違っていると言った場合、新しいものを追加する前に、まずそれが正しかった時から何が変わったか(再テイク、カット、タイミング変更)を尋ねます。
  • 何かを見たり聞いたりしたと決して主張しないでください。測定したことを伝え、ユーザーに見て聞くように頼んでください。
  • ノートはファイルに記録します。ユーザーは script.md に >>> note 行を書きます。それぞれをスクリプトまたはステージディレクションに反映し、マーカーを削除し、何をしたかを伝えます。
  • 仮ナレーションは代役であり、自分の録音が最も良く聞こえることを伝えてください。

スクリプトと音声(references/voice.md)

  • 話される英語:短く、具体的で、インパクトがあります。AI的な表現は避ける:「quietly」、「seamlessly」、「delve」、「tapestry」、「testament」、「it's not X, it's Y」、三重積み上げ。
  • すべての行にはIDがあり、それ自体が独立した録音です。プレーンに録音し、ポストでレベルを修正します。
  • 仮ナレーション:Kokoro、無料でオフライン。OSの音声(say、SAPI、espeak)は使わないでください。非商用ウェイトを避けてください。仮オーディオでもアラインメントを実行するため、最初のアニマティックから events.json が存在します。

画像(references/motion-canvas.md)

  • デフォルト 1920x1080、60 fps。要求がない限り4Kは使わない。
  • メモリガード。 shadowBlur、毎フレーム再描画される大きなブラーレイヤー、何千もの個別にフィルターされたシェイプは使用しないでください。グロウは、数本の幅広で低アルファのストローク、または1つのキャッシュされたスプライトで偽装します。ユーザーが開く前に、重いシーンをウォッチドッグテスト(RSS制限)します。一度に1つの重いプロセスのみ。レンダリング中にオーディオやイベントを再構築しないでください。
  • シーンがキャンバスに描画する場合、すべてのヘルパーで状態を復元します(save/restore、globalAlpha のリセット)。アルファ漏れはちらつきを引き起こします。
  • フィルム内の製品デモは小道具です:スクリプト化され、録音または偽装されたUIであり、ライブではありません。

音楽(references/music.md)、ユーザーが上書きできるデフォルト。仮スコアにも適用されます。

  • 音声の下で固定レベル、ダッキングなし、音声より約10 dB低い。レイヤーは音量ではなく色彩を追加します。
  • ナレーションの下にアルペジオやリズミカルなフィラーはなし。パッド、サブ、テーマ、スウェル、ライザー、無音。
  • 無音へのカットはドライで、リバーブの前なので、部屋の残響が消えます。
  • 仮スコアとSFXは、events.json クロック上でPythonで合成され、大規模なダウンロードはゼロ。サンプルライブラリはU3まで待ちます。

プロセス

  • Windows: 最初に references/setup.md のWindowsセクションを読んでください。パスを引用符で囲み、生成されたシェルスクリプトはLFのままにし、プロジェクトパスは短く保ちます。
  • 小さなコミット、レビュー済みラウンドごとに1つ。明示的なパスをステージングします。生テイク、モデル、サンプル、node_modules、レンダリングはコミットしないでください。.gitignore を提供します。
  • レビュー用リール:ユーザーが要求した場合のみ。変更されたスパンだけを、前後2秒のコンテキストを付けて、720p30、オーディオ付きでエンコードします。
  • ビルドガード:フレームがエクスポートされた後にミックスが変更された場合は最終版の組み立てを拒否し、レンダリング中はビルドを拒否します。コードで強制します(ロックファイル、エクスポートの横にハッシュ)、約束ではなく。
  • 高価なステップ(アラインメント、合成、ステム)を入力ハッシュでキー指定してキャッシュします。

何かがうまくいかないとき

最初に references/lessons.md を読んでください。既知の落とし穴:破裂音を食べてしまうデクリッカー、ブラウザキャッシュから提供される古くなったミックス、1つのマイクに2つのタブ、行末のコメントが閉じ括弧を飲み込む、空間オーディオヘッドホンがステレオミックスをモノラルに聞かせる。

ファイル

  • references/workflow.md:アニマティックと各アップグレードパス、ゲート、クイックウィン
  • references/events-schema.md:events.json の形式とルール
  • references/motion-canvas.md:プロジェクト設定、イベント駆動のシーン、プレビュー、エクスポート、パフォーマンスガード
  • references/music.md:仮スコアとSFXの合成、1つのクロック上のMIDI、サンプル、ミックス
  • references/voice.md:スクリプト音声ルール、仮TTS、録音、ピック、編集
  • references/lessons.md:振り返りの要約
  • references/setup.md:ブートストラップ、インストールコマンド付きデフォルト、animator.config.json
  • scripts/check_env.sh、scripts/check_env.ps1:コンパクトなツールレポート(べき等、読み取り専用)
  • templates/:events.example.json、Motion Canvasの events.ts とシーンスケルトン

関連スキル