Communitygithub.com

Ecoupdigital/video-animado

ナレーション付き2Dアニメーションビデオを、外部ツールを使わずRemotionとコードだけで生成します。まずブランドブック(アニメーションの「世界観」)を探すか作成し、それに基づいて脚本、ナレーション、アニメーション動画を組み立てます。

video-animado とは?

このスキルは、外部の動画・画像AIツール(Kling、Veo、Flowなど)を一切使わず、SVGとRemotionのコードのみで2Dアニメーションビデオを生成するエージェントです。対象ユーザーは、コードに詳しくない人を含むあらゆる人で、日本語(ブラジルポルトガル語)で対話します。 まず、既存のブランドブック(アニメーションの世界観を定義したHTML+マークダウンのセット)を探し、なければ25〜35の質問を1つずつ行い、キャラクター、背景、ビジュアルスタイル、動きのルールなどを決めていきます。質問は推奨選択肢付きで、「決めて」と言われたら推奨を選びます。キャラクターは0人、1人、複数人に対応し、各キャラクターはコードで描画されたSVGコンポーネントとして定義され、表情や口の動きが音声の音量に連動します。 ブランドブック完成後、ユーザーの指示(テーマ、尺、フォーマット)に基づいて、まずフックと脚本(聞いてわかる短い文)を書き、ユーザー承認後にナレーションを生成(ElevenLabsのクローン音声または既存音声ファイル)し、Remotionプロジェクトを組み立ててレンダリングします。レンダリング前にはTypeScriptの型チェックと各シーンのフレーム確認、レンダリング後には独立したレビュアー(サブエージェント)によるチェックと自動チェックスクリプトを実施します。 主なAIプラットフォームとしてClaude Codeを想定しており、Remotionベストプラクティス用の別スキル(remotion-best-practices)を利用します。scripts/checar_video.pyやmlx-whisper(Mac用)などの補助ツールが参照されます。エラーや問題は「Armadilhas」セクションに記録し、次回以降に活かします。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ecoupdigital/video-animado/tree/HEAD/video-animado

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

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

ドキュメント

/video-animado

コード(SVG + Remotion)で描かれた2Dアニメーションのナレーション動画を作成します。破ってはいけないルール:外部の画像・動画AIツール(Kling、Veo、Flow、Magnific、画像生成ツールなど)は一切使いません。キャラクター、背景、オブジェクトはすべて図形、SVGパス、テキストから生成されます。これにより、すべてのシーンでキャラクターが同一に見え、プロセスを再現可能に保ちます。

状態:2026年8月11日作成、まだエンドツーエンドでテストされていません。初めて実際に実行する際は、問題が発生した点を「落とし穴」に記録してください。

ユーザーとの会話方法

  • 使用言語:ポルトガル語(ブラジル)。口調は実践的な講師風。相手が「tu」を使うなら「tu」、そうでなければ「você」。ダッシュは使わない。
  • 相手が技術者でない可能性があります。何が起こったか、それが相手にとって何を意味するかを説明してください。コードやパスの話は、相手から尋ねられた場合のみにしてください。
  • すべての質問はAskUserQuestionを使い、一度に1つ、2〜4の選択肢を提示し、推奨するものを最初に「(推奨)」とマークしてください。相手が「決めて」「どっちでもいい」などと言った場合は、推奨を選んで「〜を選びました」と伝えて先に進んでください。
  • ファイルを見ればわかることは決して質問しないでください。

ファイルの置き場所

  • スタジオ: ユーザーの動画作業用フォルダ。~/my-studio/ を探し、存在しなければ場所を尋ねるか、現在のフォルダを使用します。
  • アニメーション・ブランドブック: <studio>/animacao/<universo-name>/
    • BRANDBOOK-ANIMACAO.html:見て共有するための美しいバージョン
    • BRANDBOOK-ANIMACAO.md:Claudeが読むバージョン(同じルールに従う。一方を変更したら、両方変更する)
    • personagens/<name>/:FICHA.md、Personagem.tsx(コードでの描画)、expressoes.png
    • cenarios/:シナリオごとのコンポーネント(Casa.tsx、Rua.tsx…)
    • pronuncias.md(任意):各用語の音声での発音と字幕での表示に関するルール
  • 動画: <studio>/animacao/<universo-name>/videos/YYYY-MM-DD-slug/
  • 納品物: ~/Downloads/YYYY-MM-DD_<slug>_animado.mp4

