mcpField
U
Unity Rapid Proto

Unity Rapid Proto

github.com/juliankerignard開発850 回インストール32 週間前に更新
リポジトリ

Unity Rapid Proto について

Unity Rapid Protoは、短いゲームプレイ案をプレイ可能なUnityプロトタイプにするスキルです。中核となる仕組みに絞り、最大3本のC#スクリプト、シーン設定手順、テストチェックリストを作成します。

主な機能

  1. 01案を中核となる仕組みに絞る
  2. 02最大3本のC#スクリプトを生成
  3. 03シーン設定手順を提示
  4. 04Play後のテストチェックリスト
  5. 056ジャンルのテンプレート

活用シーン

  1. 01Unityでゲームプレイの仕組みを試す
  2. 02簡易な2Dまたは3Dプロトタイプの作成
  3. 03生成されたスクリプトを使ったシーン設定
  4. 04Play後のプロトタイプ動作確認

インストール

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

$npx skills add https://github.com/juliankerignard/unity-skills --skill unity-rapid-proto

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

同梱ファイルreferences/proto-templates.md

詳細

Unity Rapid Proto

このスキルでできること

生のゲームプレイアイデアを、プレイ可能なUnityプロトタイプに変換します。GDDも、計画も、アーキテクチャも不要です。メカニクスをテストするために必要な最小限のコードを作成します。

生成するもの:

  • 1~3個のC#スクリプト(MonoBehaviourのみ)
  • シーンのセットアップ手順(ヒエラルキー、コンポーネント、値)
  • 動作を確認するための「Playを押す」チェックリスト

前提条件

  • 既存のUnityプロジェクト
  • Assets/Prototypes/ フォルダー(ない場合は作成します)
  • プロトタイプ化するコンセプトを1~2文で説明できること

判断ツリー

Type de prototype ?
|
+-- 3D gameplay ?
|   +-- Deplacement + exploration --> Template 3D Platformer
|   +-- Tir / combat --> Template FPS
|   +-- Placement strategique --> Template Tower Defense
|   +-- Course automatique --> Template Runner / Endless
|
+-- 2D gameplay ?
|   +-- Deplacement top-down --> Template Top-Down 2D
|   +-- Puzzle / grille --> Template Puzzle (grid-based)
|   +-- Platformer 2D --> Adapter Template 3D Platformer en 2D
|
+-- Pas sur ?
    +-- Commencer en 3D (plus visuel, plus facile a debloquer)

クイックスタート

  1. ユーザーがアイデアを1~2文で説明します
  2. 中心となるメカニクスを1つ特定します
  3. スクリプトを生成します(最大3個、各100行以内)
  4. シーンのセットアップ手順を記述します
  5. テスト用チェックリストを提示します

ステップごとのガイド

ステップ1:アイデアを理解する

ユーザーに、アイデアを最大1~2文で説明するよう依頼します。追加の詳細は尋ねないでください。デザイン文書は作成しないでください。

以下を抽出します:

  • 主な動詞(ジャンプ、撃つ、配置する、回避する、収集する)
  • 空間的な状況(2D/3D、カメラ視点)
  • 終了条件(スコア、タイマー、生存、パズルの解決)
ステップ2:中心となるメカニクスを特定する

プロトタイプ化するメカニクスを1つだけ選びます。アイデアに複数のメカニクスが含まれている場合は、主要なゲームプレイループを定義するものを選びます。

絞り込みの例:

  • 「敵のウェーブから基地を守るために塔を建てるゲーム」→ 中心となるメカニクス:タレットの配置+経路追従
  • 「魔法の能力とクラフト要素があるプラットフォーマー」→ 中心となるメカニクス:移動+ジャンプ(ほかの要素は後から追加します)
  • 「クラス制のマルチプレイヤーFPS」→ 中心となるメカニクス:移動+レイキャスト射撃
ステップ3:最小限のコードを生成する

基本構成:

  • PlayerController.cs:移動+主なアクション(最大80行)
  • 必要に応じてゲームプレイスクリプトを1~2個(各最大60行)

コードのルール:

- MonoBehaviour uniquement, pas de ScriptableObject
- Input.GetKey / Input.GetAxis (ancien systeme, plus simple)
- Valeurs hardcodees (pas de SerializeField sauf si vraiment utile)
- Visuels = primitives Unity (Cube, Sphere, Capsule, Plane)
- Pas de namespace, pas de pattern, pas d'event system
- Un seul fichier = une seule responsabilite evidente
- 1 commentaire par bloc non-evident, pas plus

Input System に関する注記(Unity 6以降):プロジェクトでNew Input System(Unity 6のデフォルト)を使用している場合は、Input.* の呼び出しを次のように置き換えてください:

  • Input.GetKey(KeyCode.Space) → Keyboard.current[Key.Space].isPressed
  • Input.GetKeyDown(KeyCode.Space) → Keyboard.current[Key.Space].wasPressedThisFrame
  • Input.GetAxis("Horizontal") → Gamepad.current.leftStick.x.ReadValue() またはInputAction
  • Input.GetMouseButton(0) → Mouse.current.leftButton.isPressed

