mcpField
E
explainer-motion

explainer-motion

github.com/kitlangtonクリエイティブ・メディア41390 回インストール1 週間前に更新
リポジトリ

explainer-motion について

Explainer Motionは、伝わりやすい解説アニメーションを作るためのモーション設計原則とビートの手引きです。Psychopompを使うアニメーター向けに、因果関係のある動き、局所的な照明、決定論的なタイミングを重視します。

主な機能

  1. 01動きの源・経路・到達点の設計
  2. 02送信・接続・衝突・破壊ビートの指針
  3. 03物理的なイージングとカメラ移動の規則
  4. 04クロックから導く決定論的アニメーション
  5. 05サムネイルサイズでの焦点確認

活用シーン

  1. 01解説映像のビート設計
  2. 02コンポーネント間を移動するデータパケットの描写
  3. 03システムエラーと解決の表現
  4. 04接触フレームとカメラの連続性確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kitlangton/psychopomp --skill explainer-motion

インストール後、Claude Code で/explainer-motionを入力して読み込まれたか確認します。

同梱ファイルTECHNIQUES.md

詳細

解説用モーション

エネルギーには源があります

すべてのビートで、エネルギーは特定の地点から別の地点へと移動します。源で集まり、移動し、着地点で吸収され、冷めていく光を残します。視聴者が原因を指し示せないのに、光ったり、点滅したり、動いたりするものはありません。ビートが平坦、あるいは騒がしく感じるときは、そのエネルギーがどこから来て、どこへ向かうのかを確認してください。

ルール

  • 静止時は静かに。 待機中のワイヤーやフレームは動かず、つや消しの状態です。動きや光は、何かが起きていることを意味します。
  • 焦点となる動作はひとつ。 源を示し、信号を追い、その結果を読み取ります。ナレーション中は背景の流れを止めてください。サムネイルサイズでは、動いている信号がヒーローオブジェクトの質感やすべてのフレーム枠よりも目立つ必要があります。
  • 光は局所的に。 光は動くものから生まれ、距離に応じて弱まります。パケットが照らすのは、その近くの境界だけです。到着時には、カード全体を塗りつぶすのではなく、ソケットを起点にカードを着色します。
  • 受け手は拡大しません。 到着時の表現は、小さなリング、ソケットから広がる光、インクのようなフラッシュです。形状が動くのは登場時(落ち着く動き)と、意図的に作り込んだ物理リグの場合であり、ヒット時ではありません。
  • ブルームは生きているものに使います:パケットの先端とヒーローオブジェクトです。境界、光の広がり、軌跡はブルームのしきい値以下に保ち、くっきり見えるようにします。
  • 色には意味を持たせます。 信号は、軌跡や反射に色味を持たせた、ほぼ白色にします。赤は失敗を表し、追いかける対象にはひとつのアクセントカラーを使います。
  • 物理的なイージング。
    • パケットの移動:最小ジャークの5次曲線(smootherstep)を使い、静止状態に入るまで速度と加速度を連続させます。Cubic in-out は中間点で加速度が不連続になるため、習慣で使わないでください。
    • カメラの動き:重みと自然な余韻を出すため、臨界減衰のスプリングを試してください。最小ジャークの滑走は、静止状態間の正確なタイミングの動きに適しています。硬く見える場合は、すべてのカメラの動きに固定時間のカーブを無理に当てはめないでください。
    • 描画の開始:cubic-bezier(.45, 0, .2, 1) を使います。ポートから飛び出すような動きにも、ソケット位置で止まる動きにもなりません。
    • 剛体パネルの登場:変位を小さくし、減衰スプリングを使います。コンテンツは本体から約60 ms遅れて追従させます。跳ね返りを加える前に、振幅を調整してください。
    • フラッシュ:瞬時に立ち上げ、凸型に減衰させます(急速に弱まり、その後長く尾を引く形)。
    • 打たれたものは響きます:ケーブルは減衰の弱いスプリングでびよんと揺れます。
  • 反応は接触の後に。 因果関係を確認するときは、エネルギーの集まりや予備動作も含めてください。リクエストが届く前に、返信の準備を始めてはいけません。衝撃はためらわずに始めます。静止状態からゆっくり動き出すスプリングは、自発的な動きに見えます。
  • 時間の純粋関数。 どのフレームも、どの順序で描画しても同じように描画されます。イベントの各フェーズはひとつの時計(イベントの経過時間)から導き、再ターゲット時には速度を引き継ぎ、段階的な値でイージングを偽装しないでください(カクつきます)。モーションブラーも描画してください。
  • 連続性。 物体はカットではなく変形させます。カメラがカードに飛び込み、そのカードが開いてコードになる。同じオブジェクトを次のビートへ引き継ぎます。
  • 物理的なメタファー。 仕組みを文字どおりに表現します。停止されたサーバーは砕け散り、落とされたエラーは落下し、タイムアウトは閉じていくリングであり、データはワイヤーに沿って流れます。
  • カメラ。 オープニングではドリーインし、話している登場人物へ向かってゆっくり移動し、重要な面にフォーカスを合わせ、結果を見せるために引き、解決の場面では押し込みます。揺らすのは衝撃の瞬間だけです。メッセージを追うのは、その移動が物語の中心となる場合だけにします。周回は奥行きを見せるために使い、装飾目的では使いません。
  • リズム。 登場は約120 msずつずらします。衝撃は静かな音とともに、発話された言葉に合わせます。修正を示すには、巻き戻しが見えるように(再組み立て、再接続)してから、同じ瞬間を再生し、異なる解決を見せます。

