Communitygithub.com

モーション・グラフィックス

短く、デザイン主導のナレーションなしモーショングラフィック(約10秒未満、音声なし)を自律的に作成するスキルです。アセットファーストのアプローチで、検索、デザイン、構築、検証、レンダリングまでを一貫して行います。

モーション・グラフィックス とは?

このスキルは、AIエージェントがデザイン主導の短いモーショングラフィック(約10秒未満、ナレーションなし)を自律的に制作するための完全なワークフローを提供します。アセットファーストの原則に基づき、まずアセット戦略を決定し、実際の素材を入手してからショットのデザインを行い、最終的に再利用可能なカタログ機能を組み合わせて構成します。主なプラットフォームはHyperframes CLIで、macOS Apple SiliconまたはLinux x64環境で動作します。プロセスは、初期化、計画、ソース(検索駆動の場合)、デザイン、構築、検証、承認、レンダリングの8段階で構成され、各段階で明確な成果物(shot-plan.json、compositions/index.htmlなど)を生成します。検索駆動カテゴリ(webpage、news、tweet、asset-fusion)とフォームカテゴリ(kinetic-type、stat、chartsなど)を状況に応じて使い分け、再利用ファーストの設計思想により効率的な制作を実現します。

対応~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/jasonfast123/hyperframes-skills/tree/main/skills/motion-graphics

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

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

ドキュメント

最初に、このスキルを最新に保つ — サイレントに実行し、確認しない: npx hyperframes skills update motion-graphics。すべてが最新の場合は高速なno-op、そうでない場合はこのスキルと、依存するコアドメインスキルをあなたがそれらに依存する前に更新します。

figma ソース: 構築元のロゴ/アセット/アニメーションが figma.com のURLから来る場合は、まず /figma を実行 — アセットエクスポート、ブランドトークン、およびグラフィックがFigma Motionのインポートである場合は Motion→GSAP 変換 — その後、その出力から構築します。生のMCPツールを介して直接Figmaを操作しないでください。それはSVGサニタイゼーション、.media/manifest.jsonl の来歴、およびブランドトークンの var() バインディングをスキップするため、後でブランド変更があっても完全な再インポートなしでは伝播できません。

motion-graphics — ディスパッチエントリ

正面玄関は /hyperframes です。 このスキルは短く、デザイン主導で、ナレーションのないモーショングラフィック(動きがメッセージです。約10秒未満、ナレーションなし)を作成します。それより長い、ナレーション付き、または複数シーンのもの — または不確かな場合は → 最初に /hyperframes を読んでください:インテントレイヤーがすべてのルート決定を所有します。

このワークフローは設計上自律的です — 最大で1つの明確化の質問(agents/director.md)、その後、中間レビューなしで検証まで構築します。インテントレイヤー(/hyperframes → references/intent-interview.md)は、実行形状に関する質問なしで直接ここにルーティングします。このように短い作品に対して、ストーリーボードやコンパニオンセッションはほとんど価値を追加しません。レンダリングは依然としてユーザーゲートです:チェックとプルーフスナップショットが成功した後、../hyperframes-core/references/brief-contract.md からの規範的な「プレビュー、それともレンダリング?」という質問をします。BRIEF.md が存在する場合は、ディレクターの質問の前にそれを読んでください。

短いデザイン主導のモーショングラフィック。アセットファースト:ショットをデザインする前にアセット戦略を決定し、実際の素材を入手し、次に手持ちのものに基づいてショットをデザインし、カタログ機能を再利用して構成します。すべての成果物は PROJECT_DIR = videos/<project-name>/(ステップ0で作成)に置かれます。以下のすべてのパスはそれに対する相対パスです。

