Communitygithub.com

muse-motion

プロフェッショナルなモーショングラフィックス動画編集スキルです。キネティックタイポグラフィ、タイトル、ローワーサード、アニメーションキャプション、コールアウト、ロゴアニメーション、トランジション、データビジュアライゼーション、UIモックアップ、ソーシャルフォーマット、解説・ホワイトボード要素、2.5Dパララックス、3Dベーシック、キャラクターベーシック、プロダクトプロモ、リリックビデオ、イントロ・アウトロ・CTAなどを、Remotion、ffmpeg、Pythonを用いたディレクティブファーストのワークフローで実現します。

muse-motion とは?

Muse Motionは、ユーザーが提供した動画に高度なモーショングラフィックス編集を施すためのAIエージェントスキルです。このスキルは、Claude CodeやCodexなどのデベロッパーツール環境で動作し、Remotion、ffmpeg、Pythonというローカルコードスタックを活用して、After EffectsのようなGUIツールに依存することなく、プロフェッショナル品質の動画制作を実現します。主な用途は、キネティックタイポグラフィ(動的なテキストアニメーション)、タイトル・ローワーサードの挿入、アニメーション付きキャプション、データビジュアライゼーション、ロゴアニメーション、トランジション効果、ソーシャルメディア向けフォーマット(Short、Reels、TikTok)に対応した動画編集です。ワークフローは、素材の取り込み(ffprobeによる解析)、ローカル文字起こし(faster-whisper)、意味的なビートへのグループ化、ディレクターズトリートメントと編集ディレクティブJSONの作成という段階を経て、スタイルフレームのレンダリング、アニマティックの作成、パスごとのアニメーション、そして最終的な書き出しと検証に至るまで、厳格なルールに従います。特に、制作の各段階で検証ゲートが設けられており、スキーマ検証、スタイルフレームの承認、画質・音量のチェックなどを自動化することで、品質を担保します。このスキルは、動画編集のワークフロー全体をコードで管理し、再現性とスケーラビリティを高めたい開発者やコンテンツクリエイターにとって非常に有用です。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/anisar699/Muse-Motion-Graphics-Skill-Editing/tree/main

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

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

ドキュメント

Muse Motion

バージョン 1.3 (2026-11-15)。1.0からの変更点はCHANGELOG.mdに記載されています。

目的とルート選択

  • モーショングラフィックス、アニメーションテキスト、グラフィックスオーバーレイ、トランジション、キャプション、データアニメーション、または任意の形式でのフルモーション主導の編集を必要とするすべての動画編集タスクにこのスキルを使用します。

  • Muse自身として、Remotion、ffmpeg、Pythonのローカルコードスタックで動作します。ユーザーが明示的に別のルートを指示しない限り、Codex、OpenAI、After Effects GUIを必要としません。

  • ジョブを構築する前に、再生時間とフォーマットでルートを決定します(ルートは references/workflow-and-directive.md で定義)。高速イントロ:最大15秒のタイトルまたはバンパーで、通常はグラフィックスのみ。ショートフォーム:最大90秒の縦型または正方形のソーシャル動画。ロングフォーム:90秒以上で、映像主導。グラフィックスのみ:カメラ映像なし(リリックビデオ、ロゴアニメーション、スチルとタイプによる解説)。ディレクティブのソースは kind "audio" または kind "none" で、timeline.duration_s を使用します。

  • 元のメディアを決して変更しないでください。ソースファイルをプロジェクトフォルダにコピーし、オリジナルには手を加えず、すべての出力はプロジェクトの編集フォルダに書き込みます。

  • APIの詳細が重要な場合は、ビルド時にインストールされているRemotionバージョンのドキュメントを読んでください。Remotion v4は頻繁に変更されるため、記憶したAPIをインストール済みパッケージのドキュメントよりも信頼しないでください。

