Communitygithub.com

netfire222/vfx

リールVFXパック - /vfx strike、echo、spotlight、freeze-mark、pinned-comment。話者の背後にアニメーションタイトルを表示したり、単語を打ち消して入れ替えたり、ネオンスポットライトを当てたり、顔をフリーズ&丸で囲ったり、コメントカードを表示します(ヘブライ語+英語対応)。オプションの /vfx showcase は、結果をClaudeアプリUIでラップし、タイプコマンド、効果音、CTAを追加します。

vfx とは?

このスキルは、トーキングヘッド形式のリール動画(主に縦型9:16)に、視覚的なVFXエフェクトを追加するためのパックです。話者の背後にビッグタイトルを配置(人物セグメンテーションにより自動で頭上に配置)する機能を核に、単語の打ち消し&入れ替え(/vfx strike)、エコー効果(/vfx echo)、ネオンスポットライト(/vfx spotlight)、フリーズ&顔の手書き風赤丸(/vfx freeze-mark)、コメントカード(/vfx pinned-comment)などを提供します。ヘブライ語(RTL)にも完全対応しており、静止画確認による品質チェックを推奨しています。さらに、/vfx showcase を使えば、エフェクトを適用済みのクリップをClaudeアプリ風のUI(コマンド入力、エフェクト音、CTAボタン付き)でラップできます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/netfire222/vfx-skill/tree/HEAD/vfx

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

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

ドキュメント

/vfx - トーキングヘッドリール用VFXパック

大きなタイトルは話者の背後(人物セグメンテーション)に描画され、自動的に頭上に配置されます。ヘブライ語(RTL)にも完全対応。

コマンド機能
/vfx strike頭上に大きな単語を表示 → 赤線で打ち消し → 新しい単語に入れ替え
/vfx echo大きなタイトルがポップインし、アウトラインのエコーコピーが飛び出す
/vfx spotlight背景が暗くなり、話者に暖かい光が当たり、ネオン調のタイトルが点滅
/vfx freeze-markフリーズ+フラッシュ+ズームイン+顔の周りに手描きの赤丸(+オプションでラベル)
/vfx pinned-comment「返信コメント」カードが上部にポップイン
/vfx plan複数のエフェクトを1回のレンダリングで処理
/vfx showcaseレンダリング済みクリップをClaudeアプリUIでラップ:タイプコマンド、「Edited with /vfx X」ヘッダー、タイピング&エフェクト音、最後にCTA

入力

  • 動画(縦型9:16のトーキングヘッドが最適)と、エフェクトごとに正確なテキストとタイミング。 ユーザーが指定していないテキストは決して発明せず、不足している場合は一度だけ質問してください。タイミングはトリガーワードから取得できます(words参照)。
  • 出力はソースと同じ場所に <name>_vfx.mp4 として保存します。

セットアップ(一度だけ)

  • スクリプトはこのファイルと同じ場所にあります:scripts/vfx.py、scripts/compose.py(フルパスで呼び出してください)。
  • ffmpeg、Node/npm(フォントとセグメンテーションモデルは npm pack で一度だけ ~/.cache/vfx に取得)、および pip install numpy pillow fonttools python-bidi ai-edge-litert "opencv-python-headless<5" が必要です。 オプション:pip install rembg onnxruntime(髪の毛のエッジがよりきれいに、自動適用)、pip install faster-whisper(単語タイミング)。

ワークフロー

  1. ffprobe でクリップを確認。頭上の余白が少ない場合 → タイトルは自動的に画面下3分の1に配置されます。リフレーミングを提案します。
  2. 音声からタイミングを取得:python3 scripts/vfx.py words clip.mp4 --lang he → {word,start,end} の行が出力されます。
  3. レンダリング:
    python3 scripts/vfx.py strike in.mp4 out.mp4 --text "משעמם" --swap "מרתק" --at 2.1 --strike-at 2.8 --swap-at 3.3
    python3 scripts/vfx.py echo in.mp4 out.mp4 --text "IN-APP BROWSER" --at 5 --dur 2.5
    python3 scripts/vfx.py spotlight in.mp4 out.mp4 --text "AI SLOP" --at 13 --dur 2.5
    python3 scripts/vfx.py freeze-mark in.mp4 out.mp4 --at 9.5 --hold 1.5 --label "תסתכלו כאן"
    python3 scripts/vfx.py pinned-comment in.mp4 out.mp4 --user someone --text "..." --at 17 --dur 4
    python3 scripts/vfx.py plan in.mp4 out.mp4 plan.json      # [{"fx":"strike","text":..,"at":..}, ...]
    
    Strikeのバリエーション(plan.jsonのみ):"front_first": true は最初の単語を顔の前面(話者の前に)、入れ替え単語を頭の背後に配置します(例:「מלפנים」→「מאחור」)。"overlap": 0.45 はより多くの部分を背後に隠します。 Echoのバリエーション(plan.json):"linger": true はアウトラインコピーを画面に残し(ゆっくりと呼吸するように)、エフェクト終了まで表示します。 オプション:--y(タイトルの高さを固定、フレームに対する割合。頭で文字が隠れる場合は上げてください)、--color、 freeze-mark の --x --y --r(他のものを丸で囲む場合)、--seg fast|quality、--crf。
  4. ショーケース(オプション):python3 scripts/compose.py fx.mp4 final.mp4 schedule.json
    {"intro": 2.4, "cta": 3.2,
     "cmds": [{"cmd": "strike", "send": 0.0, "desc": "言って、打ち消して、入れ替え", "sfx": [["swish", 0.9], ["pop", 1.5]]},
              {"cmd": "echo", "send": 2.75, "desc": "ビッグタイトル、エコーバースト", "sfx": [["boom", 2.8]]}],
     "cta_lines": ["このスキルが欲しい?", "5コマンドの?"], "cta_button": "「スキル」とコメント"}
    
    send = コマンドが送信されるクリップ秒数(各エフェクトの at はその約0.05秒後に設定)。最初のコマンドはイントロで入力されます。 効果音:key、send、whoosh、swish、pop、boom、shutter、power、ding、chime。
  5. 確認:エフェクトごとに2〜3フレームを取得(ffmpeg -ss T -i out.mp4 -frames:v 1 f.png)、それらを確認します(テキストが読める、顔が見える、ヘブライ語が右から左に表示されている、何も切れていない)。修正して再レンダリング。その後、エフェクトごとに1行で納品します。

関連スキル