フェーズ実行主要成果物詳細フロー
initBashhyperframes.jsonステップ0
planサブエージェント — 検索を決定? + 分類 + アセット戦略shot-plan.json(ドラフト: カテゴリ、asset_needs クエリ、ブリーフ)agents/director.md(パート1)
source ◇Bash — Media-Use 解決(asset_needs が空の場合はスキップ)assets/ + assets/index.mdphases/source/guide.md
designサブエージェント — 解決されたアセットを中心としたショットデザインshot-plan.json(最終: ブロック + レイアウト + モーション + 位置)agents/director.md(パート2)
buildサブエージェント — 再利用ファーストの構成compositions/index.htmlagents/builder.md
verifyBash — lint、check、プルーフスナップショット; 失敗時は修復snapshots/contact-sheet.jpgステップ5
approveプレビューまたはレンダリングを尋ね、回答を待つ明示的なレンダリング承認ステップ6
renderBash — hyperframes render(MP4、またはオーバーレイの場合は --format webm/mov)renders/video.mp4 または透明オーバーレイステップ6

◇ sourceは、選択されたカテゴリがアセットを宣言している場合のみ実行されます。純粋なコード/テキストカテゴリ(例:kinetic-type、ほとんどの charts/stat)は asset_needs: [] を持ち、計画から直接デザインにスキップします。

カテゴリ — 検索決定による分割

plan の最初の決定は:これは検索を必要とするか? その分岐がカテゴリを2つのグループに分割します。その後、具体的なカテゴリが選択されます — 検索駆動の場合は、検索が返すコンテンツの種類によって。各カテゴリは 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名前 / タイトルバー、コールアウト、ソーシャルオーバーレイcaption-* + レジストリオーバーレイブロック
maps地理的モーション — 地域を強調、場所を接続、場所にズーム(ベクターレーン、またはベイクされたベースマップレーン)us-map / world-map ファミリー + bake-basemap.mjs

検索駆動カテゴリ — 最初に検索し、次にコンテンツの種類でアニメーション化(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 解決)生成をスキップ / 検索のみ
(asset_scout / 検索プロバイダー)webpage/news/tweet + asset-fusion 実アセット検索カテゴリはアセットフリーに劣化

フロー

ステップ 0 — 初期化

