mcpField
A
axiom-ios-games

axiom-ios-games

github.com/charleswiltgen開発1.2k155 回インストール今日更新
リポジトリ

axiom-ios-games について

axiom-ios-gamesは、iOSゲームやインタラクティブな3D体験を開発・保守する人向けのルーティングスキルです。SpriteKit、SceneKit、RealityKitの課題に応じて、ガイド、リファレンス、診断、SpriteKitの自動監査へ案内します。

主な機能

  1. 01SpriteKit、SceneKit、RealityKitのタスク振り分け
  2. 02設計・API・診断ガイドの選択
  3. 03SceneKitからRealityKitへの移行案内
  4. 04SpriteKitコード自動スキャンへの案内

活用シーン

  1. 01新しい2Dゲームのスキル選定
  2. 02SpriteKitの物理や性能問題の調査
  3. 03SceneKitプロジェクトの保守や移行
  4. 04RealityKitでの3D・AR体験の構築

インストール

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

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-ios-games

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

詳細

iOS ゲームルーター

ゲーム開発、SpriteKit、SceneKit、RealityKit、またはインタラクティブシミュレーションに関する作業では、必ずこのスキルを使用してください。

使用するタイミング

次の場合に、このルーターを使用します。

  • 新しい SpriteKit ゲームまたはプロトタイプ(2D)を構築する
  • SceneKit または RealityKit で 3D ゲームを構築する
  • 物理演算(衝突、接触、力、ジョイント)を実装する
  • ゲームアーキテクチャ(シーン、レイヤー、カメラ、ECS)を設定する
  • SpriteKit、SceneKit、または RealityKit の問題をデバッグする
  • ゲームのパフォーマンス(ドローコール、ノード数、エンティティ数、バッチ処理)を最適化する
  • ゲームループ、デルタタイム、または一時停止処理を管理する
  • ゲームでのタッチ/入力処理を実装する
  • SpriteKit または RealityKit を SwiftUI と統合する
  • パーティクルエフェクト、テクスチャアトラス、または 3D モデルを扱う
  • SpriteKit、SceneKit、または RealityKit の API の詳細を調べる
  • SceneKit から RealityKit に移行する
  • RealityKit で AR ゲームを構築する

ルーティングロジック

SpriteKit(2D)

アーキテクチャ、パターン、ベストプラクティス → /skill axiom-spritekit

  • シーングラフモデル、座標系、アンカーポイント
  • 物理エンジン:ビットマスクの管理、接触検出、ボディタイプ
  • アクションシステム:シーケンス、グループ化、名前付きアクション、タイミング
  • 入力処理:タッチ、座標変換
  • パフォーマンス:ドローコール、バッチ処理、オブジェクトプール、SKShapeNode の落とし穴
  • ゲームループ:フレームサイクル、デルタタイム、一時停止処理
  • シーン遷移とデータ受け渡し
  • SwiftUI との統合(SpriteView、UIViewRepresentable)
  • Metal との統合(SKRenderer)
  • アンチパターンとコードレビューのチェックリスト
  • 押し返し用テンプレートを使ったプレッシャーシナリオ

API リファレンスと検索 → /skill axiom-spritekit-ref

  • 全 16 種類のノードタイプとプロパティ、パフォーマンスに関する注意事項
  • SKPhysicsBody の作成メソッドとプロパティ
  • SKAction の完全なカタログ(移動、回転、拡大縮小、フェード、合成、物理演算)
  • テクスチャとアトラスの管理
  • SKConstraint の種類と SKRange
  • SKView の設定とスケールモード
  • SKEmitterNode のプロパティとプリセット
  • SKRenderer のセットアップと SKShader の構文

トラブルシューティングと診断 → /skill axiom-spritekit-diag

  • 物理接触が発生しない(6 分岐の判断ツリー)
  • オブジェクトが壁をすり抜ける(5 分岐)
  • フレームレートが低い(主要な分岐 4 つ、末端 12 個)
  • タッチが認識されない(6 分岐)
  • メモリの急増とクラッシュ(5 分岐)
  • 座標の混乱(5 分岐)
  • シーン遷移時のクラッシュ(5 分岐)

自動スキャン → spritekit-auditor エージェントを起動するか、/axiom:audit spritekit を実行します(物理ビットマスク、ドローコールの無駄、ノードの蓄積、アクションによるメモリリーク、座標の混乱、タッチ処理、オブジェクトプールの欠如、デバッグオーバーレイの欠如を検査)

SceneKit(3D — 非推奨)

