mcpField
G
game-vfx

game-vfx

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

game-vfx について

game-vfxは、ゲームのビジュアルエフェクトを計画・レビューするスキルです。実装担当者向けに、ライフサイクル仕様、視認性、性能予算、フォールバックを扱います。

主な機能

  1. 01ゲームイベントに基づくエフェクト仕様
  2. 02ライフサイクルとレイヤーの計画
  3. 03機械検証可能なVFX仕様の検証
  4. 04性能予算とプロファイリングの確認
  5. 05モーション軽減と品質別フォールバック

活用シーン

  1. 01ゲームイベントを時間付きVFX計画に変換
  2. 02性能段階を含むエンジン引き継ぎ資料の作成
  3. 03高負荷または視認しにくいエフェクトの診断

インストール

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

$npx skills add https://github.com/akillness/jeo-skills --skill game-vfx

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

同梱ファイル

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

evals/
evals.json
references/
vfx-spec.example.json
upstream.md
effect-recipes.md
scripts/
validate_vfx_spec.py

詳細

ゲームVFX

このスキルを使用する場面

  • ゲームプレイのイベントを、レイヤー構成とタイミングを含むVFX仕様に落とし込みます。
  • 煙、霧、パーティクル、炎、稲妻、衝撃、軌跡、ブルームを実装します。
  • パーティクルの過剰、ぼかし、ドローコール、メモリ割り当て、オーバードロー、エフェクトの見づらさを診断します。
  • パフォーマンスの段階別設定と、動きを抑えた場合の挙動を含む、エンジン向けの引き継ぎ資料を作成します。

FFXIV/Dalamud のアセット編集には dalamud-vfx-editor を使用してください。レンダラー固有の GLSL/ポストプロセッシングの実装には Three.js の各スキルを、API が主な課題となる場合は Unity/Godot のエンジン固有スキルを使用してください。

手順

ステップ 1:エフェクトパケットを 1 つ作成する

以下を記録します。

  • ゲームプレイのイベントと伝達する目的。
  • エンジン/レンダーパイプライン、対象プラットフォーム、カメラ、目標 FPS。
  • ライフサイクルの各段階と全体の再生時間。
  • レイヤーの一覧、ブレンドモード、アタッチメント空間、深度順。
  • パーティクル、ドローコール、オーバードロー、テクスチャ、フレーム時間の各予算。
  • オーディオ/画面揺れとの連携ポイント。
  • 動きを抑えた場合や低品質設定時の代替処理。
  • 受け入れ確認用のキャプチャ:代表的なゲームプレイ動画とプロファイラーの証拠。

プレイヤーに何を理解してほしいのかを明確にできない場合は、パーティクルから始めないでください。

ステップ 2:目的に合う最小限のエフェクト群を選ぶ
  • 煙/霧/雲 — 制作済みの形状にはスプライト/フリップブックのエミッター、軽量な 2D オーバーレイにはノイズブロブ、正当な理由があるボリューメトリック表現に限ってレイマーチングを使用します。
  • 稲妻/電気 — ギザギザした稲妻には中点変位、制御されたアークにはカーブを使用し、再帰的な分岐は控えめにします。
  • パーティクル/炎/火花 — 生成、更新、衝突、再利用のルールを明示したプール済みエミッターを使用します。
  • ブルーム/グロー — しきい値処理 → 分離可能なぼかし → 加算合成の順で処理し、ぼかしの対象をダウンサンプリングします。
  • 呪文/アビリティ全体 — フェーズステートマシンとレイヤースタックを組み合わせ、視覚的な強さをゲームプレイのタイミングに合わせます。

実装の前に references/effect-recipes.md を読んでください。

ステップ 3:機械的に検証できる仕様を書く

references/vfx-spec.example.json を基に調整したうえで、次を実行します。

bash python3 .agent-skills/game-vfx/scripts/validate_vfx_spec.py path/to/vfx-spec.json

バリデーターは、フェーズとレイヤーの一意性、正のタイミング値、有効な予算、パーティクルとドローコールの合計、ぼかしの上限、動きを抑えた場合の対応状況を確認します。検証に合格しても、それは設計上の契約を確認したにすぎず、実行時のパフォーマンスを証明するものではありません。

