MotionKit は何をしますか?
キットルート: このスキルが配置されているフォルダの1つ上の階層($KITと呼びます。スキルがシンボリックリンクされている場合は、リンクを解決してください。例:~/.claude/skills/motionkit → <clone>/skill の場合、$KIT = <clone>)。このキットは、ユーザーが厳選した60本のリファレンス動画から抽出されたものです。一般的なモーションのデフォルトではなく、これに従ってください。
絶対条件(ユーザーの固定設定)
- 突然のカットなし。 すべてのシーンチェンジは、つなぎ目の両側の要素によって行われます(
$KIT/grammar/01-continuity.md)。つなぎ目の最大1/3までがハードカットであってもよく、その場合も強いビート上でのみ許可されます。 - リキッドで流動的、丸みを帯びた動き。 長いイーズアウト、接触時のスカッシュ/ストレッチ、形状変更前のマテリアル変化、接着剤としてのブラー(
02-motion-easing.md)。 - 音楽を生成または合成しないでください。 ユーザーのトラックを使用してください。トラックが指定されていない場合は、提供を依頼してください。このキットには音楽は含まれていません。
- カメラはコンテンツによって決定(ラウンド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)。 - ポリッシュバー(
$KIT/grammar/09-polish-bar.md):きついグローのみ(ハローは不可、グロー要素のスケーリング禁止、大きなSVGブラーフィルターは不可 — グラデーション+グレインを使用)。コンテナモーフはSVGジオメトリで、すべてのフレームで角が丸い状態を維持(クリップパスによる表示切り替えは不可)。テキストを含むUIは深度/ソフトフォーカスから出現 — スケールポップや傾いたステッカーレイアウトは不可。すべての平面オブジェクトにはシェード+リム+コンタクトシャドウを追加。 - プロフェッショナルな要素とフォント: UI/3Dパーツは
$KIT/elements/から使用(elements/showcase/およびresearch/element-notes.mdを参照)。タイプは$KIT/fonts/FONTS.mdから — 一般的なデフォルトは使用禁止。 - プロフェッショナルな仕上がり: 1行につき1つのアクセント、イタリックセリフまたはウェイトジャンプによる強調、すべてのフレームに3つ以下のフォーカル要素、フィルム全体を通して永続的な定数(キャンバス、タイトル、水平線、フォグなど)を配置。
- 特に指示がない限り、リールを優先: 1080×1920、テキストは168~1330ピクセルのバンド内、1行あたり5ワード以下、28ピクセル未満の要素は禁止、フレーム0はフック(黒やロゴは不可)。
- トークン効率を重視:チャプターごとに1つのシーンファイル(または連続したモーフ全体で1つ)、状態変化のみをスナップショット。
ワークフロー
- ブリーフィング(短く)。 件名/ブランド、メッセージ、フォーマット、長さ、音楽ファイル。不足しているものだけを尋ねます。1ラウンドで完了。
- スタイルを選択
$KIT/styles/STYLES.mdから(下部のテーブルがブリーフィング → スタイルをマッピング)。そのカードを完全に読み、必要に応じて$KIT/research/video-notes/にある1〜2のリファレンスノートを開きます。 - 音楽を分析:
npx hyperframes audio <track> --only kind,bpm,beats,downbeats,sections,onsets --json。リズミカル → ビートグリッド(beat(n)、bar(k)、プリミティブ §1)。アンビエント → セクション境界でチャプター分割、最も強いオンセットでヒーローイベント(--threshold 0.3)。 - 1つのテーブルで計画: チャプター ×(時間枠、次のチャプターへのキャリア、オブジェクト状態、キャプション、カメラムーブ)。すべてのつなぎ目に対してキャリアとカメラムーブを指定。指定できない場合は、つなぎ目を再設計。チャプターを1つの3Dワールド内の場所として配置。
- 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に配置。 - 検証:
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)。 - レンダリング:
npx hyperframes render -o <out>.mp4。ユーザーがレビューする際は、納品用レンダリングの前にStudioプレビューを開いてください。
クイックリファレンス
- キャリア(1フィルムあたり3~5つ選択):要素が世界になる · ズームスルー · シェイプモーフ · ガイドオブジェクト · 1枚のカードで多数の状態 · アイリス · カラーフラッド · ブラーホイップ · 連続ワールドカメラ · アンカーワード · シェイプライム · キャリーアクロス · パーティクルディゾルブ · ミディアムワイプ。
- イーズパレット:到着
expo.out/power4.out0.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に追加します。