SceneKit は iOS 26 で事実上非推奨になりました。 既存コードの保守に限って使用してください。新しい 3D プロジェクトでは RealityKit を使用してください。

保守と移行計画 → /skill axiom-scenekit

  • シーングラフのアーキテクチャ、座標系、変換
  • レンダリング:SCNView、SceneView(非推奨)、SCNViewRepresentable
  • ジオメトリ、PBR マテリアル、シェーダーモディファイア
  • ライティング、アニメーション(SCNAction、SCNTransaction、CAAnimation ブリッジ)
  • 物理演算:ボディ、衝突カテゴリ、接触デリゲート
  • アセットパイプライン:Model I/O、USD/DAE/SCN 形式
  • ARKit との統合(レガシーな ARSCNView)
  • 移行の判断ツリー(移行する場合と保守する場合)
  • アンチパターンとプレッシャーシナリオ

API リファレンスと移行マッピング → /skill axiom-scenekit-ref

  • SceneKit → RealityKit の概念対応表
  • シーングラフ API:SCNScene、SCNNode、SCNGeometry
  • マテリアル:ライティングモデル、PBR プロパティ、シェーダーモディファイア
  • ライティング:全種類のライトとプロパティ
  • カメラ:SCNCamera のプロパティ
  • 物理演算:ボディタイプ、形状、ジョイント
  • アニメーション:SCNAction カタログ、タイミング関数
  • 制約:全種類の制約
RealityKit(3D — モダン)

ゲーム以外の3Dコンテンツ表示(製品ビューアー、AR試着、空間コンピューティング)では、ios-graphicsルーターもこれらのRealityKitスキルに振り分けます。

アーキテクチャ、ECS、ベストプラクティス → /skill axiom-realitykit

  • Entity-Component-Systemのメンタルモデルとパラダイムシフト
  • Entity階層、トランスフォーム、ワールド空間クエリ
  • 組み込みコンポーネントとカスタムコンポーネント、コンポーネントのライフサイクル
  • Systemプロトコル、更新順序、イベント処理
  • SwiftUIとの統合:RealityView、Model3D、アタッチメント
  • iOSでのAR:AnchorEntityの種類、SpatialTrackingSession
  • インタラクション:ManipulationComponent、ジェスチャー、ヒットテスト
  • マテリアル:SimpleMaterial、PBR、Unlit、Occlusion、ShaderGraph、Custom
  • 物理演算:衝突形状、グループ/フィルター、イベント、力
  • アニメーション:トランスフォーム、USD再生、再生制御
  • オーディオ:空間オーディオ、環境音、チャンネル
  • パフォーマンス:インスタンシング、コンポーネントの頻繁な生成・破棄、形状の最適化
  • マルチプレイヤー:同期、所有権
  • アンチパターンとコードレビューのチェックリスト
  • 高負荷シナリオ

APIリファレンスと検索 → /skill axiom-realitykit-ref

  • Entity API:プロパティ、階層、サブクラス
  • すべてのプロパティを含むコンポーネントの完全なカタログ
  • MeshResourceジェネレーター
  • ShapeResourceの種類とパフォーマンス
  • SystemプロトコルとEntityQuery
  • Sceneイベントのカタログ
  • RealityView API:イニシャライザー、コンテンツ、ジェスチャー
  • Model3D API
  • マテリアルシステム:すべての種類と完全なプロパティ一覧
  • アニメーションのタイミング関数と再生制御
  • オーディオコンポーネントと再生
  • RealityRenderer(Metal統合)

トラブルシューティングと診断 → /skill axiom-realitykit-diag

  • Entityが表示されない(8分岐の判断ツリー)
  • Anchorがトラッキングされない(6分岐)
  • ジェスチャーに反応しない(6分岐)
  • パフォーマンスの問題(7分岐)
  • マテリアルの見た目がおかしい(6分岐)
  • 物理演算が機能しない(6分岐)
  • マルチプレイヤーの同期の問題(5分岐)

