mcpField
U
Unity 2D

Unity 2D

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

Unity 2D について

Unity 2D は、Unity 6+での2Dゲーム開発を支援するスキルです。レンダリング、物理、Tilemap、カメラ、スプライト、ゲームプレイの定番パターンを案内します。

主な機能

  1. 01URP 2D Rendererの設定
  2. 02TilemapとRule Tileの活用
  3. 032D物理の設定
  4. 04Cinemachineカメラの設定
  5. 05スプライトのインポートとアトラス最適化
  6. 062Dゲームプレイパターンの案内

活用シーン

  1. 01Tilemapを使ったプラットフォームレベルの構築
  2. 02プレイヤーと地形の2D衝突設定
  3. 03ピクセルアートのスプライトとカメラの調整
  4. 04アトラスによるスプライト描画呼び出しの削減

インストール

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

$npx skills add https://github.com/juliankerignard/unity-skills --skill unity-2d

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
2d-patterns.md
2d-advanced.md
2d-rendering.md

詳細

Unity 2D

このスキルでできること

Unity 6+ での 2D ゲーム開発をガイドします。Tilemap と Rule Tile のセットアップ、2D 物理(Rigidbody2D、Collider2D)、スプライトと Sprite Atlas の管理、URP を使った 2D ライティング(Light2D、Shadow Caster 2D)、Cinemachine によるカメラ設定、ゲームプレイのパターン(プラットフォーマー、トップダウン、パズル)を扱います。ピクセルアート、パララックススクロール、Tilemap の最適化もカバーします。

前提条件

  • 2D Renderer として設定された URP を備えた Unity 6.0+
  • 2D Tilemap Extras パッケージ(Rule Tile、Animated Tile)
  • 2D カメラ用の Cinemachine パッケージ
  • Sprite Swap が必要な場合は 2D Sprite および 2D Animation パッケージ

クイックスタート

  1. URP 2D を設定する:URP Renderer Asset に 2D Renderer Data を追加します。プロジェクトの Graphics Settings で割り当てます。
  2. Tilemap を作成する:GameObject > 2D Object > Tilemap > Rectangular を選択します。Tile Palette(Window > 2D > Tile Palette)を開いてペイントします。
  3. 物理を追加する:衝突用 Tilemap に Tilemap Collider 2D と Composite Collider 2D を追加します。Tilemap に Rigidbody2D(Static)を設定します。
  4. カメラを設定する:CinemachinePositionComposer を含む CinemachineCamera を追加します。Follow にプレイヤーを設定します。CompositeCollider2D を使って境界を設定した CinemachineConfiner2D を追加します。
  5. スプライトをインポートする:Filter Mode は Point(ピクセルアート)または Bilinear に設定します。PPU はタイルサイズ(16、32 など)にします。バッチ処理用に Sprite Atlas を作成します。

判断フローチャート

Type de jeu 2D ?
|
+-- Platformer ?
|   +-- Classique ----------> Rigidbody2D + Tilemap + Coyote time
|   |                         (voir references/2d-patterns.md et 2d-advanced.md)
|   +-- Metroidvania -------> idem + abilities unlock
|                              + Cinemachine Confiner2D par zone
|
+-- Top-down ?
|   +-- Action (Zelda) -----> Rigidbody2D, 8-dir, GravityScale=0
|   +-- RPG / exploration --> idem + Tilemap layers + dialogue system
|
+-- Puzzle / match ?
|   +-- Grid-based ---------> Tilemap ou Grid custom, pas de physics
|
+-- Visual novel / UI-heavy ?
|   +-- --------------------> UI Toolkit (/uitk), pas de physics 2D
|
+-- Besoin de lumiere / ombres ?
    +-- --------------------> URP 2D Renderer + Light2D
                              (voir references/2d-rendering.md)

ステップごとのガイド

ステップ 1:URP 2D Renderer のセットアップ

2D Renderer Data アセット(Create > Rendering > URP 2D Renderer)を作成します。URP Asset で、デフォルトの Renderer として割り当てます。カメラのインスペクターで、Renderer 2D が使用されていることを確認します。

