build-threejs-enemy-systems について
build-threejs-enemy-systems は、敵の定義、ランタイム状態、AI、戦闘、表現を分離して構築する Three.js 開発者向けスキルです。データ契約や検証・テスト手順を使い、敵の追加とデスクトップ・モバイルでの確認を支援します。
主な機能
- 01敵の定義とランタイム状態を分離
- 02モデルと表現の契約を標準化
- 03技とヒット効果をデータで定義
- 04参照関係と戦闘タイミングを検証
- 05決定論的テストとゲームプレイ確認
活用シーン
- 01ゲームに新しい敵タイプを追加
- 02正規化したキャラクターモデルを統合
- 03技のタイミングとヒット重複排除をテスト
- 04デスクトップとモバイルで遭遇戦を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mengto/ skills --skill build-threejs-enemy-systemsインストール後、Claude Code で/build-threejs-enemy-systemsを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Three.js の敵システムを構築する
各敵を、共有ランタイムシステムが利用する、持ち運び可能な作成済み定義として扱います。AI の選択、戦闘の解決、レンダリング、フィードバックは、同じ安定した契約を利用する別々のコンシューマーとして維持します。
コンテンツとランタイム状態を分離する
- 安定した ID、ロール/タグ、基本ステータス、プレゼンテーション仕様、技 ID、AI ヒント、フィードバックフック ID、報酬、バリアントデータは、変更不可の作成済み定義に含めます。
- インスタンス ID、トランスフォーム、体力/姿勢、ターゲット、現在の技とフェーズクロック、クールダウン、状態異常、経路探索、可視性、LOD 状態は、ランタイムインスタンスに含めます。
- 定義は ID で参照します。コンテンツ検証時に、ID の重複、参照先の欠落、無効な範囲、実現不可能なタイミングを拒否します。
- 作成済み定義を変更したり、コンテンツに実行中のタイマーを保存したり、AI、アニメーション、レンダリングの間で戦闘クロックを重複させたりしないでください。
プレゼンテーション契約を標準化する
モデルを統合する前に、次のフィールドを定義します。
- ソースまたはファクトリー ID、来歴、座標系、前方軸、単位あたりのメートル数。
- 地面との接点に置くルートピボット、標準化されたスケール、向きのオフセット、ビジュアル上の高さ。
- レンダリングジオメトリとは独立した、シンプルな移動用コライダーと名前付きヒットボックス。
- 接触の起点、武器、飛翔体、VFX、オーディオ、UI マーカー、ターゲティング用の安定したソケット。
- リグと、待機、移動、技、リアクション、死亡に対応するセマンティッククリップマップ。
- ヒステリシス、アニメーション/更新ポリシー、変更されないゲームプレイ用コライダーを備えた LOD 段階。
アセット境界で標準化します。ゲームプレイコードの各所にスケールの修正、ピボットのオフセット、生のクリップ名、補正用の回転を散在させないでください。
技をデータとして定義する
各技について、次の項目を定義します。
- 安定した ID、AI タグ、使用可能な距離/角度/視線条件、重み、状態の前提条件。
- 発動準備と予告、1 つ以上の有効時間帯、硬直、クールダウン、最短のコミット時間。
- 移動、向き、キャンセル、アーマー、中断、よろけ、フェーズのルール。
- 接触形状/ソケット、ダメージ、姿勢、ノックバック、状態異常、ターゲットごとのヒット上限。
- クリーンアップルールを伴う、セマンティックなアニメーション、VFX、オーディオのフック ID。
AI が選択できるのは合法な技 ID のみにし、タイミングと結果は戦闘システムが管理します。権威ある衝突/接触イベントを使い、安定したアクション識別子とターゲット識別子からダメージを解決します。各接触は一度だけ適用し、解決済みイベントからアニメーション、VFX、オーディオ、UI を駆動します。
誠実なフォールバックを用意する
製品版モデルが利用できない場合は、設置面積、高さ、ピボット、コライダー、ソケット、向き、技のタイミング、状態の判読性を維持する、意図的なプレースホルダーを使用します。フォールバックは一度だけログに記録し、見た目で明確に区別できる状態にします。適合しないアセットに黙って差し替えたり、プレースホルダーのビジュアルを製品版対応済みと呼んだりしないでください。
新しい敵を追加する
- 既存のアーキタイプと技で対応できますか? 新しい定義を設定し、ランタイムの分岐は追加しないでください。
- 新しい挙動が不可欠ですか? 新しいサブシステムを追加する前に、再利用可能な最小の技、フック、または AI タグを追加します。
- モデルの準備はできていますか? 共有プレゼンテーション契約に合わせて標準化します。準備ができていない場合は、誠実なフォールバックを使用します。
- コンテンツは完成していますか? 参照、タイミング、接触、クールダウン、硬直、中断、フィードバックフックを検証します。
- 検証の準備はできていますか? 決定論的なフィクスチャと自動テストを追加してから、デスクトップとモバイルでプレイテストを実施します。
システムを検証する
- スポーン、各移動フェーズ、射程/方向の誤り、障害物、割り込み、よろめき、死亡/リセット、モデルがない場合のフォールバック、LOD 遷移、複数のインスタンスで定義を共有するケースについて、決定論的なフィクスチャを作成します。
- コンテンツの一意性と参照、アクティブウィンドウの境界、クールダウン/回復、ターゲットごとのヒット重複排除、ライフサイクルのクリーンアップ、一時停止/フレームステップの動作をテストします。
- リポジトリで承認されているブラウザーで、代表的なエンカウントをプレイします。テレグラフ、接触、状態、アニメーション、VFX/音声、ターゲット可能性、報酬が一致していることを確認します。
- デスクトップとモバイルでのカメラ距離、タッチ操作、モーション低減、コンソールの健全性、フレーム時間、ドローコール、メモリーの安定性、混雑したシーンでの LOD の動作を検証します。ベースラインの失敗は分けて報告します。