===================================== Synaptic AI Pro - Game Templates 改善計画 ===================================== 作成日: 2026-01-09 対象バージョン: v1.2.0 (予定) ===================================== 現状分析 ===================================== ## 対応ジャンル (6種類) 1. FPS (First Person Shooter) 2. Platformer (2Dプラットフォーマー) 3. RPG (ロールプレイング) 4. Puzzle (パズル) 5. Racing (レーシング) 6. Strategy (ストラテジー/RTS) ## 共通の問題点 - スクリプトが付いていない(見た目だけ) - 旧Input Manager前提 - New Input System未対応 - Cinemachine未使用 - 実際にプレイできない ===================================== 1. FPS Template 改善計画 ===================================== ## 現状 ✅ Player + CharacterController (height=1.8m) ✅ CameraRig (eye height 1.6m, FOV 70) ✅ WeaponHolder + Rifle placeholder + MuzzlePoint ✅ Level (Ground, Walls, Cover objects) ✅ SpawnSystem (Player/Enemy spawns) ✅ Pickups (Health, Ammo, Armor) ✅ Lighting ## 追加すべき機能 ### 必須 (Phase 1) - [ ] FPSController.cs スクリプト - WASD移動 - マウスルック - ジャンプ (Space) - Sprint (Left Shift) + スタミナ - Crouch (Ctrl) + 高さ変更 ### 推奨 (Phase 2) - [ ] New Input System対応 - PlayerInputActions アセット生成 - Move, Look, Jump, Sprint, Crouch, Fire, Reload, Aim アクション - [ ] Cinemachine POV Camera - [ ] Head Bob (歩行時の揺れ) - [ ] Weapon Sway (視点移動時の武器揺れ) - [ ] ADS (Aim Down Sights) - 右クリックでFOV変更 - [ ] Footstep Audio (足音) ### 拡張 (Phase 3) - [ ] 射撃システム (Raycast) - [ ] 弾薬管理 - [ ] リロード - [ ] ダメージシステム - [ ] 敵AI (NavMesh + GOAP連携) ### 参考値 (業界標準) ```csharp // FPS Controller 推奨設定 walkSpeed = 5f; sprintSpeed = 8f; crouchSpeed = 2.5f; jumpForce = 7f; gravity = -20f; mouseSensitivity = 2f; staminaMax = 100f; staminaDrain = 20f; // per second while sprinting staminaRegen = 15f; // per second while not sprinting ``` ### 参考ソース - NeoFPS: https://neofps.com/ - VionixStudio FPS Tutorial: https://vionixstudio.com/2022/10/17/unity-fps-controller-using-new-input-system/ ===================================== 2. Platformer Template 改善計画 ===================================== ## 現状 ✅ Player + Rigidbody2D + BoxCollider2D ✅ Orthographic Camera ✅ Progressive difficulty platforms (easy → medium → hard) ✅ Moving platform placeholder ✅ Hazards (Spikes, DeathZone) ✅ Collectibles ## 追加すべき機能 ### 必須 (Phase 1) - [ ] PlatformerController2D.cs スクリプト - 左右移動 (A/D or Arrow keys) - ジャンプ (Space) - Variable Jump Height (押す長さで高さ変化) ### 推奨 (Phase 2) - "Game Feel" 向上 - [ ] Coyote Time (着地猶予) = 0.15秒 - 崖から落ちた直後でもジャンプ可能 - プレイヤーのミスを許容 - [ ] Jump Buffering (ジャンプ先行入力) = 0.2秒 - 着地前にジャンプ入力を受け付け - [ ] Fall Multiplier = 2.5f - 落下時に重力を増加させてキビキビ感を出す - [ ] Low Jump Multiplier = 2f - ジャンプボタンを離すと早く落下 ### 拡張 (Phase 3) - [ ] Double Jump (2段ジャンプ) - [ ] Wall Slide (壁滑り) - [ ] Wall Jump (壁ジャンプ) - [ ] Dash (ダッシュ) - [ ] Ledge Grab (崖つかまり) ### 参考値 (Celeste/Super Meat Boy レベル) ```csharp // Platformer Controller 推奨設定 moveSpeed = 8f; jumpForce = 14f; coyoteTime = 0.15f; jumpBufferTime = 0.2f; fallMultiplier = 2.5f; lowJumpMultiplier = 2f; wallSlideSpeed = 2f; wallJumpForce = new Vector2(12f, 14f); dashSpeed = 20f; dashDuration = 0.2f; ``` ### 参考ソース - 2D-Platformer-Hunter: https://github.com/ta-david-yu/2D-Platformer-Hunter - DevSourceHub: https://devsourcehub.com/mastering-2d-platformer-mechanics-in-unity/ ===================================== 3. RPG Template 改善計画 ===================================== ## 現状 ✅ Player + CharacterController (Humanoid placeholder) ✅ Isometric Camera Rig (45°/45°) ✅ World Terrain ✅ Town (Inn, Blacksmith, MagicShop, GeneralStore, TownHall) ✅ Fountain ✅ NPCs placeholder ✅ Forest/Dungeon areas ## 追加すべき機能 ### 必須 (Phase 1) - [ ] RPGPlayerController.cs - Click to Move (マウスクリックで移動) - NavMeshAgent使用 - WASD移動オプション ### 推奨 (Phase 2) - [ ] NavMesh自動ベイク - [ ] Cinemachine Follow Camera - [ ] カメラ回転 (Q/E or Middle Mouse) - [ ] カメラズーム (Scroll Wheel) ### 拡張 (Phase 3) - RPG Systems - [ ] Inventory System (基本) - アイテムスロット - ドラッグ&ドロップ - [ ] Dialogue System (基本) - NPC会話 - 選択肢 - [ ] Quest System (基本) - クエスト受注/完了 - [ ] Stats System - HP, MP, STR, DEF, etc. ### 参考実装 ```csharp // Click to Move void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) { navMeshAgent.SetDestination(hit.point); } } } ``` ### 参考ソース - GameDev Academy NavMesh: https://gamedevacademy.org/learn-unitys-navmesh-by-creating-a-click-to-move-game/ - ORK Framework概念: https://www.tldevtech.com/best-unity-game-templates/ ===================================== 4. Puzzle Template 改善計画 ===================================== ## 現状 ✅ Top-down Orthographic Camera ✅ 8x8 Grid Game Board ✅ Checkerboard pattern tiles ✅ Puzzle pieces placeholder ## 追加すべき機能 ### 必須 (Phase 1) - [ ] PuzzleManager.cs - グリッド管理 - ピース配置 - [ ] PuzzlePiece.cs - ドラッグ&ドロップ ### 推奨 (Phase 2) - Match-3 System - [ ] Match Detection (3つ以上の一致検出) - [ ] Piece Swap (隣接ピースの入れ替え) - [ ] Cascade/Gravity (消えた後の落下) - [ ] New Piece Spawn (上から新しいピース) ### 拡張 (Phase 3) - [ ] Score System - [ ] Combo System - [ ] Special Pieces (4連、5連で特殊ピース) - [ ] Level System - [ ] Time/Move Limit ### 参考実装 (Match-3 基本ロジック) ```csharp // Grid-based approach public class PuzzleGrid { private PuzzlePiece[,] grid; public List CheckMatches() { var matches = new List(); // Horizontal check for (int y = 0; y < height; y++) { for (int x = 0; x < width - 2; x++) { if (grid[x,y].type == grid[x+1,y].type && grid[x,y].type == grid[x+2,y].type) { matches.Add(grid[x,y]); matches.Add(grid[x+1,y]); matches.Add(grid[x+2,y]); } } } // Vertical check (similar) return matches; } } ``` ### 参考ソース - Catlike Coding Match-3: https://catlikecoding.com/unity/tutorials/prototypes/match-3/ - Kodeco Tutorial: https://www.kodeco.com/673-how-to-make-a-match-3-game-in-unity ===================================== 5. Racing Template 改善計画 ===================================== ## 現状 ✅ Player Car (Body, Roof, Wheels) ✅ Rigidbody (mass=1500, drag/angularDrag設定) ✅ Chase Camera ✅ Oval Race Track ✅ Start/Finish Line ✅ Barriers ✅ AI Cars placeholder ## 追加すべき機能 ### 必須 (Phase 1) - [ ] CarController.cs (基本) - アクセル (W/Up) - ブレーキ (S/Down) - ステアリング (A/D or Left/Right) ### 推奨 (Phase 2) - Physics改善 - [ ] WheelCollider使用 - motorTorque - brakeTorque - steerAngle - [ ] Suspension設定 - [ ] Center of Mass調整 (低め) - [ ] Anti-flip (Down Force) ### 拡張 (Phase 3) - [ ] Lap Counter - [ ] Checkpoint System - [ ] Ghost Recording/Replay - [ ] AI Opponents (Waypoint follow) - [ ] Drift Physics - [ ] Nitro/Boost ### 参考値 (Arcade Racing) ```csharp // WheelCollider 推奨設定 mass = 1500f; centerOfMass = new Vector3(0, -0.5f, 0); motorTorque = 800f; brakeTorque = 2000f; maxSteerAngle = 30f; downForce = 100f; // Speed-dependent // Suspension suspensionDistance = 0.3f; spring = 35000f; damper = 4500f; targetPosition = 0.5f; ``` ### 参考ソース - Unity WheelCollider Docs: https://docs.unity3d.com/Manual/WheelColliderTutorial.html - Arcade Car Physics: https://github.com/Saarg/Arcade_Car_Physics - Unity Forum Discussion: https://discussions.unity.com/t/the-dark-art-of-unity-wheel-colliders-what-unity-doesnt-tell-you/840741 ===================================== 6. Strategy Template 改善計画 ===================================== ## 現状 ✅ RTS Camera (60° angle) ✅ Hex Grid (Perlin noise terrain) ✅ Terrain Types (Water, Plains, Forest, Mountain) ✅ Terrain Features (Trees, Rocks) ✅ Units placeholder ✅ Buildings placeholder ✅ Resources placeholder ## 追加すべき機能 ### 必須 (Phase 1) - [ ] RTSCameraController.cs - WASD/Arrow移動 - Edge scroll (画面端でスクロール) - Zoom (Scroll Wheel) - Pan (Middle Mouse Drag) ### 推奨 (Phase 2) - Selection System - [ ] Click to Select (単体選択) - [ ] Box Selection (範囲選択) - マウスドラッグで矩形 - 矩形内のユニットを選択 - [ ] Double Click (同種ユニット選択) - [ ] Ctrl+Click (追加選択) - [ ] Group Assignment (Ctrl+1~9) - [ ] Group Recall (1~9) ### 拡張 (Phase 3) - [ ] Move Command (Right Click) - [ ] Attack Command - [ ] Formation System - [ ] Fog of War - [ ] Minimap - [ ] Building Placement - [ ] Resource Gathering ### 参考実装 (Box Selection) ```csharp // Box Selection Vector2 startPos, endPos; bool isSelecting; void Update() { if (Input.GetMouseButtonDown(0)) { startPos = Input.mousePosition; isSelecting = true; } if (Input.GetMouseButtonUp(0) && isSelecting) { endPos = Input.mousePosition; SelectUnitsInBox(startPos, endPos); isSelecting = false; } } void SelectUnitsInBox(Vector2 start, Vector2 end) { Rect selectionRect = new Rect( Mathf.Min(start.x, end.x), Mathf.Min(start.y, end.y), Mathf.Abs(start.x - end.x), Mathf.Abs(start.y - end.y) ); foreach (var unit in allUnits) { Vector2 screenPos = Camera.main.WorldToScreenPoint(unit.transform.position); if (selectionRect.Contains(screenPos)) { unit.Select(); } } } ``` ### 参考ソース - RTS Engine: https://unityassetcollection.com/rts-engine-free-download/ - Unity-RTS-Camera: https://github.com/PanMig/Unity-RTS-Camera - GameDev Academy RTS Selection: https://gamedevacademy.org/rts-unity-tutorial/ ===================================== オプション追加: バリアント機能 ===================================== ## 提案: テンプレートバリアント unity_create_game_template({ genre: "FPS", variant: "tactical", // basic | modern | tactical | arena inputSystem: "new", // legacy | new features: { sprint: true, crouch: true, ads: true, headBob: true, weaponSway: true }, includeScripts: true // NEW: スクリプト付き }) ### FPS Variants - basic: 最小限 (移動+ジャンプのみ) - modern: Sprint, Crouch, ADS - tactical: Lean, Prone, Tactical Reload - arena: Fast movement, No ADS, Bunny hop ### Platformer Variants - basic: 移動+ジャンプのみ - standard: Coyote Time, Jump Buffer - celeste: Wall Jump, Dash, Climb - metroidvania: Double Jump, Wall Jump, Abilities ### RPG Variants - action: リアルタイム戦闘 - turn_based: ターン制戦闘 - tactical: グリッドベース戦闘 - hack_and_slash: アクション重視 ===================================== 開発優先度 ===================================== ## Phase 1: 基本スクリプト追加 (必須) - [ ] 各ジャンルの基本コントローラースクリプト - [ ] 実際にプレイ可能な状態に - 工数: 1-2週間 ## Phase 2: 品質向上 (推奨) - [ ] New Input System対応 - [ ] Cinemachine統合 - [ ] Game Feel向上 (Coyote Time等) - 工数: 1-2週間 ## Phase 3: 拡張機能 (オプション) - [ ] ジャンル固有の高度な機能 - [ ] バリアントシステム - 工数: 2-3週間 ## 合計工数: 約4-7週間 ===================================== ファイル構成 (想定) ===================================== Assets/Synaptic AI Pro/ ├── GameTemplates/ │ ├── FPS/ │ │ ├── Scripts/ │ │ │ ├── FPSController.cs │ │ │ ├── WeaponSystem.cs │ │ │ └── FPSPlayerInput.inputactions │ │ └── Prefabs/ │ │ └── FPSPlayer.prefab │ ├── Platformer/ │ │ ├── Scripts/ │ │ │ ├── PlatformerController2D.cs │ │ │ └── PlatformerPlayerInput.inputactions │ │ └── Prefabs/ │ ├── RPG/ │ │ ├── Scripts/ │ │ │ ├── RPGPlayerController.cs │ │ │ ├── ClickToMove.cs │ │ │ └── InventorySystem.cs │ │ └── Prefabs/ │ ├── Puzzle/ │ │ ├── Scripts/ │ │ │ ├── PuzzleManager.cs │ │ │ ├── PuzzlePiece.cs │ │ │ └── MatchDetector.cs │ │ └── Prefabs/ │ ├── Racing/ │ │ ├── Scripts/ │ │ │ ├── CarController.cs │ │ │ ├── WheelController.cs │ │ │ └── LapCounter.cs │ │ └── Prefabs/ │ └── Strategy/ │ ├── Scripts/ │ │ ├── RTSCameraController.cs │ │ ├── SelectionManager.cs │ │ └── UnitController.cs │ └── Prefabs/ ===================================== 注意事項 ===================================== 1. スクリプト配布について - .csファイルはAsset Storeでも配布可能 - ただしアセンブリ定義で分離推奨 2. 依存パッケージ - New Input System (com.unity.inputsystem) - Cinemachine (com.unity.cinemachine) - AI Navigation (com.unity.ai.navigation) - 自動インストール機能が必要 3. Unity Version - 最低: Unity 2021.3 LTS - 推奨: Unity 2022.3 LTS以降 - Unity 6対応も考慮 4. パフォーマンス - モバイル対応を考慮した軽量実装 - LOD/Culling設定