Unity Tilemapの使い方

Unity_explain

この記事はUnityのTilemapについて解説している記事です。

スポンサーリンク

<Tilemapとは>

TilemapはUnityの標準機能でSpriteを規則正しい形で並べるのに便利な機能です。

Unity2017.2から登場した機能になります。

↓のように塗るような感じでSpriteを並べる事ができるようになります。

Paint tile map

Spriteがよくわからない方は↓の記事を参考にしてください。

<Tilemapの作り方>

タイルマップを作成するにはヒエラルキービューで右クリックして2D Objectからタイルマップを作成します。

create tilemap

Tilemap以下のメニューは全てタイルマップになります。タイルマップは数種類あってそれぞれ形が違います。

Tilemap

tilemap collider

四角形のグリッドを作成します。

Hexagonal Point Top Tilemap

Hexagon tilemap

六角形の角ばった部分が上に来るようなグリッドを作成します。

Hexagonal Flat Top Tilemap

Hexagon tile pallet

六角形の辺の部分が上に来るようなグリッドを作成します。

Isometric Tilemap

tile palette isometric

奥行きある四角形のグリッドを作成します。

Isometric Z As Y Tilemap

tile map isometric

奥行きと高さのあるグリッドを作成します。

作成されるもの

Tilemapを作成するとGridというグリッド線を作るゲームオブジェクトと、Tilemapというスプライトを並べてくれるゲームオブジェクトの2つが作成されます。

grid tilemap make

必ずしも最初から目的の形で作成する必要はなく、Gridのパラメータを変更する事で変える事が出来ます。

tilemap grid inspector

<Tilemapの塗り方>

Tilemapを塗るにはTilepaletteを用意する必要があります。

Tilepaletteについては↓の記事で解説していますので参考にしてみてください。

Tilepaletteの設定をしてシーンビュー上で塗る事でタイルマップを作っていく事が出来ます。

tile palette select

左から

・マップチップを選択します。

・選択中のマップチップを移動します。

・選択したマップチップでグリッドを塗ります。Shift押しながらで削除できます。「{」「}」キーで回転する事が出来ます。

・マップチップを範囲選択できます。

↓左のような範囲選択をしてから、筆アイコンで塗ろうとすると、右のように塗れます。

tile palette scene

範囲を1マス指定にすると、矩形で塗りつぶします。

Shif押しながらで削除できます。

・スポイトです。このツールを選択した状態でシーンビューのマップチップをクリックすると、そのマップチップで塗れるようになります。

・消しゴムです。

・選択したマップチップでグリッドを塗りつぶします。

Paint tile map
スポンサーリンク

<Gridのパラメータ>

tilemap grid inspector

Tilemapを作成するとTilemapの親オブジェクトにGridというコンポーネントがついたゲームオブジェクトが作成されます。

↓とりあえずの比較基準です。↑のデフォルトの状態のタイルマップになります。

grid default

Cell Size

1マス1マスのサイズを変更します。

塗られているスプライト自体の大きさはスプライトのPixels Per Unitで決まるので、スプライトと1マスのサイズが違うと↑のようにズレが出てきます。

Cell Gap

マスごとの間隔です。

cell gap

↑非常に見辛くて申し訳ないのですが、マスの大きさは変わらず、マスとマスとの間隔が離れている事がわかります。

Cell Layout

マスの形を指定します。

・Rectangle・・・矩形
・Hexagon・・・六角形
・Isometric・・・ひし形
・Isometric Z As Y・・・高さがあるひし形

これらの具体的な形についてはヒエラルキーでCreateしたものを見てください。

Cell Swizzle

タイルマップの平面軸を設定します。スプライトの軸が変わる訳ではないので注意してください。スプライトの軸自体を変えたい場合はTilemapのコンポーネントで変更します。

cell swizzle

<Tilemapのパラメータ>

tilemap inspector

Animation Frame Rate

タイルマップのアニメーションのフレームレートを指定します。

色々調べて見たのですが、2019/12/24現在ではこのパラメータは特別な方法を使わないと使用できないと思われます。Unity本来の機能だけでは使用できないと思います。

違ったらすいません。

2d-extrasを導入する事でアニメーション付きタイルマップを使用できます。

この機能は未だPackage Managerにも導入されていないのでいづれ正式に使う事ができるようになるのかもしれません。

Color

