Unity 6のTilemap入門|タイルを並べて2Dステージを作ろう
「Unityで、ブロックを並べるように2Dのステージを作りたい」。そんなときに使うのが Tilemap(タイルマップ) です。
小さな画像を格子状に配置して、床や壁、足場を作れます。画像を1枚ずつGameObjectとして並べる作業を、ブラシで塗るような操作に置き換えられます。
この記事では、画像を取り込むところから、床・段差・浮き足場を配置し、物理的に乗れる地形にするところまで進めます。基本のステージ作成にC#のコードは使いません。
操作の基準はUnity 6.0(6000.0)です。2026年10月11日に公式ドキュメントを確認しました。Unity 6の別の版やパッケージ構成ではメニュー名・配置が異なる場合があります。メニュー名は英語表記を併記します。本記事の図は説明用のオリジナル図解です。
まず覚えたい5つの役割
| 名前 | 役割 | たとえるなら |
|---|---|---|
| Grid | セルの大きさや並び方を決める | 方眼紙 |
| Tilemap | どのセルにどのTileを置くかを管理する | 方眼紙に描く地形のレイヤー |
| Tile Palette | Tileを選び、配置・消去などを行う編集ウィンドウ | 絵の具のパレットと道具箱 |
| Collider 2D | 2D物理の衝突形状。TilemapではTilemap Collider 2Dを使う | 見えない床や壁 |
| Rule Tile | 周囲のTileの条件で表示などを切り替えるTile | つながり方を判断するタイル |
Sprite(スプライト)は画像素材、Tile(タイル)はTilemapへ配置するアセットです。TileにはSpriteやCollider Typeなどの情報を設定します。配置したTileの表示は、Tilemapと同じGameObjectにある Tilemap Renderer が担当します。詳細はTileアセットの公式リファレンスを参照してください。

1.2Dプロジェクトとパッケージを準備する
Unity HubからUnity 6の2Dテンプレートでプロジェクトを作成します。既存のプロジェクトでも作業できます。
Package Managerを開き、次のパッケージが入っているか確認しましょう。Unity 6.0では Window → Package Management → Package Manager から開きます。必要なものが見つからないときは、一覧の対象を Unity Registry にして探します。
| パッケージ | パッケージID | 今回の用途 |
|---|---|---|
| 2D Tilemap Editor | com.unity.2d.tilemap | TilemapとTile Paletteの編集 |
| 2D Sprite | com.unity.2d.sprite | Sprite Editorでの画像の分割など |
| 2D Tilemap Extras | com.unity.2d.tilemap.extras | 後半のRule Tile。基本の配置には不要 |
2Dテンプレートでは2D Tilemap Editorが自動で導入されますが、既存プロジェクトでは確認してください。2D Tilemap Editorの公式情報
Rule Tileは2D Tilemap Extrasに含まれます。Unity 6.0向けの公式一覧では4.1.2がReleasedとして掲載されています。別のUnity 6の版にこの番号を固定せず、そのEditorに対応するReleased版を選びましょう。2D Tilemap Extrasの公式情報
素材を整理しやすいように、Projectウィンドウで次のフォルダーを用意します。
Assets/
Art/Tiles/ ← PNG画像
Tiles/ ← Tileアセット
Palettes/ ← パレット
Scenes/ ← シーン
2.タイル画像をSpriteとして取り込む
今回は 32×32ピクセルの正方形を1セルに配置することにします。手元の素材がなければ、この記事の添付素材 sample-ground-top-32.png と sample-ground-fill-32.png を使えます。どちらも余白のない32×32画像です。
PNGを Assets/Art/Tiles に入れ、Projectウィンドウで画像を選択します。Inspectorで以下を設定して Apply を押します。
| 設定 | 今回の値 | 理由 |
|---|---|---|
| Texture Type | Sprite (2D and UI) | 2D画像として扱う |
| Sprite Mode | Single | 1枚のPNGに1個のタイルがあるため |
| Pixels Per Unit | 32 | 32ピクセルをワールドの1ユニットにする |
| Filter Mode | Point (no filter) | 今回のドット絵の輪郭を保つ |
| Compression | None | 練習では圧縮による見た目の変化を避ける |