判断ツリー

  1. 2D SpriteKitゲームを構築/設計していますか? → axiom-spritekit
  2. 特定のSpriteKit APIの使い方を知りたいですか? → axiom-spritekit-ref
  3. SpriteKitが壊れている、またはパフォーマンスが悪いですか? → axiom-spritekit-diag
  4. 既存のSceneKitコードを保守していますか? → axiom-scenekit
  5. SceneKit APIリファレンスまたは移行マッピングが必要ですか? → axiom-scenekit-ref
  6. 新しい3Dゲームまたはエクスペリエンスを構築していますか? → axiom-realitykit
  7. 特定のRealityKit APIの使い方を知りたいですか? → axiom-realitykit-ref
  8. RealityKitのEntityが表示されない、ジェスチャーが機能しない、またはパフォーマンスに問題がありますか? → axiom-realitykit-diag
  9. SceneKitからRealityKitに移行していますか? → axiom-scenekit(移行ツリー)+ axiom-scenekit-ref(マッピング表)
  10. ARゲームを構築していますか? → axiom-realitykit
  11. 物理演算の接触が機能しませんか(SpriteKit)? → axiom-spritekit-diag(症状1)
  12. フレームレートが低下していますか(SpriteKit)? → axiom-spritekit-diag(症状3)
  13. 座標/位置が分かりにくいですか(SpriteKit)? → axiom-spritekit-diag(症状6)
  14. アクションの完全な一覧が必要ですか? → axiom-spritekit-ref(パート3)
  15. 物理ボディの設定リファレンスが必要ですか? → axiom-spritekit-ref(パート2)
  16. Entityが表示されませんか(RealityKit)? → axiom-realitykit-diag(症状1)
  17. ジェスチャーに反応しませんか(RealityKit)? → axiom-realitykit-diag(症状3)
  18. SpriteKitコードを自動スキャンしたいですか? → spritekit-auditor(エージェント)

合理化への反論

考え実際
"SpriteKit はシンプルだから、スキルは必要ない"物理ビットマスクのデフォルト値は 0xFFFFFFFF で、誤検出の衝突を引き起こします。ビットマスクのチェックリストを使えば、2 分で見つけられます。
"SKShapeNode を使えばいい。手っ取り早い"SKShapeNode ごとに個別の描画呼び出しが発生します。50 個なら描画呼び出しも 50 回です。axiom-spritekit には、テクスチャに事前レンダリングするパターンがあります。
"座標系は自分で把握できる"SpriteKit の原点は左下(UIKit とは逆)です。さらにアンカーポイントも加わります。axiom-spritekit-diag の症状 6 で、5 分で解決できます。
"物理演算は単純だ"3 種類のビットマスクプロパティ、コールバック内での変更ルール、トンネリングのエッジケースがあります。axiom-spritekit のセクション 3 ですべての注意点を解説しています。
"自分のデバイスでは問題なく動く"パフォーマンスはデバイスによって大きく異なります。axiom-spritekit のセクション 6 に、デバッグオーバーレイのチェックリストがあります。
"新しいプロジェクトには SceneKit で問題ない"SceneKit は iOS 26 で非推奨扱いとなっています。新機能は追加されず、セキュリティパッチのみが提供されます。axiom-scenekit には移行の判断ツリーがあります。
"RealityKit はあとで学べばいい"SceneKit のコードはすべて移行時の負債になります。axiom-scenekit-ref には概念の対応表があるため、移行を抽象論ではなく具体的に把握できます。
"シンプルな 3D アプリに ECS は大げさだ"すでに ECS を使っています。Entity と ModelComponent です。axiom-realitykit では、シンプルな構成から複雑な構成へ拡張する方法を解説しています。
"タップにコリジョンシェイプは必要ない"RealityKit のジェスチャには CollisionComponent が必要です。axiom-realitykit-diag を使えば、30 分かけて推測する代わりに 2 分で診断できます。
"ゲームの更新には Timer を使えばいい"Timer ベースの更新ではフレームを逃し、レンダリングとも同期されません。axiom-realitykit には System パターンがあります。

重要なパターン

axiom-spritekit:

  • 明示的なビットマスクを使った PhysicsCategory 構造体(デフォルトの 0xFFFFFFFF は誤検出の衝突を引き起こします)
  • ビューポートと HUD を分離するカメラノードパターン
  • SKShapeNode をテクスチャに事前レンダリングする変換
  • すべての SKAction.run クロージャで [weak self] を使用
  • スパイラル・オブ・デスをクランプするデルタタイム

axiom-spritekit-ref:

  • ノードタイプの完全な一覧表(バッチ処理時の動作を含む 16 種類)
  • 物理ボディの作成方法(円が最も低コスト、テクスチャが最も高コスト)
  • 合成パターンを含むアクションの完全な一覧
  • SKView のデバッグオーバーレイとスケールモードの一覧表

axiom-spritekit-diag:

  • 5 ステップのビットマスクチェックリスト(推測に 30~120 分かける代わりに 2 分)
  • 最初の診断手順として必須のデバッグオーバーレイ
  • トンネリング防止のフローチャート
  • showsNodeCount の推移によるメモリ増加の診断