素早くプロトタイプを作る場合は、従来のInput Managerのほうが簡単です。Edit > Project Settings > Player > Active Input Handling を確認してください。

ステップ4:セットアップ手順を記述する

次の順序を厳守して提示します:

  1. シーン:新しいシーンを作成するか、SampleSceneを使用します
  2. 作成するオブジェクト(名前、プリミティブ、位置、スケールを指定)
  3. 各オブジェクトに追加するコンポーネント
  4. 必要に応じて親子のヒエラルキー
  5. 必要なタグとレイヤー
  6. カメラのセットアップ(位置、回転)

形式:

## Setup Scene

1. Creer un objet **Player** : Capsule a position (0, 1, 0)
   - Ajouter `PlayerController.cs`
   - Ajouter Rigidbody (Use Gravity: true, Freeze Rotation X/Z)

2. Creer un objet **Ground** : Plane a position (0, 0, 0), scale (5, 1, 5)
   - Tag: "Ground"
ステップ5:「Playを押す」チェックリスト

Playを押したときに起こることを、正確に列挙します:

## Test checklist

- [ ] Le joueur se deplace avec WASD/fleches
- [ ] Le joueur saute avec Space et retombe
- [ ] Les ennemis apparaissent toutes les 3 secondes
- [ ] Le score augmente quand on touche un ennemi
- [ ] Game Over s'affiche quand la vie atteint 0

ジャンル別テンプレート

references/proto-templates.md に、設定済みのテンプレートが6種類あります:

ジャンルスクリプト主なオブジェクト
3DプラットフォーマーPlayerController + MovingPlatformCapsule + CharacterController、Planes、Cubes
FPSFPSController + EnemyHealth + SpawnerCapsule + 子カメラ、赤いCubes
見下ろし型2DPlayerMovement2D + Bullet + EnemyPatrol2Dスプライト、Rigidbody2D、正投影カメラ
パズル(グリッド)GridManager + Tile生成されたQuads、勝利を表示するUI Text
ランナー/エンドレスRunnerPlayer + ObstacleSpawner + ScoreManager自動前進するCapsule、3つのレーン
タワーディフェンスTurret + EnemyPath + TurretPlacerウェイポイント、OverlapSphere、InvokeRepeating

厳格なルール

必ず:

  • ビジュアルにはUnityのプリミティブ(Cube、Sphere、Capsule、Plane)を使用します
  • 勝利/敗北条件、またはフィードバックループを含めます
  • Input.GetKey / Input.GetAxis(旧Input System)を使用します
  • 値(速度、ライフ、ダメージ)はハードコードします
  • コードは Assets/Prototypes/<NomPrototype>/ に記述します
  • 各スクリプトを頭の中でテストします:コンパイルできるか?目に見える動作をするか?

絶対にしないこと:

  • プロトタイプあたり3つを超えるスクリプト
  • 1スクリプトあたり100行を超えるコード(PlayerControllerは80行まで)
  • アーキテクチャの導入:SO、イベント、マネージャー、シングルトンは使用しません
  • ドキュメントやREADMEの作成
  • コメントを大量に記述すること(わかりにくいブロックにつき1行まで)
  • ワークフロー上どうしても必要な場合を除き、SerializeFieldを使用すること
  • 名前空間、インターフェース、抽象クラス、ジェネリックを使用すること
  • 外部アセット、追加パッケージ、Asset Storeを使用すること

関連スキル

  • プロトタイプが動作し、本番環境へ移行したい場合は、/unity-code-gen(Unity Code Gen)を使用して適切なパターンで再構成します
  • プロトタイプにバグがある場合は、/unity-debug(Unity Debug)を使用します
  • プロトタイプ用のカスタムシェーダーが必要な場合は、/shader(Unity Shader Generator)を使用します
  • 2Dプロトタイプ(プラットフォーマー、トップダウン)の場合は、詳細なパターンについて/2d(Unity 2D)を使用します

トラブルシューティング

問題解決策
プレイヤーが動かないスクリプトが正しいGameObjectにアタッチされていることを確認します。CharacterControllerまたはRigidbodyが存在することを確認します。
プレイヤーが床をすり抜ける床にColliderがあることを確認します。プレイヤーにColliderとRigidbody(またはCharacterController)があることを確認します。
ジャンプが機能しないグラウンドチェックを確認します:レイキャストはVector3.downを向き、距離はプレイヤーの高さの半分よりわずかに大きくする必要があります。
衝突が検出されない2つのオブジェクトの少なくとも一方にRigidbodyがあることを確認します。OnTriggerEnterを使用する場合、Colliderの「Is Trigger」にチェックを入れる必要があります。
カメラが揺れるカメラのロジックをUpdateではなくLateUpdateに移動します。
敵が出現しないprefabが割り当てられていること、またはInstantiateが正しい参照を使用していることを確認します。InvokeRepeatingがStartで呼び出されていることを確認します。
スコアが表示されないTextまたはTextMeshProUGUIへの参照を確認します。CanvasにEventSystemがあることを確認します。
プロトタイプの動作が遅すぎるUpdate内のDebug.Logを削除します。大量のInstantiate/Destroyを行っていないことを確認します(必要に応じて基本的なプールに切り替えます)。

コメント