Pixels Per Unit(PPU)は「1ユニットに何ピクセルを割り当てるか」です。32ピクセル幅をPPU 32で取り込むと幅1ユニット、PPU 100なら幅0.32ユニットになります。今回のGridのセル幅1に合わせるにはPPU 32が分かりやすい設定です。素材が64×64なら、同じ考え方でPPU 64にします。Spriteのインポート設定
1枚の画像に複数のタイルが入っている場合
タイルシートの場合は、Sprite Modeを Multiple にしてApplyを押し、Sprite Editor を開きます。32×32のタイルが余白なしで並ぶシートなら、Sliceで Type → Grid by Cell Size、Pixel Size → X:32、Y:32 を選び、SliceとApplyを実行します。
余白やタイル間の隙間がある素材では、OffsetやPaddingも合わせます。分割後は、Projectウィンドウで画像を展開すると個別のSpriteを選べます。Sprite Editorを開けない場合は、2D Spriteの導入を確認してください。公式:Spriteの自動スライス
3.GridとTilemapを作る
Hierarchyウィンドウの空いているところを右クリックし、2D Object → Tilemap → Rectangular を選びます。
Gridが親、Tilemapが子として作成されます。Tilemapを Ground に名前変更しましょう。
Grid
└ Ground
Gridを選び、Cell Sizeは X:1、Y:1、Z:0、Cell Gapは0のままにします。今回の練習ではGridとGroundのTransformをPosition 0、Rotation 0、Scale 1にそろえます。
Rectangularは長方形のセルを使うTilemapです。まずはこれを使うと、床や壁の位置を理解しやすくなります。公式:Tilemapの作成と配置
4.Tile Paletteに素材を登録する
Assets → Create → 2D → Tile Palette からRectangularのパレットを作り、GroundPalette と名付けて Assets/Palettes に保存します。
次に Window → 2D → Tile Palette を開き、Active Palette でGroundPaletteを選びます。続けて、次の順にSpriteを登録します。
- Projectウィンドウで
Assets/Art/Tilesを開き、Spriteをパレットへドラッグします。添付素材ならsample-ground-top-32とsample-ground-fill-32の2つです。 - 保存先を選ぶダイアログが開くので、
Assets/Tilesを選びます。 - パレットにTileが登録され、
Assets/TilesにTileアセットが作られます。
UnityがSpriteからTileアセットを作成します。Multipleの画像をドラッグすると、分割された子SpriteごとのTileが作られます。公式:Tile Paletteの作成
ここで大切なのが、次の2つの選択です。
- Active Palette:どの素材一覧を使うか。
- Active Target:どのTilemapへ描くか。今回はGroundを選びます。
パレットを作っただけでは、シーンの地形はまだできていません。次の手順でSceneビューに配置します。
5.床・段差・浮き足場を塗る
Sceneビューを2D表示にし、GridまたはGroundを選択して格子を表示します。Tile Paletteで床用Tileを選び、Paint with Active Brush(ブラシ)を選択します。
最初は次の順で小さなステージを作ってみましょう。
- Sceneビューで横に18セルほどドラッグして床を作ります。
- 床の下にも1段並べて、厚みを付けます。
- 床の一部の上に3セル並べ、1段高い場所を作ります。
- 床から少し離れた上方に4セル並べ、浮き足場を作ります。
- 間違えたセルは Erase with Active Brush(消しゴム)で消します。
添付素材なら上面に草付きTile、下段に土だけのTileを使うと、床の向きが分かりやすくなります。

装飾は別のTilemapへ分ける
Gridを右クリックして同じRectangularのTilemapを追加し、Decoration と名付けます。装飾用Tileはそちらへ描きます。
Grid
├ Ground ← 床・壁。衝突あり
└ Decoration ← 草・小物。衝突なし
重なり順はTilemap Rendererの Sorting Layer と Order in Layer で調整できます。同じSorting Layerなら、たとえばGroundを0、Decorationを1にすると装飾が手前になります。Tilemap Rendererの公式リファレンス描画順のSorting Layerと、物理判定に使うGameObjectのLayerは別の設定です。
6.床にTilemap Collider 2Dを付ける
このままでは画像が表示されるだけで、落下するキャラクターを支えられません。
HierarchyでGroundを選択し、Inspectorの Add Component から Tilemap Collider 2D を追加します。Tileの設定に応じて衝突形状が生成されます。公式:タイルの衝突判定を有効にする
Projectウィンドウで生成したTileアセットを選び、Collider Type も確認します。
| Collider Type | 作られる形状 | 用途 |
|---|---|---|
| None | 形状を作らない | 装飾 |
| Grid | Gridのセル形状 | 四角い床や壁 |
| Sprite | Spriteの物理形状 | 坂や不規則な形の地形 |
今回は床Tileを Grid にします。Spriteでは透明部分を含む画像の見た目と物理形状が一致するとは限りません。必要ならSprite EditorのCustom Physics Shapeで形を調整します。TileアセットのCollider Type
隣接する当たり判定をCompositeでまとめる
床をたくさん並べる場合は、Groundに Composite Collider 2D を追加します。同じGameObjectの Rigidbody 2D も確認し、動かない地形では Body Type → Static にします。Rigidbody 2Dがなければ追加してください。
続いてTilemap Collider 2Dの Composite Operation → Merge を選びます。Composite Collider 2DのGeometry Typeは、今回の四角い地形では Polygons にします。
隣接する形状を結合して、セルごとの境界をまとめられます。旧版の解説にある「Used by Composite」を探して見つからない場合は、Composite Operationを確認してください。Tilemap Collider 2Dの設定、Composite Collider 2Dの設定

