mcpField
D
dimensional-drawing-motion

dimensional-drawing-motion

github.com/enesozturkクリエイティブ・メディア1.4k153 回インストール5 日前に更新
リポジトリ

dimensional-drawing-motion について

`dimensional-drawing` のシートをアニメーション映像にするスキルです。図面やレイヤーを見せたい制作者向けに、時間駆動の単一 SVG シーンと Motion、ヘッドレスの描画手順を用意しています。

主な機能

  1. 01用意されたテンプレートからシートをアニメーション化
  2. 02カメラ移動で描画の進行を表現
  3. 03平面レイヤーを軸測図に変形
  4. 04Motion または Playwright と ffmpeg でレンダリング
  5. 05時間の関数として各フレームの属性を設定

活用シーン

  1. 01部品シートの描画アニメーションを作成
  2. 02分解されたレイヤー表示を紹介
  3. 03ヘッドレス手順で映像をレンダリング
  4. 04カメラのタイミング調整とキーフレーム確認

インストール

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

$npx skills add https://github.com/enesozturk/dimensional-drawing --skill dimensional-drawing-motion

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

adapters/
claude-motion.md
adapters/headless/
package.json
player.html
README.md
render.mjs
templates/
base.css
scene-dialog.js

詳細

寸法図 → モーション

dimensional-drawing スキルで作成したシートをアニメーション化します。ペンでシートを描きながら、カメラがその上を移動するように見える映像です。図面と同じルールに従います。モノクロ、内容ではなくスロット、可変コード、ブランド表記なし。

templates/scene-dialog.js と templates/base.css から始めます。これが参照映像です(11 秒、1920×1080、60 fps)。これをベースに調整してください。白紙から始めないでください。

実行環境

環境使用するもの
Motion アーティファクトタイプを使う claude.ai 上の Claudeadapters/claude-motion.md。これが主要な調整済みターゲットです。
Claude 以外のエージェント/Claude を使わない場合adapters/headless/:Playwright で各フレームを描画し、ffmpeg でエンコードします。npm install を実行してから、node render.mjs --scene … --css … --out film.mp4 を実行します。

どちらの場合もシーンファイルは同じです。必要なのは小さな kit(seg, lerp, eo, ei, eio, clamp01, stage, h, css, scene)だけです。また、シーンは時間の純粋関数でなければなりません。render(t) は、前のフレームの状態ではなく、時間 t のみからすべてのプロパティを設定します。これにより、ヘッドレスレンダラーが任意のフレームに移動できます。

その他のアニメーションライブラリ(Remotion、Motion Canvas、GSAP、Lottie など)はテストされていません。シーンは純粋関数なので移植は可能ですが、まずライセンスを確認してください(Remotion は 3 人を超えるチームで会社ライセンスが必要です)。

演出(参考タイミング、秒)

シーン時間は t = t / 0.85 でスケーリングされるため、以下の数値は画面上で約 15%速く進みます。この係数を変更すると、映像全体を速くしたり遅くしたりできます。

  1. 0 – 2.3 · ヘッダーのクローズアップ。 図面の左上を約 4.4×で表示します。外枠が左上の角から描かれ、続いてリードサークル、X ボックス、タイトルスロット、ヘッダーの区切り線、ヘッダー寸法(S1、Z1、S5、H1)が描かれます。わずかにドリフトさせます(z 4.4 → 4.2)。
  2. 2.3 – 4.2 · 図面全体へ引きます。 ログズームで約 1.7×にします。移動中に、残りの図面を描きます。トレイルコントロール、ボディウェル、コンテンツスロット、ラベル/値スロット、フッターアクション、中心線、上/下/左/右の連鎖寸法、半径引出線、ボックス付き注記、詳細円、ビュータイトル。
  3. 4.2 – 7.2 · レイヤーが浮かび上がります。 カメラを、分解図がある左側へゆっくり移動させます。コンテナー → ボディ → スロットの複製を、平面図のマトリックスから軸測投影のマトリックスへ変形させ、各 Z 座標まで上昇させます。線を先に、塗りを後に描きます(塗りは a+0.55 から a+1.25 にかけてフェードインします)。そうしないと、白い塗りが図面の上に一瞬表示されます。固定された下部レイヤー(ビューポート、スクリーン、シャドウ)は、これらの下に描きます。続いて引出線とレイヤーラベルを描きます。
  4. 7.2 – 9.2 · シート全体へ引きます。 ズームを 1.0 にします。シートの枠線を描き、続いて注記、表、詳細ビュー(ヘッダーコントロール、フッターアクション、ビューポートの配置、入れ子の角、フィールド、半径の詳細)を、それぞれ 0.3~0.5 秒で描きます。
  5. 9.2 – 終了 · 静止。 ごくゆっくり押し込み(z 0.998 → 0.988)、最終フレームが止まったように見えないようにします。