高速プロフェッショナルワークフロー

  • 取り込みから始めます。ffprobeですべてのソースを調査し、幅、高さ、正確なフレームレート、再生時間、コーデック、色、オーディオサンプルレートを記録し、成果物、プラットフォーム、アスペクト比、キャプションの必要性、期限をブリーフテンプレートにリストします。

  • デザインを始める前にローカルで文字起こしを行います。ffmpegで16kHzモノラルオーディオを抽出し、faster-whisperをワードタイムスタンプ付きで実行し、文字起こしJSONをキャッシュし、確率が0.80未満のすべての単語にフラグを立てて、名前や数字を人間が確認できるようにします。

  • 単語を完全な意味的なビートにグループ化します。各ビートの役割に、検証子の役割トークンのうち正確に1つをすべて小文字でマークします:hook, context, problem, promise, reveal, definition, process, proof, reassurance, transition, cta。

  • グラフィックスの前に、ディレクターズトリートメントと編集ディレクティブJSONを作成します。検証は2段階です。デザイン中はスクリプト scripts/validate_directive.py を --draft 付きで実行します(スキーマゲートのみ。ドラフトのPASSはレンダー許可ではありません)。レンダリング前には --draft なしで実行します(レンダリング準備完了ゲート:approval.status が approved であり、あいまいさがゼロで、ソースメディアが存在し、プローブ結果が一致する再生時間を持ち、レイアウトがキャンバス内に収まり、保護領域が干渉チェックされ(領域の10%、レイアウトの50%、またはクリティカル領域との重なりで失敗。上書きにはブール値trueとoverlap_reasonが必要で、常に報告されます)、役割、トリートメント、トランジショントークンが references/workflow-and-directive.md の固定セットから来ており、reveal_sync 要素が on_screen_copy で宣言されていること)。INVALID の結果はレンダーを停止します。

  • アニメーションの前にスタイルフレームを作成します。タイトル、典型的なシーン、データシーン、ローワーサード、エンドカードのそれぞれについて、完成した静止画を1つレンダリングし、それらのフレームからフォント、色、間隔、セーフエリア、モーショントークンをロックします。

  • タイミングがまだロックされていない場合は、アニマティックを作成します。スタイルフレームの静止画、最終的なタイミング、スクラッチまたは最終オーディオを使用して、実際のコンポジションを半スケールでレンダリングし、フルアニメーションの前にそのファイルでペースを確認します。

  • パスごとにアニメーション化します。最初にキーポーズをブロックし、次にイージングとスプリングを追加し、次にスタガーとフォロースルーを追加し、最後にサウンドヒットをビジュアルランディングの1フレーム以内に同期します。

  • キャプションの前にグラフィックスを合成します。キャプションは最後に追加し、配信セーフエリアの最上部かつ内部に配置します。

  • 配信前に完成ファイルを検証します。このスキルの検証ゲートに従い、レンダリング成功メッセージだけで配信しないでください。

編集ルール

  • 各タイムライン間隔に、検証子トリートメントトークンを正確に使用して、1つのプライマリトリートメントを割り当てます:CLEAN_PRESENTER, OVERLAY_CARD, FULLSCREEN_MOTION, PRESENTER_INSET, SELECTIVE_TEXT, TRANSITION, KINETIC_TYPE, DATA_SCENE, CALLOUT, LOWER_THIRD, TITLE, END_CARD。

  • プレゼンターを保護します。顔、目、マイク、およびメインのジェスチャーコリドーをクリアに保ち、空白のキャンバスではなく実際の映像で保護を確認します。

  • 意味が動きを導くようにします。名詞、動詞、数字、コントラストなど、意味を持つ単語と要素のみをアニメーション化し、フィラーワードは安定させます。

  • ビートごとに1つのプライマリアニメーション要素を維持します。セカンダリアクションはメインアクションをサポートする場合がありますが、競合してはなりません。

  • 解決されたすべてのグラフィックを読み取れるだけの十分な長さ保持します。エントランスとエグジットを合わせた時間よりも短いホールドは欠陥です。

  • 公式ブランドロゴのみを使用します。各名前付きブランドロゴは、それぞれのプレスキットまたはブランドページから取得し、ソースを記録し、ロゴを描画、トレース、色変更、またはテキストや汎用アイコンで置き換えないでください。

  • 画面上のコピーは、話されている主張に忠実にします。必要に応じて凝縮し、静かに言い換えたり、主張を創作したりしないでください。

  • オンライン動画では、フックの前にロゴスティング、挨拶、またはスローオープナーを置かないでください。フックを最初の数秒間に、視覚的な割り込み、口頭での約束、画面上のテキストとして積み重ねます。