ブランドブックは世界(名前のある「世界」)です。その中には0人、1人、または複数のキャラクターが存在します。

フロー

0. ブランドブックを見つける

自動で検索:スタジオとカレントフォルダ内の animacao/ フォルダ、および BRANDBOOK-ANIMACAO.* ファイルを探します。見つかったものをリストアップして質問します:

  • これらのいずれかを使用(見つかった世界ごとに1つ)
  • 別のパスを指定(他の人から受け取ったブランドブックを含む)
  • 新しく作成

何も見つからなかった場合はその旨を伝え、作成に進みます。既存のものを使用する場合は、.md ファイルと各キャラクターシートを読み、パートBにスキップします。

パートA. ブランドブックの作成(初回)

最初に「約25〜35の質問を1つずつ行います。どの質問でも「決めて」と言ってください」と伝えます。ブロック間では、決定事項を短く要約し、正しいか確認します。質問と選択肢のデータベースは references/perguntas.md にあります(開始前に読んでください)。

7つのブロック(この順序):

  1. 世界: 名前(3つ提案)、動画のテーマ、対象視聴者、トーン
  2. キャラクター: 人数(0、1、または複数)。それぞれについて完全なキャラクターシート(性別、年齢、顔、髪、服装、性格、ペット(犬、赤ちゃん、植物など)、声)
  3. 背景: 存在するもの(家、オフィス、通り、自然、抽象空間…)、部屋や場所、時間帯、固定オブジェクト
  4. ナラティブ: 各キャラクターの行動、振る舞い、よく行く場所、話し方、決してしないこと、キャラクター間の関係
  5. ビジュアル: コードで可能な描画スタイル、パレット(正確なHEX値と使用比率)、フォント、詳細度
  6. 動き: シーンへの出入り、表情、リズム、呼吸とまばたき、アニメーションルール、絶対にしないこと
  7. クロージング: 全体の要約、ナレーションの声(下記参照)、ブランドブックの最終名称

キャラクター0人も可能:背景、テキスト、図形のみの動画。その場合はブロック2をスキップし、ブロック3〜6は世界とリズムのみに焦点を当てます。

ナレーションの声はブランドブックに保存され、毎回尋ねるのを避けます。3つの方法:

  1. ElevenLabsでクローンしたユーザーの声
  2. ElevenLabsの既製ボイス(スキルがキャラクターに応じて提案)
  3. ユーザーが既に録音した音声があり、スキルはそれをそのまま使用 複数のキャラクターがいる場合、各キャラクターシートにその声を保存します。

パートAの成果物:

  • BRANDBOOK-ANIMACAO.md と BRANDBOOK-ANIMACAO.html(構造は references/brandbook-html.md を参照)
  • キャラクターごとに:FICHA.md、Personagem.tsx(プロパティ:expressao、falando、olhando、escala(口はナレーションの音量に同期)、expressoes.png(すべての表情を横に並べた画像))
  • 背景ごとに1コンポーネント
  • 背景内にキャラクターを配置したテスト画像

ユーザーが表情とテスト画像を目視で承認した場合のみ先に進みます。コードでの描画がうまくいかない場合は、描画を簡略化します(詳細を減らし、形状を増やす)。外部ツールに決して切り替えないでください。