タイルマップの色を変更します。

Tile Anchor

タイルマップの中心点を指定します。

0.5がマス目の中心になります。

0.5からズラす事でタイルマップがマス目の中心位置からズレます。

Orientation

マップチップをどの軸で配置するのかを指定します。

tilemap orientation

・Position, Rotation, Scale

OrientationをCustomにした時のみ編集できるパラメーターです。

マップチップのオフセットと回転と大きさを変更する事ができます。

<Tilemap Renderer>

tilemap renderer

Sort Order

マップチップ通しの重なり方を指定します。

指定した箇所が手前に来るようになります。

Top Leftであれば、マップチップの上と左の部分が手前に来るように重ねます。

ただし、この設定だけでは挙動がおかしくなる時があるようです。

グラフィックの重なり方がおかしい場合はProject Setting>Graphics>Transparency Sort Axisの設定を変える必要があります。

Project Setting Graphics

↓のように設定すると上へいけば奥にいき、Zの値を大きくすることで手前に来るようになります。

Transparency Sort Axis

Mode

このタイルマップのレンダリングのやり方を指定します。

・Chunk

各タイルを個別にレンダリングするのではなく、タイルをまとめて大きなブロックとして一括レンダリングします。

まとめて一括レンダリングされるので動作が軽くなります。

しかし、一括でレンダリングされるため、キャラクターなど他のオブジェクトの前面や背後に動的に並べ替えることはできません

・Individual

各タイルを別々にソートするモードです。

動作としては重くなりますが、キャラクターなど他のオブジェクトの前面や背後に動的に並べ替えることができます。

Detect Chunk Culling Bounds

タイルマップのチャンクカリング境界を設定します。

Autoに設定していると自動で計算してくれます。

ManualにするとChunk Culling Boundsを設定する事ができます。

タイルマップがカメラにうまく表示されない場合に設定します。

Mask Interaction

タイルマップはSprite Maskを使用する事でマスクをかける事ができます。

・None

タイルマップにマスクをかけません。Sprite Maskがあっても無視します。

tilemap mask none

・Visible Inside Mask

タイルマップをマスクの内側だけ表示するようにします。

visible inside mask

・Visible Outside Mask

タイルマップをマスクの外側だけ表示するようにします。

visible outside mask

Material

タイルマップにマテリアルを追加します。

Additional Settings

・Sorting Layer

上部メニューのProject Setting>Tags & Layersで設定されているレイヤーです。

同じ位置に2D表現で表されたものがある場合、どれを前面に持ってくるかを設定できます。Tags & Layers>Sorting Layerで下に設定したものほど前面に出ます。

・Order in Layer

同じレイヤー内の同じ位置に存在する2D表現で表されたものを数字が大きいものほど前に表示します。

Sorting Layerの中をさらに細分化して表示順を制御するものです。

<Tilemap Collider 2D>

tilemap collider 2d

自動でマップチップからコライダーを生成するコンポーネントです。

各種マップチップのコライダーはマップチップのデータで設定します。

maptip data

↑のCollider Typeで、SpriteもしくはGridのどちらからコライダーを作成するのかを設定します。

Spriteのコライダーの設定の仕方は↓の記事を参考にしてください。

Max Tile Change Count

タイルマップを動的に追加、削除、変更する際に最大数の制限をかけます。

一度に大量のタイルマップを変更すると重くなるので、それを防ぐために使用します。

Extrusion Factor

このパラメーターはUsed By Compositeをオンにして、Composite Collider 2Dをこのゲームオブジェクトにつけた場合のみ変更する事ができます。

Material

Physics Material 2Dを設定して物理的特性を変更します。

Physics Material 2Dについては↓の記事を参考にしてください。

Is Trigger

このコライダーの当たり判定を無くし、トリガーとして使用します。

Used By Effector

「Effector 2D」であるコンポーネントを使用するかどうかです。

チェックが入っているとこのゲームオブジェクトにくっついているEffector 2Dが動作します。

Used By Composite

「Composite Collider 2D」というコンポーネントの使用を可能にします。

これは複数あるコライダーを一つにまとめてくれるコンポーネントです。

Rigidbody2Dも一緒につけないと機能しません。

Offset

コライダーをマップチップの中心からどれだけ離すのかを表します。

コライダーの位置調整に使用します。



タイトルとURLをコピーしました