mcpField
B
build-game-monster-system

build-game-monster-system

github.com/mengto開発7.1k1.3k 回インストール3 日前に更新
リポジトリ

build-game-monster-system について

ゲーム開発者向けに、ゲームで動作するモンスターアセットの構築と監査を支援するスキルです。データ、リグ、ランタイム、ビューを分離し、再現可能な戦闘タイムラインと適合性検査を定めます。

主な機能

  1. 01モンスターの4層アーキテクチャ
  2. 02セマンティックリグと安定したソケット
  3. 03状態駆動の戦闘連携
  4. 04シリアライズ可能なテスト用ムーブセット
  5. 05決定的な適合性テストフィクスチャ
  6. 06パフォーマンスとLODの検査

活用シーン

  1. 01ゲーム向けモンスターの追加
  2. 02戦闘と衝突動作の監査
  3. 03攻撃タイミングと中断のテスト

インストール

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

$npx skills add https://github.com/mengto/skills --skill build-game-monster-system

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

同梱ファイルagents/openai.yamlreferences/monster-contract.md

詳細

ゲーム用モンスターシステムの構築

装飾用メッシュではなく、ゲームプレイに対応したランタイムアセットとしてモンスターを構築します。

契約を確立する

実装または監査の前に、references/monster-contract.md を読んでください。契約を拡張する前に、実際のゲームコンテンツモデル、戦闘イベント、敵のステートマシン、衝突 API、カメラとの距離、アセットローダーを確認してください。

該当する場合は、関連するスキルを使用してください。

  • 画像を使ったプロシージャルな再構築と、段階的なビジュアルゲートには img2threejs を使用します。
  • プロシージャル表現とインポート表現の選択、および来歴や予算の記録には build-hybrid-game-assets を使用します。
  • 知覚、意図、移動、行動遷移には tune-enemy-ai を使用します。
  • 始動・有効・硬直のタイミングと、権威ある接触判定には design-action-combat を使用します。

4 つのレイヤーを分離する

  1. MonsterDefinition:シリアライズ可能な作成済みデータ。タグ、スケール、ステータス、攻撃、移動、アセットの来歴、予算を含みます。
  2. MonsterRig:意味的なトランスフォーム階層、関節、ソケット、二次モーションのアンカー、マテリアル、LOD ビジュアル。
  3. MonsterRuntime:現在の状態、タイマー、ターゲットへの意図、体力/姿勢、クールダウン、権威ある戦闘イベント。
  4. MonsterViewAdapter:ランタイムの状態に基づいてリグのポーズ、VFX、オーディオ、可視性、LOD を制御します。描画されたポーズからヒットを判定してはいけません。

作成済みの戦闘値をリグや UI に重複して持たせないでください。

リグを構築する

  • 上方向を +Y、前方向を +Z、単位をメートルとし、接地するルートを使用します。
  • すべてのモンスターと LOD で、root -> motion -> body を一貫して維持します。
  • 肩/腰の動きが肘/膝を経由して手首/足首まで伝わるように、四肢の各セグメントを実際の関節チェーンとして親子付けします。
  • 人型以外のモンスターには、対応する意味的な名称を付けます。存在しない解剖学的構造をでっち上げてはいけません。
  • 攻撃の発生位置、VFX、オーディオ、ターゲティング、接地、アタッチメント、死亡エフェクト用のソケットを用意します。
  • デフォルトでは、ビジュアルメッシュを物理演算から分離します。単純なソリッド形状、ナビゲーション用形状、被ダメージ形状、攻撃形状、トリガー形状を個別に用意します。
  • LOD の切り替え時にも、ルート、関節、ソケット、衝突判定、アニメーション状態を維持します。

行動と戦闘を接続する

少なくとも idle、investigate、pursue、reposition、windup、attack、recover、stagger、defeated に対応します。各攻撃定義には、始動、有効、硬直、クールダウン、接触形状/ソケット、ダメージ/姿勢への影響、向きのルール、中断/キャンセルのポリシーを宣言する必要があります。

権威あるアクション ID と衝突イベントに基づいて接触判定を行います。アニメーションで正規化フェーズを示してもかまいませんが、それ自体がダメージを発生させてはいけません。

テスト可能なムーブセットを構成する

  • ムーブセットは、意図状態と攻撃 ID のシリアライズ可能なシーケンスとして作成します。攻撃タイミングは攻撃定義に保持し、ムーブセットではコピーせず参照します。
  • 攻撃ステップを、始動、有効、硬直の各フェーズに明示的にコンパイルします。
  • (movesetId, elapsed) から、状態、攻撃、正規化フェーズ、有効フラグ、中断可能性、安定したアクション ID を返す純粋なサンプラーを用意します。
  • ループのサイクルごとに新しいアクション ID を割り当てます。一方、攻撃の始動、有効、硬直の各フェーズでは同じ ID を維持します。
  • 各フェーズの中間点と境界を確認できるクエリ可能なフィクスチャ、またはシード付きフィクスチャを用意します。キャンペーンをプレイしなくても、レビュアーが状態を固定して再現できるようにしてください。

適合性を検証する

  • 必須状態、各攻撃フェーズ、中断/ひるみ、死亡、LOD 切り替え、リセットについて、決定論的なフィクスチャを追加します。
  • ムーブセットのタイムラインの連続性、アクティブウィンドウの厳密な境界、攻撃範囲の完全なカバー、アクションごとの ID の安定性、ループごとの ID の更新をテストします。
  • 関節の伝播、ソケットの安定性、コライダーのカバー範囲、単一接触の冪等性、破棄処理をテストします。
  • アプリ内ブラウザーで、実際の遭遇距離からモンスターをレンダリングします。
  • トライアングル数、ドローコール数、テクスチャ、フレーム時間、モバイルのピクセル比の挙動を測定します。
  • アタッチメントの浮き、必須状態の欠落、ポーズ由来のダメージ、LOD によるソケットのずれ、リソースコストの上限なしのいずれかがある場合、そのアセットを不合格とします。

モンスターが完全に適合しているか、例外を文書化したうえで適合しているか、または共有コントラクトに新しいアーキタイプ機能を追加する必要があるかを報告してください。

コメント