ステップ 2:Tilemap の作成

1 つの Grid 上で レイヤー に分けて整理します:

  • Tilemap_Background(Sorting Layer: Background、Order 0)
  • Tilemap_Ground(Sorting Layer: Tilemap、Order 0)+ Tilemap Collider 2D + Composite Collider 2D
  • Tilemap_Foreground(Sorting Layer: Foreground、Order 0)

プラットフォームや壁のオートタイルには Rule Tile(2D Tilemap Extras)を使用します。

ステップ 3:2D 物理の設定

プレイヤーには Rigidbody2D(Dynamic、Freeze Rotation Z)を設定します。CapsuleCollider2D または BoxCollider2D を追加します。プラットフォームには、Rigidbody2D Static とともに Composite Collider 2D(Geometry Type = Polygons)を設定します。摩擦や反発には Physics Material 2D を使用します。

ステップ 4:Cinemachine カメラのセットアップ

CinemachinePositionComposer(Dead Zone、Lookahead)を含む CinemachineCamera を設定します。レベルの境界を定義する PolygonCollider2D/CompositeCollider2D に CinemachineConfiner2D を追加します。ピクセルアートでは Pixel Perfect Camera(2D Pixel Perfect パッケージ)を有効にします。

ステップ 5:スプライトのインポートと最適化

スプライトシートをインポートします。Sprite Editor を設定してスライスします(Grid by Cell Size)。ゾーンまたはカテゴリごとに Sprite Atlas を作成します(references/2d-rendering.md を参照)。ピクセルアートでは、Filter = Point、Compression = None、PPU = タイルサイズにします。

厳守事項

  • 必ず Rigidbody2D.linearVelocity(Unity 6+)を使用し、velocity は使用しないでください
  • 必ず 物理処理は FixedUpdate、入力処理は Update に記述してください
  • 必ず 衝突用 Tilemap では Composite Collider 2D を使用してください
  • 必ず Sorting Layer を整理してください(Background < Tilemap < Characters < Foreground < UI)
  • 絶対に Tilemap に Rigidbody2D Dynamic を設定しないでください(Static または Kinematic を使用してください)
  • 絶対に 本番環境で Sprite Atlas を使わずに個別のスプライトを使用しないでください
  • 絶対に 同じ GameObject に Rigidbody 3D と 2D を混在させないでください
  • 絶対に スプライトの反転に負のスケールを使わず、SpriteRenderer.flipX を使用してください

関連スキル

  • /proto:2D ゲームプレイの高速プロトタイピング
  • /unity-code-gen:C# スクリプト(コントローラー、スポーナー)の生成
  • /anim:Animator、Sprite Animation、Timeline
  • /shader:カスタム 2D シェーダー(アウトライン、ディゾルブ、水)
  • /perf-audit:ドローコール、バッチング、Sprite Atlas の最適化

トラブルシューティング

問題原因解決策
スプライトが表示されないSorting Layer/Order の設定が正しくないSpriteRenderer の Sorting Layer と Order in Layer を確認してください
Tilemap のコライダーを通り抜けるComposite Collider がないTilemap に Composite Collider 2D と Rigidbody2D Static を追加してください
プレイヤーが壁で滑る横のタイルとの摩擦プレイヤーに Friction=0 の Physics Material 2D を設定してください
2D ライトに効果がない2D Renderer がないURP Asset で 2D Renderer Data が使用されていることを確認してください
スプライトがぼやける(ピクセルアート)インポート設定が正しくないFilter Mode = Point、Compression = None に設定してください
カメラがカクつくFixedUpdate の外で移動しているRigidbody2D の Interpolation = Interpolate に設定してください
タイル間に隙間が見えるエッジのアンチエイリアシングPPU を統一し、Pixel Snap を有効にして、端数のスケールを使用しないでください
ドローコールが多いバッチングされていないSprite Atlas を作成し、URP の Dynamic Batching を確認してください

コメント