ステップ 4:個別のエミッターではなく、ライフサイクルに沿って構築する

idle → charging → casting → impact → dissipating のように、フェーズを明示します。共有する正規化フェーズ時間と決定論的なイベントフックを使って、すべてのレイヤーを制御します。ゲームプレイ開始前に変更可能なインスタンスをプールし、フレームごとの割り当ては避けてください。テストやキャプチャで制御できるよう、ランダムシードを保持します。

ステップ 5:階層と見やすさを確保する

1 つのレイヤーを視覚上の主役とし、補助レイヤーはそれに従属させます。ゲームプレイ上のシルエット、予告表示、命中範囲、UI の見やすさを保ちます。パーティクルを増やす前に、コントラスト、動く方向、タイミング、スケールを活用してください。最も強い視覚的な山場を、ゲームプレイのイベントとオーディオのトランジェントに同期させます。

ステップ 6:プラットフォームの予算を適用する

プロジェクトで計測した値を基準にしてください。調査した Apple 対応の上流リファレンスに基づく、保守的な初期値は次のとおりです。

  • 合計フレーム時間 16.67 ms 以内で 60 FPS を目標にします。
  • 実用上可能であれば、VFX オーバーレイのドローコールを 10 未満に抑えます。
  • CPU で更新するパーティクルがおよそ 500 を超える場合は、GPU/コンピュートによる方法のプロファイリングを検討します。
  • モバイルのアクティブパーティクル数は、明示した段階別の上限以内に抑えます(上流リファレンスでは 500~2,000 を推奨しています)。
  • 大きなぼかし/ブルームのパスはダウンサンプリングします。
  • 計測せずに、モバイルでおよそ 20 ポイントを超えるぼかし半径を使用しないでください。
  • リアルタイム向けの初期設定として、レイマーチングのサンプル数は 4~8 とします。ただし、普遍的な規則ではありません。

これらは、サポート対象のうち最も古い環境で検証する仮説であり、エンジンに依存しない保証値ではありません。

ステップ 7:動作とパフォーマンスを検証する

以下を記録します。

  • フレーム時間、GPU 時間、パーティクルのピーク数、ドローコール数、オーバードロー、アロケーション数
  • カメラ移動中およびエフェクトが重なる場面での視認性
  • ヒット/衝撃イベントとのタイミング
  • 低品質設定およびモーション低減時のフォールバック
  • キャンセル、シーンのアンロード、一時停止、トリガーの繰り返し後のクリーンアップ
  • 対象ハードウェアでの変更前後のキャプチャ

静的な仕様やデスクトップシミュレーターだけを根拠に、60 FPS を達成すると主張しないでください。

例

ファイアボールの引き継ぎを検証する

bash cp .agent-skills/game-vfx/references/vfx-spec.example.json ./fireball-vfx.json python3 .agent-skills/game-vfx/scripts/validate_vfx_spec.py ./fireball-vfx.json

FFXIV AVFX リクエストを振り分ける

dalamud-vfx-editor を使用します。このスキルでは階層、タイミング、パフォーマンスのレビューも行えますが、ファイル形式のワークフローは対象外です。

ベストプラクティス

  1. 見た目の派手さよりも、プレイヤーへの情報伝達を優先して設計します。
  2. 共通のライフサイクルを使用し、イベントのタイミングを決定論的にします。
  3. リソースをプールし、対象ハードウェアでプロファイリングします。
  4. 負荷の高いスクリーンスペースエフェクトはダウンサンプリングします。
  5. エフェクトには、モーション低減時および品質段階別のフォールバックを用意します。
  6. 数値による指針は初期予算として扱い、実測データに基づいて置き換えられるものとします。

参考資料

  • references/effect-recipes.md — エンジンに依存しないレシピとコンポジションのルール。
  • references/vfx-spec.example.json — バリデーターに対応した引き継ぎ例。
  • references/upstream.md — 出典と適用範囲。
  • lev-os/agents

コメント