移動スクリプトなしで衝突を確かめる
Projectウィンドウの添付素材SpriteをHierarchyへドラッグして、名前を TestBody にします。Sceneビューで床の上へ移動し、ScaleをX:0.8、Y:0.8、Z:1にします。Box Collider 2D と Rigidbody 2D を追加し、Body Typeを Dynamic、Gravity Scaleを1にします。回転させたくない場合はConstraintsのFreeze Rotation Zを有効にします。
Playを押し、重力で落ちたTestBodyが床で止まるか確認してください。TestBodyとGroundのIs Triggerは無効にします。Compositeへ結合した床では、Is TriggerをComposite Collider 2D側で確認します。
衝突を見るだけならキャラクター移動処理は不要です。床、段差、浮き足場の上へTestBodyを置き直して、順に確かめましょう。Play中の変更は終了すると戻るため、地形の編集はPlayを止めて行います。
7.Rule Tileでつながり方を自動化する
手動配置に慣れると、「上面・中央・角の画像を毎回選ぶのが大変」と感じるようになります。そこで使うのが Rule Tile です。
Rule Tileは、周囲のセルに置かれたTileを調べ、条件に合うSpriteなどを選びます。画像から角を自動生成する機能ではなく、使う画像と切り替え条件を自分で設定する仕組みです。
2D Tilemap Extrasを導入したら、Projectウィンドウを右クリックし、Create → 2D → Tiles → Rule Tile → Rule Tile から通常のRule Tileを作成します。名前は GroundRule とします。メニューの階層は導入版によって異なる場合があります。公式:Rule Tileの作成
まずは「上が空いているところだけ草の上面にする」という小さなルールを試します。
- Default Spriteに土だけのSpriteを設定します。
- Default ColliderをGridにします。
- Tiling Rulesで + を押し、ルールを1つ追加します。
- 3×3の条件欄の上中央を Not This にします。他の周囲セルはDon’t Careのままにします。
- そのルールのOutputをSingle、Spriteを草付きの画像、ColliderをGridにします。
- GroundRuleアセットをTile Paletteへ追加し、Groundに2段の地形を塗ります。
This は同じRule Tile、Not This は同じRule Tileではないこと、Don’t Care はその位置を条件にしないことを表します。条件欄をクリックして表示を切り替え、Thisは緑の矢印、Not Thisは赤い×、Don’t Careは空欄にします。Rule Tile Inspectorの公式リファレンスNot Thisには空セルだけでなく別のTileも含まれます。この例ではGroundRuleだけで地形を描くため、上が空いた場所に草付き画像が出ます。
複数のルールは上から順に調べられます。条件が重なるときは並び順にも注意し、意図する条件を優先させましょう。角や左右端を追加する場合も、まず1条件ずつ試すと原因を追いやすくなります。
つまずいたときの確認表
| 症状 | まず確認すること |
|---|---|
| Tilemapのメニューがない | 2D Tilemap Editorと2D Spriteの導入状態 |
| Sprite Editorが開けない | 2D Sprite、Texture Type、Applyの実行 |
| タイルシート全体が1個の画像になる | Sprite ModeがMultipleか、SliceとApplyが済んでいるか |
| 小さすぎる・セルからはみ出す | 画像サイズ÷PPU、GridのCell Size、TransformのScale |
| 描いても反応しない | Active Paletteの選択、Tileの選択、ブラシ、Active Target、Sceneビューで描いているか |
| 別の地形に描かれる | Active TargetがGroundかDecorationか |
| Sceneでは見えるのにGameでは見えない | カメラの範囲、位置、Culling Mask、Rendererの有効状態。URPのLit素材なら2Dライトも確認 |
| 床をすり抜ける | GroundのCollider、TileのCollider Type、TestBodyのCollider 2DとDynamic Rigidbody 2D、Is Trigger |
| 当たり判定が結合されない | 同じGameObject上のCompositeとRigidbody 2D、Composite OperationがMergeか |
| Rule Tileが切り替わらない | 通常Tileではなく同じGroundRuleを塗っているか、周囲の条件、Sprite、ルール順 |
| Play終了後に編集が消えた | Play中に編集していなかったか |
2Dと3Dの物理は別系統です。Box Colliderではなく Box Collider 2D、Rigidbodyではなく Rigidbody 2D を使います。床をすり抜ける場合は、Physics 2DのLayer Collision MatrixやColliderのLayer Overridesで衝突が除外されていないかも確認してください。
タイル間に線が見えるときは、まず画像の余白・Slice範囲・PPU・Cell Gap・Filter Modeを調べます。それでも残る場合はカメラの位置や拡大率、Sprite Atlasの余白も切り分けます。原因を確かめずに全TileのScaleを広げると、見た目と衝突形状の関係が分かりにくくなるため、設定を1つずつ確認しましょう。
次に試してみよう
まずは「床が描ける」「別のTilemapに装飾を置ける」「落下する物体が床で止まる」の3つを目標にしてみてください。
ここまでできたら、Rule Tileで端や角の条件を増やす、背景用Tilemapを追加する、キャラクター移動を組み合わせる、といった順に広げられます。小さなステージで操作と当たり判定を確認してから、大きなマップへ進みましょう。









ディスカッション
コメント一覧
まだ、コメントがありません