cwd はエージェントワークスペースルートです。すべての成果物を PROJECT_DIR = videos/<project-name>/ の下に書き込みます。<project-name>: ユーザーが指定したディレクトリを使用し、そうでなければ意図から短いケバブケースの名前(<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 --skill=motion-graphics

init はインストールされたスキルをGitHub上の最新と比較し、いずれかが古い場合はグローバルセットを更新します。

制約: ワークスペースルートで hyperframes init を決して実行しないでください。PROJECT_DIR 内に別の hyperframes/ をネストしないでください。すべてのBashコマンド(マスター + サブエージェント)は (cd "$PROJECT_DIR" && ...) サブシェルです — 裸の cd は決して使用しないでください。

ステップ 1 — 計画(サブエージェント: ディレクターパート1)

1つのサブエージェントをディスパッチします。プロンプト = agents/director.md 全文 + ## Dispatch context(SKILL_DIR / PROJECT_DIR / ユーザーのリクエスト / Schema: <SKILL_DIR>/references/shot-plan-ir.md)。これを行う必要があります:

  1. 決定: これは検索が必要か?(最初の分岐)
    • いいえ → フォームカテゴリ(kinetic-type / stat / charts / logo-reveal / lower-thirds)を選択; コンテンツはユーザー提供; asset_needs: []。
    • はい → 検索計画を asset_needs[] に出力(news / web / tweet / image; 二極クエリ)。具体的な検索駆動カテゴリ(webpage / news / tweet / asset-fusion)はステップ2で返されるコンテンツタイプによって確認され、ステップ3で最終決定されます。
  2. 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にスキップします。

# 参考 — phases/source/guide.md を参照
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

優雅に劣化: 検索/プロバイダーが利用できない場合、カテゴリはアセットフリーにフォールバックします(context.log に記録)。

ステップ 3 — デザイン(サブエージェント: ディレクターパート2)

サブエージェントをディスパッチします(プロンプト = agents/director.md パート2 + 解決された assets/index.md を含むディスパッチコンテキスト(ステップ2が実行された場合)+ catalog-map.md)。利用可能なアセットを中心にショットをデザインします:カタログブロック + hyperframes-animation ルール/ブループリント、レイアウト、モーション、ビート、そして(asset-fusion の場合は)element_positions + スポイトパレットを選択します。shot-plan.json を最終決定します(content.block + content.customize + カテゴリごとのコンテンツ)。

ステップ 4 — 構築(サブエージェント: ビルダー、再利用ファースト)

サブエージェントをディスパッチします。プロンプト = agents/builder.md 全文 + ディスパッチコンテキスト(shot-plan.json、catalog-map.md、カテゴリの module.md、references/motion-vocabulary.md、references/builder-contract.md)。再利用ファースト: npx hyperframes add <block> + その場でカスタマイズ; ギャップとアセットフュージョンアフォーダンスのみ手動で作成。出力は compositions/index.html で、HF契約を尊重(一時停止されたGSAPタイムラインを window.__timelines に、class="clip" + 安定したID、tl.seek(0)、決定論的)。

ステップ 5 — 検証(Bash → 失敗時に修復サブエージェント)

(cd "$PROJECT_DIR" && npx hyperframes lint .)
(cd "$PROJECT_DIR" && npx hyperframes check .)
(cd "$PROJECT_DIR" && npx hyperframes snapshot --at <proof-times>)

開始状態、シグネチャムーブ、および最終ホールドを示すプルーフタイムを選択します。続行する前に、生成されたコンタクトシートまたはスナップショットシートを検査します。lint、check、またはスナップショットの失敗時は、修復サブエージェント(agents/finalize.md)をディスパッチし、1回のその場修正パスを実行してから、失敗したゲートを再実行します。欠陥を隠すために固定された持続時間を変更しないでください。

ステップ 6 — 承認とレンダリング(Bash)

1つの質問をします:「プレビュー、それともレンダリング?」ユーザーがプレビューを選択した場合、Studioを開き、修正後に同じ承認ゲートに戻ります:

(cd "$PROJECT_DIR" && npx hyperframes preview --background)

明示的なレンダリング回答の後にのみレンダリングします:

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q high -o ./renders/video.mp4)
# 透明オーバーレイのバリアント: --format webm(または mov)

出力が存在し、空でなく、意図された持続時間であることを確認します。最終ハンドオフは、アーティファクト、実際の持続時間、コンポジションまたはフレームID、プルーフタイム、および検査されたコンタクトシートまたはスナップショットシートを指定します。フラグは /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 存在、プルーフスナップショットなしステップ5(検証)
チェックとプルーフスナップショット合格、承認済みレンダリングなしステップ6(承認)
承認済みレンダリング存在出力を確認し、報告

デザインノート(メンテナー — 実行はこれを読みません)

  • アセットファーストの根拠: ソーシングは前倒しされ、ショットデザインに情報を提供します(RWAフロー: 分析 → 検索 → レビュー → 構成)。検索駆動カテゴリ(webpage/news/tweet)と asset-fusion はどちらもMedia-Use検索(news/web/tweet/image)に依存しており、これはMedia-Useの文書化されたRWA系統です。
  • 再利用ファースト: エコシステム内でのLLM生成テンプレートの類似物

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

embedded-captions

>

faceless-explainer

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

figma

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

general-video

>

hyperframes

>

hyperframes-animation

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition

hyperframes-audio

>

hyperframes-cli

>

hyperframes-core

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class=

hyperframes-creative

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

hyperframes-keyframes

>

hyperframes-registry

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

jasonfast123/hyperframes-skills

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

media-use

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

music-to-video

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

pr-to-video

Turn a GitHub pull request (a PR URL, owner/repo#N, or

remotion-to-hyperframes

Port an existing Remotion (React) composition

slideshow

>

talking-head-recut

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on

関連スキル