合計約 11 秒です。映像の長さは 8~15 秒にしてください。

テンプレートの仕組み

  • 1つのSVG、1つのカメラ。 シートは viewBox 0 0 1900 1060(描画幅の1700より広く、最終フレームが左右の余白なしで16:9を埋めるサイズ)で、init 内で一度だけ描画されます。ラッパー .dw-cam には、カメラキー DW_CAM = [{t, cx, cy, z}] から translate(960 − cx·z, 540 − cy·z) scale(z) が適用されます。イーズイン・イーズアウトと対数ズーム(exp(lerp(log z0, log z1, p)))で補間するため、ズームが滑らかに見えます。
  • 登録。 グループを描画する前に at(start, stagger, dur) を呼び出します。その後に mk() で作成した各要素には、ウィンドウ [start + i·stagger, … + dur] が設定されます。要素は描画順にグループ化します:輪郭 → 構造 → スロット → 寸法 → ラベル。
  • 要素は2種類です。
    • d(描画):実線のストロークです。pathLength=1、strokeDasharray: 1 2、strokeDashoffset: 1 → 0 をイーズイン・イーズアウトで適用します。塗りは最後の45%の間にフェードインします。
    • f(フェード):テキスト、破線のスロット、中心線、包絡線、ハッチングです。不透明度をイーズアウトで変化させます。破線には破線アニメーションの手法を使えないため、フェードさせます。
  • モーフグループ。 mg(z, start) は、行列を flat = [k,0,0,k,PX,PY](平面図)から iso = [.94s,.17s,−.34s,.47s,TX,TY] へ線形補間するグループを作成し、ty から z·v を差し引きます。グループの拡大縮小中もストローク幅が一定になるよう、各フレームで --u = 1/√|det M| を設定します。
  • パフォーマンス。 値は1/400単位に量子化し、変化がない場合は更新をスキップします。モーフグループの塗りは一度だけ取得します。

新しいコンポーネントへの適用

  1. 図面シートのジオメトリ(平面図の原点 PX, PY、スケール k、r()/dimH()/dimV()/rad()/nb()/detailRef()/table()/notes() の呼び出し)をテンプレートのヘルパーを維持したまま init にコピーします。
  2. 新しい平面図に合わせて at() のタイムラインを書き換えます。最も特徴的な角(ヘッダー、ハンドル、切り欠き)から始め、カメラを引きながら平面図の残りを描画します。
  3. 分解図のレイヤーを列挙します(下部の静的なレイヤーには G(z)、持ち上がるレイヤーには mg(z, start) を使います)。各レイヤーの間隔は0.1秒にします。
  4. DW_CAM のカメラ位置を設定し直します:クローズアップ → 平面図の中心 → 分解図の中心 → シートの中心(950, 530、z ≈ 1)。
  5. 重要な場面のフレームを確認します(シーン時間で0、1.2、2.4、3.3、4.6、5、5.9、6.6、8、10、11秒)。次の点を確認してください:要素が描画されず突然表示される、塗りが点滅する、移動中にラベルがフレーム外に出る、最初の1秒が慌ただしい。
  6. レンダリングします(Motion export、または render.mjs)。

モーションのスタイルルール

  • 一度に先導するのは1つだけです:視線はペンを追います。寸法線は対象の形状を描いた後、ラベルは引出線の後に表示します。
  • カメラとストロークはイーズイン・イーズアウト、フェードはイーズアウトを使います。バウンス、オーバーシュート、色は使いません。
  • 背景は白、線は #111、グレーのみを使用します。大文字には Arimo/Helvetica を使い、文字サイズはシートと同じにします。
  • 指示がない限り、音楽やナレーションは入れません。

映像の長さと、各場面で何を見せるかを1~2文で答えてください。

コメント