モーションのデフォルト

  • 編集にはソースフレームレートに合わせます。新しいWebおよびソーシャルモーションコンポジションには30 fpsを、映画的な作業には24 fpsのみを、ゲーム、スポーツ、または高速画面キャプチャには60 fpsのみを使用します。

  • 位置やスケールにリニアイージングを使用しないでください。エントランスにはEase Outを、エグジットにはEase Inを、画面に留まる動きにはEase In Outを使用し、リニアはループ、プログレスバー、時間駆動の値にのみ予約します。

  • モーションリファレンスのハウスカーブを使用します。主力のエントランスカーブは cubic bezier 0.16, 1, 0.3, 1、マテリアル標準カーブは 0.2, 0, 0, 1、オーバーシュートカーブは 0.34, 1.56, 0.64, 1 で、控えめに使用します。

  • 有機的なエントランスとフォロースルーにはスプリングを使用します。スムーズでバウンスのないセトルにはダンピング 200、遊び心のあるバウンスにはダンピング 12〜15、スナッピーなポップにはスティフネス 200、マス 0.8 でダンピング 20 を使用します。

  • 標準的なエントランスは 250 〜 500 ms に保ちます。エグジットはエントランスの約 60 〜 75% に、マイクロムーブは 100 〜 200 ms に、ほとんどインターフェイスがないような動きは 500 ms 以上に保ちます。

  • アンチシペーションは、30 fps で 3 〜 6 フレームにわたる移動距離の約 5 〜 10% の小さなカウンタームーブとして追加します。フォロースルーは、メイン要素が着地した後、セカンダリ要素を 2 〜 4 フレームずらして追加します。

  • グラフィックスがライブ映像にマッチする必要がある場合のモーションブラーのデフォルトとして、180 度シャッター感覚を使用します。読み取る必要のあるテキストやデータ値では、ブラーエミュレーションを無効にします。

要素プレイブック

  • 各要素の正確な仕様については、分類法プレイブックリファレンスに従ってください。キネティックタイポグラフィ、タイトル、ローワーサード、キャプション、コールアウト、ロゴアニメーション、トランジション、データビジュアライゼーション、UIモックアップ、ソーシャル要素、解説・ホワイトボード、パララックス、3D、キャラクターベーシック、プロダクトプロモ、リリックビデオ、エンドカードをカバーしています。

  • ローワーサードは、最初にアクセント、次に名前、最後に役割の順で構築します。30 fps でエントランスに約 15 フレームを使用し、少なくとも 3 秒間ホールドし、合計を 3 〜 5 秒に保ちます。

  • アクセシビリティキャプションとアニメーションソーシャルキャプションは、異なるプロダクトとして扱います。アクセシビリティキャプションは装飾的なアニメーションなしで忠実に保ちますが、ソーシャルキャプションは、キャプション対象のクリップと同じシーケンス内で単語レベルのハイライトを使用します。

  • データは正直にアニメーション化します。バーはベースラインから成長させ、線は時間順に描画し、数字は Ease Out で正確な最終値までカウントアップし、データ値をオーバーシュートさせないでください。

  • トランジションは句読点として扱います。デフォルトではハードカットを優先し、時間の経過にはディゾルブを使用し、シーン間の関係がそれらを必要とする場合にのみ、ワイプ、ホイップパン、ズーム、モーフ、マッチカットを使用します。

  • パララックスは、分離された深度プレーンから構築します。前景を最も速く、中景をより遅く、背景を最も遅く動かし、フラットレイヤーが露出しないように、バーチャルカメラのアングルは控えめに保ちます。

