Communitygithub.com

KasunJayasanka/product-motion-video

60秒のモーショングラフィック製品/ブランド動画(ショーリール、プロモ、ローンチティーザー、説明動画)を、単一の自己完結型アニメーションとして作成し、必要に応じてMP4にエクスポートします。

product-motion-video とは?

このスキルは、ユーザーが製品、企業、アイデア向けのモーショングラフィック動画を求めた際に、1つのHTMLファイルとして完全な60秒アニメーションを生成します。トークン効率を最適化するように設計されており、最小限の入力(トピックは必須、ブランド情報やスタイル参照はオプション)で、フック、問題提起、機能紹介、CTAを含む8シーン構成のアニメーションを自動生成します。HTML/CSS/バニラJavaScriptのみを使用し、外部依存関係はなく、ファイルサイズは18KB以下に抑えられます。主なモーション表現として、キネティックタイポグラフィ、マスクリビール、ストロークダッシュオフセット線描画、カウントアップ、パララックスレイヤー、グリッチ効果など6種類以上を実装。再生/一時停止、スクラブバー、シークパラメータなどのコントロールを備え、オプションでWebAudioによる効果音も合成できます。さらに、ユーザーが明示的に要求した場合には、Playwrightとffmpegを使用したMP4エクスポート手順も提供します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/KasunJayasanka/product-motion-video-skill/tree/HEAD

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

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

ドキュメント

製品モーション動画(60秒)

0. 入力(不足分のみを1メッセージで最大3質問)

  • TOPIC: 製品/アイデア(必須)
  • BRAND: URL または md ファイル(任意)-> 名前、タグライン、メリット3つ、色、トーンを抽出。web_fetchは最大1回。
  • STYLE REF: 任意; 3つの特性(ペース、タイプ、パレット)を1行で推測。詳細調査は不要。 ユーザーが {placeholders} を未記入のままにした場合、空として扱い、仮定を1行で述べて構築する。

1. 計画(15行以内の思考、エッセイ不可)

パレット(背景、インク、アクセント1色、セカンダリ1色)、ディスプレイフォント1つ + 本文フォント1つ(システム/Google Fonts、フォールバック付き)、8シーン。

デフォルトの60秒構造(秒):

  1. 0-5 フック: キネティックタイポグラフィ、大胆な主張1つ
  2. 5-13 問題提起: グリッチ/テンション、カウンター
  3. 13-21 リビール: ロゴ/製品がモーフィングイン
  4. 21-31 機能1-3: UIカード、アイコンがポップ、段階表示
  5. 31-41 証明: アニメーション化されたグラフ/数字のカウントアップ
  6. 41-49 フロー/仕組み: 線描画パス + ノード
  7. 49-56 モンタージュ: 高速カット、0.4秒ビート、マーキーテキスト
  8. 56-60 CTA: ロゴ、タグライン、URL、パルス

2. 構築(1つの.htmlファイル、バニラJS、依存関係ゼロ、18KB以下)

アーキテクチャ、超コンパクトに:

  • 1920x1080のステージをCSS transformでフィットするようにスケーリング; すべての色はCSS変数として定義。
  • マスタータイムライン: scenes=[{t0,t1,build(stage), update(p)}] とし、p は0..1の範囲。単一のrAFクロック t=(now-start)/1000 から取得。setTimeoutチェーンは使用しない。
  • ヘルパー関数(1回記述して再利用): ease(p)(cubic/expo/back)、lerp、clamp、stagger(i,n,p)、type(el,text,p)。
  • モーションボキャブラリ(6種類以上を使用): キネティックタイポグラフィ、マスクリビール、stroke-dashoffset線描画、カウントアップ、パララックスレイヤー、段階表示カード、シェイプモーフ(SVGパスをlerpしたd属性で)、グリッチ(clip-pathスライス)、マーキー、カメラプッシュイン(ステージのscale+translate)、シーン間のスクリーンワイプ。
  • ルール: シーン間のトランジションは0.4秒重ねる; すべての要素はイージングを使用(リニア禁止); 同時に2つ以上のフォーカルポイントを持たない; キーテキストは1.2秒以上表示; transform/opacityのみアニメーション化。
  • コントロール: 再生/一時停止(スペースキー)、スクラブバー、リスタート、?t=SECONDS シークパラメータ、window.seek(t)(エクスポート用)。
  • prefers-reduced-motion を尊重し、点滅するグリッチシーンを自動再生しない。
  • オプションの音声: WebAudioでシーンカット時に効果音を合成(デフォルトはオフ、ミュート切り替え可)。外部音声は不可。

3. 納品

  • Artifactツールを使用してページとして公開(publish); Artifactツールがない場合は、/mnt/user-data/outputs にファイルを作成し present_files を使用。
  • 返信: 2文(内容と仮定)。シーンごとのナレーションは不要。

4. MP4エクスポート(ユーザーが要求した場合のみ)

Playwrightヘッドレス: f=0..1799 で seek(f/30) を呼び出し、1920x1080でスクリーンショット -> フレーム; ffmpeg -framerate 30 -i f_%04d.png -c:v libx264 -pix_fmt yuv420p out.mp4。ffmpeg/Playwrightがない場合は、その旨を伝え、代わりにこのレシピをユーザーに提供し、再試行はしない。

5. トークン規律

  • 他のスキルを読まない、プレビューレンダリングしない、要求がない限り磨き上げない。
  • シーン間で同じカード/タイプのレイアウトを再利用; 動きを変え、マークアップは変えない。
  • ファイルは1回のツール呼び出しで記述。編集は小さなstr_replace編集で行い、書き直しはしない。
  • リサーチは1回のfetch + 1回の検索に制限する。

関連スキル