ビート

それぞれの定数と数式については、TECHNIQUES.md を参照してください。

  • 送信:ポートに光が集まり(340 ms)、実体のある点が飛び立ち、冷えていく軌跡を残しながら進み、小さな開くリングとして着地します(720 ms)。反射光が近くの境界に沿って点とともに走り、出発点では残り火が輝き、到達先に光が流れ込みます。
  • 接続:ポートが柔らかく定まり、ワイヤーが cubic-bezier(.45, 0, .2, 1) で描かれ、その後静かに留まります。ビートに衝撃や活発な通信が必要な場合は、surge、twang、land、flow を明示的に指定してください。
  • 定着:剛性のあるパネルがわずかなスケール補正を伴って所定の位置に移動し、その内容が追随して鮮明になります。背景は暗く保ってください。Stage とソース図の正確な調整値は TECHNIQUES.md で区別しています。
  • 衝撃:閃光、パルス、揺れ、または震動。瞬時に立ち上がり、凸型に減衰します。球体の場合、接触は表面で受け止めます。局所的なくぼみ、表面波、そして光の冷却が続きます。隠れた終点や無関係な中心のパルスではなく、目に見えるシルエットが交差するタイミングで発動してください。
  • 破壊:短い内向きの圧縮 → 高温の解放 → 圧力波 → 冷えていく煙と落ちる残り火。静かなシーンの中で、高温のフェーズを際立たせてください。波は既存のピクセルを歪ませ、煙は発光ではなく遮蔽として表現します。すべてのフェーズを、ひとつの巻き戻し可能なクロックで制御します。ボリューム表現のレシピは TECHNIQUES.md を参照してください。

ビートの設計

  1. すべてのビートについて、エネルギーの発生源、経路、到達先を明記します。この3つがそろわないまま光ったり、閃光を放ったり、動いたりするビートがなくなれば完了です。
  2. 競合する動きを無効にして、読み取りやすいポーズを構成します。TECHNIQUES.md から対応するビートを選び、ソースのアルファ値やバウンスをそのまま模倣するのではなく、到達先の素材感と明るさに合わせます。焦点となる動作がサムネイルサイズでも読み取れ、残すすべての要素があらゆるカメラ構図に収まれば完了です。
  3. クロックから導出される決定論的な動きとして構築します。Psychopomp では、StageActor のビート(send、send_arriving、connect、connect_contacting、settle_in、hit、twang、land、orb_in、glitch、rewind、swap_status、halo、ring_timer、disconnect)、返信の最も早い起動タイミングには stage::reply_after、波紋には author::stagger、そして psychopomp::math を使用します。リールのワークフローについては、psychopomp スキルで説明しています。
  4. 映像全体を作る前に、通常速度の短いテスト映像をレンダリングします(Psychopomp では、plan render <plan> out.mp4 --range a..b をフォアグラウンドで実行します)。前の処理と比較してから、40 ms 以下の間隔で接触フレームを確認します。物体本体、内容、ポート、カメラをそれぞれ個別に確認します。動きの中で結果が読み取れ、すべての光に目に見える発生源があり、静かなホールドが静かなまま保たれ、接触時に受け手や接続されたワイヤーがテレポートしなければ完了です。実際に確認した再生映像またはフレームの証拠を明記してください。終点の静止画だけでは、動きが滑らかであることは証明できません。

コメント