パートB. 動画の作成

  1. 単一の質問: 不足しているもののみ:テーマ、尺(デフォルト30〜60秒)、フォーマット(デフォルト1080x1920縦長、30fps)、使用するキャラクターと背景
  2. フックと「聞く」ための脚本(references/roteiro.md を読んでください)。まず3種類の異なるフックの選択肢を提示し、ユーザーが選びます。次に脚本:短い文、数字は話し言葉で、括弧や難しい略語なし、禁止フレーズリストにないもの。各行に:シーン、登場人物、表情、画面に表示されるもの。ブランドブックのナラティブに従います。最後に、ユーザーの確認が必要な事実ベースの主張を別途リストアップします。videos/<data-slug>/roteiro.md に保存し、ユーザーの承認を得た場合のみ先に進みます。
  3. ナレーション: ブランドブックに保存された声の方法を使用します。音声を再生して承認を待ちます。おかしなフレーズがあれば、そのフレーズだけ再生成します。pronuncias.md があれば使用します。narracao.mp3 として保存します。
  4. 各単語のタイミング。 単語単位のタイムスタンプ付きでナレーションを文字起こしします(スタジオが既に持っている文字起こしツール、コースの編集ツール:Macのmlx-whisperを使用)。製品名や技術用語におけるWhisperの典型的な誤認識を修正します。ユーザーが文字起こしツールをインストールしていない場合は、その旨を伝え、先に進む前にインストールを支援します。
  5. Remotionプロジェクト を videos/<data-slug>/ に作成(スキル remotion-best-practices を使用)。背景音声は narracao.mp3。各シーンはブランドブックのコンポーネントをインポートし、キャラクターや背景を再描画することはありません。口:フレームごとの音声の音量を抽出し、falando として使用し、無音時の震えを防ぐために下限を設定します。各要素は、それが言及される単語のタイミングで出現します。単語ごとの字幕をブランドブックのスタイルで表示。Reactのフックは if 内や早期の return の後には絶対に配置しません。
  6. レンダリング前の確認。 npx tsc --noEmit を実行後、各シーンの1フレームを確認します。画像を確認:キャラクター全体がシートと一致しているか、テキストが重なっていないか、幅を超えていないか、セーフエリア内か、口が音声に合っているか、表情とシーンが正しいタイミングか。詳細は references/conferencias.md を参照してください。
  7. レンダリング、確認、納品。 mp4(H.264、AAC音声)を ~/Downloads/ に出力。scripts/checar_video.py を実行(音量、サイズ、無音をチェック)、コンタクトシートを生成し、独立したレビュアー(編集を見ていないサブエージェント、ブリーフィングは references/conferencias.md)を呼びます。重大または中程度の問題を修正し、再レンダリングします。カバー画像と投稿のキャプションも納品し、1:1および16:9形式も提供します(references/roteiro.md)。各シーンに何があるか、尺、レビュアーの意見、変更点、ユーザーが耳で確認すべき点(あなたは音声を聞いていません)、プロジェクトの場所を伝えます。
  8. 調整。 ユーザーは日常的な言葉(「キャラクターが真面目すぎる」「もっと早く出てこい」)または時間(「0:12のタイトルを変えて」)で要求します。時間をフレームに変換し、影響を受けるシーンのみを変更し、全体をレンダリングする前にその部分を表示します。ルールが今後の動画にも適用される場合は、ブランドブック(両方のバージョン)を更新します。今回のみのルールであれば、プロジェクトファイルのみを更新します。

名前の提案

ブランドブックを作成するたびに、3つの世界名(短く、発音しやすいもの)を提案し、ユーザーに選択させるか、別の名前を入力させます。名前はフォルダ名(kebab-case)とHTMLのタイトルになります。

落とし穴

  • ブランドブック外のキャラクター:すべてのシーンは同じコンポーネントをインポートする必要があります。
  • 発話がないのに口が動く、または発話があるのに口が動かない:音量に下限を設定して同期させること。
  • 怠惰による外部ツールの使用:描画がうまくいかない場合は簡略化する。
  • 脚本が承認される前に音声クレジットを消費する:ナレーション生成前に、何文字使用するか伝え、承諾を待つ。
  • 独立したレビュアーを通さずに納品する:編集者は自分のミスに気づかない。
  • ブランドブックをHTMLのみで保存する:Claudeは.mdを読みます。両方を同じに保つこと。
  • (初回実行時に記入)

関連スキル