コード制作ルール

  • すべてのアニメーションを現在のフレームから派生させます。すべてのモーションに useCurrentFrame と useVideoConfig を使用し、CSS トランジション、CSS アニメーション、タイマー、またはシードされていないランダム値を使用しないでください。

  • すべての境界のある interpolate 呼び出しを両側でクランプします。コード内のタイミングは秒単位で fps を乗算して記述し、ベアナンバーが避けられない場合はフレーム番号に秒のコメントを付けます。

  • 複合 transform 文字列よりも、個別の scale、translate、rotate プロパティを使用したインライン interpolate を優先します。ビート正確なタイミングとループには interpolate を使用し、有機的なセトルが正確なフレームよりも重要な場合にはスプリングを使用します。

  • 各デリバラブルを、タイミングがキャプションまたはビートグリッドから得られる calculateMetadata を介したデータ駆動の再生時間を持つ、登録された Composition として構造化します。シーンは Sequence または Series ブロックとして、トランジションは TransitionSeries を使用して構築します。

  • フォントは、絞り込まれたウェイトでモジュールのトップレベルで明示的にロードします。メディアは、アセットの準備ができるまでレンダリングをブロックする Remotion メディアコンポーネントを使用してロードし、clear な継続パスがある場合にのみ delayRender を使用します。

  • オーバーレイがデリバラブルの場合、すべてのリンクを通じてアルファを保持します。エディター向けには PNG フレームをレンダリングし、ProRes 4444 を yuva444p10le で、ブラウザー向けには VP9 WebM を yuva420p で、最もポータブルな形式として PNG シーケンスとして仕上げ、H.264 MP4 でのアルファを約束しないでください。

  • 実際のプロダクションから得られた実績のあるアルファの教訓を覚えておいてください。直接の Remotion ビデオレンダリングは静かにアルファをドロップする可能性があるため、安全なルートは、最初に PNG シーケンスをレンダリングし、次にそれを ffmpeg prores_ks 4444 でエンコードし、その後アルファプレーンが存在することを確認するピクセルフォーマットチェックを行うことです。

  • レンダリングを意図的に高速化します。不透明なコンポジションには JPEG フレームを、アルファが必要な場合のみ PNG を使用し、タイミング承認用に半スケールでドラフトし、ローカル修正後に固定されたフレーム範囲のみを再レンダリングし、実際のマシンで同時実行性をベンチマークします。

オーディオ、ラウドネス、書き出し

  • まずボイスをミックスし、ボイスの下に音楽をダックし、サウンドエフェクトはブランドごとに1つのエフェクトファミリーで、視覚的なランディングに控えめに配置します。最終ミックスは全体としてノーマライズし、クリップごとにノーマライズしないでください。

  • YouTube およびソーシャル配信の作業ターゲットとして、-14 LUFS 統合、最大 -1 dBTP を使用します。音声ポッドキャストには -16 LUFS、EBU R 128 放送には -23 LUFS、ATSC 放送には -24 LKFS を使用します。

  • 報告時にはラウドネスの注意事項を明記します。YouTube は LUFS ターゲットを公開していないため、-14 は、プラットフォームの公開ルールではなく、プレイヤーノーマライゼーションデータから推測された作業デフォルトです。

  • デリバラブルにはツーパス loudnorm でノーマライズします。最初に測定し、次に測定値と linear true を適用します。シングルパス loudnorm は動的に処理し、ミックスをポンピングする可能性があるためです。

  • ロングフォームは、H.264 High Profile、プログレッシブ、4.2.0、VBR、AAC LC 48 kHz の MP4 として書き出します。1080p 30 fps には 8 Mbps、60 fps には 12 Mbps、1440p には 16 および 24 Mbps、4K 30 fps には 35 〜 45 Mbps を使用します。

  • Shorts、Reels、TikTok 向けに、1080x1920、9:16、30 fps、10 〜 16 Mbps の縦型マスターを1つ書き出します。セーフゾーンが異なる場合は、同じコンポジションからプラットフォームごとのバリアントをレンダリングします。