axiom-scenekit:

  • 移行の判断ツリー(新規プロジェクト → RealityKit、既存プロジェクト → 維持または移行)
  • 移行前の USDZ アセット変換(xcrun scntool)
  • SceneView の非推奨化と SCNViewRepresentable による置き換え
  • 「とりあえず SceneKit を使う」という合理化への反証となるシナリオ

axiom-scenekit-ref:

  • SceneKit から RealityKit への概念対応表
  • すべてのマテリアルのライティングモデルとプロパティ
  • 制約の完全な一覧

axiom-realitykit:

  • ECS への考え方の切り替えをまとめた表(シーングラフの考え方 → ECS の考え方)
  • カスタムコンポーネントの登録(registerComponent())
  • コンポーネント更新の読み取り・変更・書き込みパターン
  • すべてのインタラクションで必須となる CollisionComponent
  • タイマーの代わりにシステムベースで更新

axiom-realitykit-ref:

  • すべてのプロパティを含むコンポーネントの完全な一覧
  • MeshResource のジェネレーターと ShapeResource の種類
  • シーンイベントの一覧
  • すべての PBR プロパティを含むマテリアルシステム

axiom-realitykit-diag:

  • エンティティの可視性チェックリスト(8 つの分岐、推測に 30~60 分かける代わりに 2~5 分)
  • ジェスチャのデバッグ(まず CollisionComponent を確認)
  • パフォーマンス診断(エンティティ数、リソース共有、コンポーネントの頻繁な変更)
  • 物理演算の制約:エンティティは同じアンカーを共有する必要があります

呼び出し例

ユーザー:「SpriteKit のゲームを作っています」 → 呼び出し:/skill axiom-spritekit

ユーザー:「物理接触が発生しません」 → 呼び出し:/skill axiom-spritekit-diag

ユーザー:「テクスチャから物理ボディを作成するにはどうすればよいですか?」 → 呼び出し:/skill axiom-spritekit-ref

ユーザー:「ゲームのフレームレートが低下しています」 → 呼び出し:/skill axiom-spritekit-diag

ユーザー:「SpriteKit を SwiftUI で設定するにはどうすればよいですか?」 → 呼び出し:/skill axiom-spritekit

ユーザー:「どのようなアクションタイプを使用できますか?」 → 呼び出し:/skill axiom-spritekit-ref

ユーザー:「オブジェクトが壁をすり抜けます」 → 呼び出し:/skill axiom-spritekit-diag

ユーザー:「3D ゲームを作りたいです」 → 呼び出し:/skill axiom-realitykit

ユーザー:「SwiftUI アプリに 3D モデルを追加するにはどうすればよいですか?」 → 呼び出し:/skill axiom-realitykit

ユーザー:「RealityKit のエンティティが表示されません」 → 呼び出し:/skill axiom-realitykit-diag

ユーザー:「RealityKit で物理演算を設定するにはどうすればよいですか?」 → 呼び出し:/skill axiom-realitykit-ref

ユーザー:「SceneKit から RealityKit に移行しています」 → 呼び出し:/skill axiom-scenekit + /skill axiom-scenekit-ref

ユーザー:「SCNNode に相当する RealityKit の機能は何ですか?」 → 呼び出し:/skill axiom-scenekit-ref

ユーザー:「新しい 3D プロジェクトに SceneKit を使うべきですか?」 → 呼び出し:/skill axiom-scenekit

ユーザー:「RealityKit のエンティティでタップジェスチャが機能しません」 → 呼び出し:/skill axiom-realitykit-diag

ユーザー:「RealityKit で ECS を設定するにはどうすればよいですか?」 → 呼び出し:/skill axiom-realitykit

ユーザー:「AR コンテンツがトラッキングされません」 → 呼び出し:/skill axiom-realitykit-diag

ユーザー:「RealityKit ではどのようなマテリアルを使用できますか?」 → 呼び出し:/skill axiom-realitykit-ref

ユーザー:「RealityKit でエンティティをアニメーションさせるにはどうすればよいですか?」 → 呼び出し:/skill axiom-realitykit-ref

ユーザー:「ゲームプレイ中にメモリ使用量が増え続けます」 → 呼び出し:/skill axiom-spritekit-diag

ユーザー:「炎にはどのようなパーティクルエミッター設定を使うべきですか?」 → 呼び出し:/skill axiom-spritekit-ref

ユーザー:「SpriteKit のコードをスキャンして、よくある問題がないか確認してもらえますか?」 → 呼び出し:spritekit-auditor エージェント

コメント