motion-graphics について
HyperFramesで短尺かつデザイン主導のナレーションなしモーショングラフィックスを作るワークフロー用スキルです。素材の計画、コンポジション、レンダリング、検証を案内し、長尺やナレーション付き動画とは用途を分けています。
主な機能
- 01短尺モーショングラフィックスのワークフロー
- 02素材を先に考える計画と収集
- 03カテゴリ別のショット設計
- 04再利用を優先したコンポジション構築
- 05レンダリング、lint、検査、修正の手順
活用シーン
- 01キネティックタイポグラフィのタイトルや引用の制作
- 02提供されたチャートや統計データのアニメーション化
- 03ウェブページやニュースを題材にした動画の制作
- 04短い動画のレンダリングと検査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ calesthio/ openmontage --skill motion-graphicsインストール後、Claude Code で/motion-graphicsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
catalog-map.mdagents/builder.mddirector.mdfinalize.mdcategories/asset-fusion/module.mdcategories/charts/module.mdcategories/kinetic-type/module.mdcategories/logo-reveal/module.mdcategories/lower-thirds/module.mdcategories/maps/bake-basemap.mjsmodule.mdcategories/news/module.mdcategories/stat/module.mdcategories/tweet/module.mdcategories/webpage/module.mdgrounding/locate.mjsPROTOCOL.mdphases/source/guide.mdreferences/builder-contract.mdmotion-vocabulary.mdshot-plan-ir.mdsamples/asset-fusion/_ref-circle-highlight.html詳細
motion-graphics — ディスパッチエントリー
Step 0 の前に、ルートを確認してください。 このスキルでは、短く、デザイン主導で、ナレーションのないモーショングラフィック(モーションでメッセージを伝えます。約10秒未満、ボイスオーバーなし)を制作します。より長いもの、複数シーンで構成されるもの、またはナレーション付きの映像には
/general-video、ウェブサイトをナレーション付きで紹介する動画には/website-to-video、トピックの解説には/faceless-explainer、製品プロモーションには/product-launch-video、既存の映像へのキャプション追加には/embedded-captionsを使用してください。対象外:ライブデータ/レンダリング時のデータ、またはキャプチャできない映像。不明な場合(モーション主体かナレーション主体か)は、まず/hyperframesを読んでください。
短く、デザイン主導のモーショングラフィックです。アセット優先:ショットをデザインする前にアセット戦略を決めて実際の素材を調達し、手元にある素材に合わせてショットをデザインしたうえで、カタログの機能を再利用して構成します。すべての成果物は PROJECT_DIR = videos/<project-name>/(Step 0 で作成)に保存します。以下のパスはすべて、このディレクトリからの相対パスです。
| フェーズ | 実行方法 | 主な成果物 | 詳細なフロー |
|---|---|---|---|
| init | Bash | hyperframes.json | Step 0 |
| plan | subagent — 検索するかを判断? + 分類 + アセット戦略 | shot-plan.json(ドラフト:カテゴリ、asset_needs の検索クエリ、ブリーフ) | agents/director.md(Part 1) |
| source ◇ | Bash — メディア利用の確認(asset_needs が空の場合はスキップ) | assets/ + assets/index.md | phases/source/guide.md |
| design | subagent — 解決済みのアセットに合わせたショットデザイン | shot-plan.json(最終版:ブロック、レイアウト、モーション、位置) | agents/director.md(Part 2) |
| build | subagent — 再利用を優先した構成 | compositions/index.html | agents/builder.md |
| render | Bash — hyperframes render(MP4、またはオーバーレイ用に --format webm/mov) | renders/video.mp4 | Step 5 |
| verify | Bash — lint / inspect -> 失敗時は修正用の subagent | (その場で修正) | agents/finalize.md |
◇ source は、選択したカテゴリでアセットが指定されている場合にのみ実行します。純粋なコード/テキストのカテゴリ(例:kinetic-type、多くの charts/stat)では asset_needs: [] となり、plan から design に直接進みます。
カテゴリ — 検索するかどうかで分岐
plan の**最初の判断は、検索が必要かどうかです。**この分岐によってカテゴリは2つのグループに分かれ、その後、具体的なカテゴリを選びます。検索主導の場合は、検索で返されるコンテンツの種類によって選びます。各カテゴリは1つの categories/<id>/module.md(計画とビルドのルール)です。共通のモーション用語は references/motion-vocabulary.md にまとめられています(→ hyperframes-animation のルール/ブループリントとレジストリブロック)。
フォームカテゴリ — 検索なし。コンテンツはユーザーが提供します:
| カテゴリ | 目的 | 主に使用するもの |
|---|---|---|
kinetic-type | 印象的な短いフレーズ/引用/タイトル。テキスト中心のモーション | caption-* ブロック+アニメーションルール |
stat | 単一のメイン数値/カウントアップ+リング | apple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills} |
charts | データから作る棒/折れ線/円/レース/% | data-chart ブロック |
logo-reveal | ロゴの短い演出/ブランドロックアップ(ユーザーのロゴ) | logo-outro / rules/svg-path-draw |
lower-thirds | 名前/肩書きのバー、コールアウト、SNS オーバーレイ | caption-*+レジストリのオーバーレイブロック |
検索主導カテゴリ — まず検索し、コンテンツの種類に合わせてアニメーション化します(RWA の流れ):
| 返されるコンテンツ | カテゴリ | アニメーション |
|---|---|---|
| ウェブページ/リンク | webpage | ウェブページ/UI アニメーション(スクロール、表示、カーソル、コールアウト) |
| ニュース記事 | news | 見出しの表示+ソースカード+重要事項のコールアウト |
| ツイート | tweet | アニメーション付きツイートカード |
| 画像/エンティティ | asset-fusion | アセットの形状がチャートに_変化する_(RWA のダイエジェティックな融合) |
ビルド順序:一度に1つずつ、網羅性を優先します(粗くてもかまいません)。kinetic-type はプロトタイプから移植済みで、残りはこれに続きます。
前提条件
macOS Apple Silicon または Linux x64。システムツール:brew install node ffmpeg。npx hyperframes doctor を一度実行します。macOS の GPU レンダリング:export PRODUCER_BROWSER_GPU_MODE=hardware。
オプションのキー(未設定の場合はローカルの代替手段を使用)— media-use 経由でアセットを取得/生成するカテゴリでのみ必要です:
| キー | 用途 | 代替手段 |
|---|---|---|
GEMINI_API_KEY / GOOGLE_API_KEY | 画像生成(media-use resolve) | 生成をスキップ/検索のみ |
| (asset_scout / search providers) | webpage/news/tweet+asset-fusion の実アセット検索 | カテゴリはアセットなしに縮退 |
フロー
ステップ 0 — 初期化
cwd はエージェントのワークスペースルートです。すべての成果物を PROJECT_DIR = videos/<project-name>/ の下に書き込みます。<project-name>:ユーザーが指定したディレクトリを使用します。指定がない場合は、目的から短い kebab-case 名(<subject>-motion)を付けます。ワークスペースのベース名やタイムスタンプは使用しません。
$PROJECT_DIR/hyperframes.json が存在しない場合に限り:
PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank
init は、インストール済みスキルを GitHub 上の最新版と照合し、古いものがあればグローバルセットを更新します。
制約: ワークスペースルートで hyperframes init を実行しないでください。PROJECT_DIR 内に別の hyperframes/ をネストしないでください。すべての Bash コマンド(マスターとサブエージェント)は (cd "$PROJECT_DIR" && ...) のサブシェルで実行し、単独の cd は使用しないでください。
ステップ 1 — 計画(サブエージェント:Director Part 1)
サブエージェントを 1 つ起動します。プロンプト = agents/director.md の全文 + ## Dispatch context(SKILL_DIR / PROJECT_DIR / ユーザーのリクエスト / Schema: <SKILL_DIR>/references/shot-plan-ir.md)。次の作業を行わせます。
- 検索が必要かどうかを判断する(最初の分岐)
- 不要 → 形式カテゴリ(kinetic-type / stat / charts / logo-reveal / lower-thirds)を選択します。コンテンツはユーザー提供のものとし、
asset_needs: []とします。 - 必要 →
asset_needs[]に 検索プラン を出力します(news / web / tweet / image。二極クエリ)。具体的な 検索駆動型カテゴリ(webpage / news / tweet / asset-fusion)は、ステップ 2 で返されるコンテンツタイプに基づいて確認し、ステップ 3 で確定します。
- 不要 → 形式カテゴリ(kinetic-type / stat / charts / logo-reveal / lower-thirds)を選択します。コンテンツはユーザー提供のものとし、
- 下書きの
shot-plan.jsonを作成します(エンベロープ + 選択した形式カテゴリ または 検索インテント +asset_needs+ 1 段落のショット概要)。スキーマ:references/shot-plan-ir.md。
検証:[ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing。
ステップ 2 — 素材の取得 ◇(Bash:media-use、条件付き)
shot-plan.json.asset_needs が空でない場合は、素材を解決します(検索 / 生成 / 取得 → プロジェクト内の固定パス + 台帳)。phases/source/guide.md を参照してください(media-use resolve をラップします。検索駆動型カテゴリでは news/web/tweet/image 検索を使用します)。asset_needs が空の場合は、ステップ 3 に進みます。
# illustrative — see phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)
適切に縮退させます。検索 / プロバイダーが利用できない場合、カテゴリを素材不要のものに切り替え(context.log に記録します)。
ステップ 3 — デザイン(サブエージェント:Director Part 2)
サブエージェントを起動します(プロンプト = agents/director.md の Part 2 + ディスパッチコンテキスト。ステップ 2 を実行した場合は解決済みの assets/index.md と catalog-map.md を含めます)。使用可能な素材を中心にショットをデザインします。カタログブロック、hyperframes-animation のルール / ブループリント、レイアウト、モーション、ビートを選びます。また、asset-fusion の場合は element_positions とスポイトパレットも選択します。shot-plan.json(content.block + content.customize + カテゴリ別コンテンツ)を最終化します。
ステップ 4 — ビルド(サブエージェント:Builder、再利用優先)
サブエージェントを起動します。プロンプト = agents/builder.md の全文 + ディスパッチコンテキスト(shot-plan.json、catalog-map.md、カテゴリの module.md、references/motion-vocabulary.md、references/builder-contract.md)。再利用を優先します。npx hyperframes add <block> を実行し、その場でカスタマイズします。不足部分と asset-fusion の機能だけを手作業で作成します。HF 契約に準拠した compositions/index.html を出力します(window.__timelines 上の一時停止状態の GSAP タイムライン、class="clip" + 安定した ID、tl.seek(0)、決定論的)。
ステップ 5 — レンダリング(Bash)
(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4)
# transparent overlay variant: --format webm (or mov)
ステップ 6 — 検証(Bash → 失敗時に修復サブエージェント)
(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)
exit 0 → 完了です。lint / inspect エラーがある場合は、修復サブエージェント(agents/finalize.md:スナップショット QA + その場での修正を 1 回 + 再レンダリング)を起動します。修復時に固定された長さは絶対に変更しません。
レポート + プレビュー(任意)
最終出力(renders/video.mp4、またはオーバーレイ版の .webm / .mov)と長さを報告します。**実行中にプレビューを開かないでください。**プレビューは依頼があった場合にのみ提案し、最終ファイルを表示できるよう、レンダリング後に起動します。
(cd "$PROJECT_DIR" && npx hyperframes preview) # Studio UI; or `npx hyperframes play` for a shareable link
フラグは hyperframes-cli スキル(references/preview-render.md)にあります。
再開テーブル
| 状態 | 再開するステップ |
|---|---|
shot-plan.json がない | ステップ 1(計画) |
shot-plan.json に asset_needs があり、assets/ がない | ステップ 2(素材の取得) |
shot-plan.json が最終版で、compositions/index.html がない | ステップ 3/4(デザイン + ビルド) |
compositions/index.html があり、renders/video.mp4 がない | ステップ 5(レンダリング)+ ステップ 6 |
renders/video.mp4 がある | レポートして終了 |
設計上のメモ(メンテナー向け — 実行時には参照されません)
- **アセット優先の根拠:**素材の調達を最初に行い、ショット設計に反映します(RWA フロー:分析 → 検索 → レビュー → 構成)。検索主導のカテゴリ(
webpage/news/tweet)とasset-fusionは、どちらもメディア用途の検索(ニュース/Web/ツイート/画像)に依存しており、これはメディア用途が文書化している RWA の系譜です。 - **再利用優先:**LLM が生成するテンプレートに相当するエコシステム内の仕組みは、「カタログブロックを組み合わせ、
hyperframes-animationのルールを適用すること」です。HF の一時停止した GSAP タイムラインは、Remotion のuseCurrentFrameに相当します。 - カテゴリモジュールの契約:
categories/<id>/module.mdを 1 つ用意します(計画と構築)。references/motion-vocabulary.md(必要に応じて評価も)を共有します。カテゴリの追加は、フォルダーを追加し、agents/director.mdに分類器の行を登録し、catalog-map.mdに行を追加するだけです。フェーズパイプラインには変更を加えません。 - ディレクトリ構成:
videos/<project-name>/ hyperframes.json context.log shot-plan.json # the IR (Director output) assets/ assets/index.md # media-use output (if sourced) compositions/index.html # Builder output renders/video.mp4 - 登録:
hyperframesルーターに「デザイン主導の短尺モーショングラフィック」のインテントとワークフローの説明を追加します。モーショングラフィックスのトリガーを/general-videoから切り分け、逆方向の使用禁止エッジを追加します。motion-graphics-genre.md§5-7 を参照してください。