Communitygithub.com

MotionKit

プロフェッショナルな製品フィルムのような、プレミアムで流動的なモーショングラフィックスを生成するスキルです。ユーザーが提供する音楽に合わせて、カットを最小限に抑えた滑らかなアニメーションを実現します。

MotionKit とは?

MotionKitは、Apple、OpenAI、Anthropic、Bentomotionなどのトップブランドのプロモーションフィルムで見られるような、高品質で流動的なモーショングラフィックスを作成するために設計されたAIエージェントスキルです。HyperFramesフレームワーク上に構築されており、ユーザーが提供する音楽ファイルに同期して動作します。このスキルは、突然のカットを排したリキッドモーフィング、カメラワークの最適化、プロフェッショナルなフォントやUI要素の使用など、厳格な品質基準に従います。対応プラットフォームは主にClaude CodeなどのAIエージェント環境で、開発者は自然言語の指示から、製品ローンチ、プロモーション動画、エクスプロイナー動画、リールなどの制作が可能です。MotionKitは60以上の参照動画から抽出されたベストプラクティスを基に動作し、Ember Flow、Morph Continuum、Neon Rimといった複数のプレミアムスタイルをサポートしています。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/DyneStein/motionkit/tree/main/skill

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

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

ドキュメント

MotionKit は何をしますか?

キットルート: このスキルが配置されているフォルダの1つ上の階層($KITと呼びます。スキルがシンボリックリンクされている場合は、リンクを解決してください。例:~/.claude/skills/motionkit → <clone>/skill の場合、$KIT = <clone>)。このキットは、ユーザーが厳選した60本のリファレンス動画から抽出されたものです。一般的なモーションのデフォルトではなく、これに従ってください。

絶対条件(ユーザーの固定設定)

  1. 突然のカットなし。 すべてのシーンチェンジは、つなぎ目の両側の要素によって行われます($KIT/grammar/01-continuity.md)。つなぎ目の最大1/3までがハードカットであってもよく、その場合も強いビート上でのみ許可されます。
  2. リキッドで流動的、丸みを帯びた動き。 長いイーズアウト、接触時のスカッシュ/ストレッチ、形状変更前のマテリアル変化、接着剤としてのブラー(02-motion-easing.md)。
  3. 音楽を生成または合成しないでください。 ユーザーのトラックを使用してください。トラックが指定されていない場合は、提供を依頼してください。このキットには音楽は含まれていません。
  4. カメラはコンテンツによって決定(ラウンド3〜4): バラエティに富んだルートを計画し(同じ方向を連続で2回使わない:左右トラック、上下ペデスタル、斜め、プッシュ、プル、ホールド)、カメラビートと、静止カメラの下で洗練された要素が相互作用する要素ビートを交互に配置します。イベントを音楽に同期させます(sync_check.py でリフトが×1.35以上;アンビエントトラックの場合はbeatSync()、リズミカルなトラックの場合はビートグリッド)。テキスト駆動のフィルム → GLIDE(滑空)するトラベリングフォローカム(ワードターゲットを通るスプライン e:"glide"、リージョン間のベルイーズ — 単語ごとのホップは不可);要素駆動のフィルム → 動機付けられシードされた動き(camSeed、seed)のみを持つ、ほぼ固定されたカメラ — 目的もなく動かず、繰り返しパターンも避ける。テキストフィルムに関する以前のルールは引き続き有効:(ラウンド2:「単なる視点の変更であり、カメラは動いていない」):フレームよりも広い世界の中でアクティブな単語/主人公を追うフォローカム、単一オブジェクトストーリーのための駅間キャリア移動、常にパララックス参照レイヤー($KIT/grammar/08-camera.md § v3、$KIT/research/camera-notes.md、プリミティブ §19–20)。さらに、(ユーザーはこれがないことを「MAJOR MAJOR MAJOR FLAW」と表現しています):すべてのフィルムをcamera-rig.jsを通して見る3Dワールドとして構築。カメラはフレームの65%以上を移動(リファレンス:中央値77%、research/camera_motion.pyで測定)。キャプションはワールドに追従、静止中も移動を継続、静止とスイープのリズム、3層以上のデプスレイヤーとパララックス、被写界深度、ハンドヘルドドリフト、スイープ時のモーションブラー($KIT/grammar/08-camera.md)。
  5. ポリッシュバー($KIT/grammar/09-polish-bar.md):きついグローのみ(ハローは不可、グロー要素のスケーリング禁止、大きなSVGブラーフィルターは不可 — グラデーション+グレインを使用)。コンテナモーフはSVGジオメトリで、すべてのフレームで角が丸い状態を維持(クリップパスによる表示切り替えは不可)。テキストを含むUIは深度/ソフトフォーカスから出現 — スケールポップや傾いたステッカーレイアウトは不可。すべての平面オブジェクトにはシェード+リム+コンタクトシャドウを追加。
  6. プロフェッショナルな要素とフォント: UI/3Dパーツは$KIT/elements/から使用(elements/showcase/およびresearch/element-notes.mdを参照)。タイプは$KIT/fonts/FONTS.mdから — 一般的なデフォルトは使用禁止。
  7. プロフェッショナルな仕上がり: 1行につき1つのアクセント、イタリックセリフまたはウェイトジャンプによる強調、すべてのフレームに3つ以下のフォーカル要素、フィルム全体を通して永続的な定数(キャンバス、タイトル、水平線、フォグなど)を配置。
  8. 特に指示がない限り、リールを優先: 1080×1920、テキストは168~1330ピクセルのバンド内、1行あたり5ワード以下、28ピクセル未満の要素は禁止、フレーム0はフック(黒やロゴは不可)。
  9. トークン効率を重視:チャプターごとに1つのシーンファイル(または連続したモーフ全体で1つ)、状態変化のみをスナップショット。