検証ゲート

  • フック、すべてのシーンのヒーローモーメント、すべてのエントランスとエグジット、すべてのトランジション、最終フレームでフレームを検査します。ヒーローフレームを承認されたスタイルフレームと比較します。

  • オーバーレイでセーフエリアを確認します。16:9 のテキストを 90% のタイトルセーフエリア内に保ち、縦型のクリティカルコンテンツを上部のプラットフォームバンド、下部のキャプションバンド、右側のアクションレールから遠ざけます。

  • 耳と目でキャプションを確認します。名前、数字、低信頼度の単語を確認し、標準キャプションを 1 行あたり最大 42 文字、2 行以内に保ち、成人向けの読み取り速度を 1 秒あたり最大 20 文字以下に保ちます。スクリプト scripts/check_captions.py を SRT に対して実行し、フォームチェック(行長、読み取り速度、キューの再生時間、重なり、スタイルの色が指定されている場合の WCAG コントラスト)を自動化します。表現は人間の判断に委ねられます。音声ソースの場合、scripts/transcribe.py は、キャプションとビートのタイミング元となるワードタイムスタンプ付きの文字起こしをローカルで生成します(faster-whisper、PCM ルート)。

  • プロジェクトファイルではなく、最終エンコードファイルでラウドネスとトゥルーピークを測定します。最初に、エンコードされたファイルに対して scripts/peak_guard.py を実行します。AAC エンコードは loudnorm のトゥルーピーク上限を超える可能性があり(実際の配信で -1.0 の上限に対して -0.95 および -0.7 dBTP が測定されました)、ガードはオーディオのみのリマックスとして最小限の十分なゲインリダクションを適用し、再測定します。次に、最終ファイルに対して scripts/qc_probe.py を、デリバラブルごとの --spec ファイルを指定して実行し、--report JSON を保存します。これにより、オーディオの存在(オーディオがない場合は AUDIO_STREAM_MISSING、デジタルサイレンスの場合は AUDIO_SILENT で失敗)、ラウドネスターゲットと許容差、トゥルーピーク上限、寸法、フレームレート(0.01 許容差、VFR 検出)、コーデック、ピクセルフォーマット、プロファイル、カラータグ、再生時間、必要な場合のアルファ(フォーマット AND デコードされたコンテンツ - 一定の不透明アルファは失敗)、MP4/MOV のフロント配置 moov atom を適用し、失敗があるとゼロ以外で終了します。spec キーはホワイトリストに登録されており、スターター spec は templates/ にあります。scripts/sample_frames.py を使用して、フック、クォーター、ヒーロー、スリークォーター、エンドフレーム、そしてコンタクトシートを抽出し、人間による視覚チェックを行います(--directive を指定すると、すべてのビート開始、リビール、エンドもサンプリングされます)。

  • アクセシビリティのハードリミットを適用します。通常のテキストではコントラストを 4.5:1 以上、大きなテキストでは 3:1 以上に保ち、任意の 1 秒間に 3 回以上フラッシュしないでください。

  • 検証されたものとされなかったものを正確に報告します。レンダリング成功、フレーム検査、ラウドネス測定、デバイスまたはプラットフォームプレビューを、別個の主張として分けます。

  • 検証されなかったことを主張しないでください。このスキルパッケージは完全な Remotion サンプルプロジェクトをバンドルしていないため、アーカイブ自体がレンダリングで実証済みであるとは主張せず、現在のワークスペースで実際に生成されたレンダリングのみを主張してください。自動化ゲートは、物語の真実性、視覚的なセンス、キャプションの正確性、または動く映像上の顔の保護について、人間による承認に取って代わることはありません。

リファレンス

…

[翻訳のため省略]

関連スキル