ワークフロー

  1. ブリーフィング(短く)。 件名/ブランド、メッセージ、フォーマット、長さ、音楽ファイル。不足しているものだけを尋ねます。1ラウンドで完了。
  2. スタイルを選択 $KIT/styles/STYLES.mdから(下部のテーブルがブリーフィング → スタイルをマッピング)。そのカードを完全に読み、必要に応じて$KIT/research/video-notes/にある1〜2のリファレンスノートを開きます。
  3. 音楽を分析: npx hyperframes audio <track> --only kind,bpm,beats,downbeats,sections,onsets --json。リズミカル → ビートグリッド(beat(n)、bar(k)、プリミティブ §1)。アンビエント → セクション境界でチャプター分割、最も強いオンセットでヒーローイベント(--threshold 0.3)。
  4. 1つのテーブルで計画: チャプター ×(時間枠、次のチャプターへのキャリア、オブジェクト状態、キャプション、カメラムーブ)。すべてのつなぎ目に対してキャリアとカメラムーブを指定。指定できない場合は、つなぎ目を再設計。チャプターを1つの3Dワールド内の場所として配置。
  5. HyperFramesで構築(最初に/hyperframesをロードして契約を確認)。最も近いサンプルから開始(v2 = カメラあり):$KIT/samples/a-ember-lumen(S1)、b-morph-nook(S2)、c-neon-aura(S3)、d-saas-tally(S4) — cp -Rで新しいプロジェクトにコピーし、書き換え。$KIT/primitives/PRIMITIVES.mdのブロックを使用。パレットとフォントをルートのdata-composition-variablesに配置。
  6. 検証: npx hyperframes check --json 2>/dev/null(stderrはノイズが多い)→ エラーを修正、警告を評価 → npx hyperframes snapshot --at <すべての状態変更 + スイープ途中> -o .snap/x → コンタクトシートを読む → 修正(コーナーとグローをズーム:snapshot --zoom)。07-engineering-pitfalls.mdと09-polish-bar.mdのチェックリストを実行。レンダリング後、カメラモーションを測定:python3 $KIT/research/camera_motion.py <dir-with-mp4> out.json — 目標 moving_frac ≥ 0.65(リファレンスの下位四分位;中央値0.77)。
  7. レンダリング: npx hyperframes render -o <out>.mp4。ユーザーがレビューする際は、納品用レンダリングの前にStudioプレビューを開いてください。

クイックリファレンス

  • キャリア(1フィルムあたり3~5つ選択):要素が世界になる · ズームスルー · シェイプモーフ · ガイドオブジェクト · 1枚のカードで多数の状態 · アイリス · カラーフラッド · ブラーホイップ · 連続ワールドカメラ · アンカーワード · シェイプライム · キャリーアクロス · パーティクルディゾルブ · ミディアムワイプ。
  • イーズパレット:到着 expo.out/power4.out 0.5~0.9秒 · 退出 power3.in(入場の40~50%) · カメラ/モーフ power2.inOut · プレミアムスプリング back.out(1.4) · 線形はオービット/ローテーション/プログレスのみ。
  • タイプ:単語ごとのブラーイン(移動なし) · グレー→インクの読み上げ連動 · スロットマシンワード · ハイライトピルキーワード · イタリックセリフアクセント · 文中のインラインアイコン。
  • ストーリー形状:問題(暗い)→ 明かし → 機能 → CTA · 混沌 → 秩序 · 1人の主人公の多数の状態 · プロンプト → 結果 · アンカーワードによるマニフェスト · マイクーループ。

キットの成長

ユーザーが新しいリファレンス動画を追加した場合:タイムスタンプ付きのコンタクトシートを作成(0.33~1秒間隔でサンプリング)+ トランジションの10fpsストリップ、動画ごとにresearch/video-notes/にノートを作成、research/INDEX.mdに行を追加、新しいパターンを文法/スタイルファイルに組み込みます。ビルドから新しいバグやプリミティブが判明した場合、07-engineering-pitfalls.md / PRIMITIVES.mdに追加します。

関連スキル