「さぁ、UnityのTilemapを始めよう!」はUnityゲームエンジンの機能、「Tilemap
」の機能・使い方を紹介する記事シリーズです。
この記事は、全8回中の第1回です。
※ この記事シリーズは、技術書典4で頒布した技術同人誌「Unity Tilemap Startbook」の内容を、ブログ用に修正・編集したものです。
はじめに
2016年5月のUnite Tokyo。そこでの「ビルディング・2Dワールド in Unity ~2D機能のあれやこれや~」というセッションで感じたワクワクを、今でも鮮明に覚えています。将来的にUnityに導入される2D向けの新機能を紹介するこのセッションの中で、筆者はTilemap
を知りました。「これを使って、あんなゲームやこんなゲームを作りたい」と強く思った筆者は、ベータ以前の実験段階バージョンであるExperimental Preview版を試し、フィードバックやバグ報告を行いました。また、筆者が所属するコミュニティーUnity部の同人誌シリーズ、UniBookにてTilemap
を紹介するなどしてきました。
Tilemap
を使うことで、矩形画像を敷き詰めたマップは非常に簡単に作成することができます。このようなマップは、アクションゲーム、戦略シミュレーションゲーム、ローグライクゲーム、そしてロールプレイングゲームなど幅広いジャンルのゲームで活用されていて、非常に応用範囲が広いです。以前のUnityではこのようなマップを作るには、手間をかけて多くのSpriteRendererを配置したり、有料のアセットを購入し使い方を覚えたり、ツールを自作したりするなど、手間がかかりました。これがUnityの公式機能となることで、非常に簡単に作ることができるようになりました。
Tilemap
は簡単に矩形画像を用いたマップが作れるだけではありません。Tilemap
の強さはその拡張性です。使い方によっては、Tilemap
はマップエディターの域を超え、レベルデザイナーになることもできるでしょう。Tilemap
の拡張したアセットが登場することも期待されています。
この記事シリーズは、そんなTilemapの入門記事シリーズです。
動作確認は、Unity 2017.4.0f1で行っています。Tilemap
はUnity 2017.2から利用可能です。
Tilemapの概要
Tilemapの概要を紹介します。
UnityでTilemapが導入される以前、矩形画像を敷き詰めたマップを作るのは、なにかと大変でした。やり方としては次のものが考えられます。
- SpriteRenderをたくさん配置する
- 自作システムを作って、使って、メンテナンスする
- AssetStoreにあるツールを買って、使い方を覚えて、使う
小規模なゲーム、小さなマップ以外では、「SpriteRenderをたくさん配置する」という方法は現実的ではありません。「自作システムを作って、使って、メンテナンスする」という方法は、作るのも、使うのも、それを継続してメンテナンスするのもなにかとコストがかかります。「AssetStoreにあるツールを買って、使い方を覚えて、使う」も同様です。
そんな中、Unity 2017.2で待望のTilemapが導入されました。これで、Unityの標準機能を使って、矩形画像を敷き詰めたマップを効率よく作ることができるようになりました。
矩形画像を敷き詰めたマップを作りたい人にとって、これは非常に喜ばしいことです。わざわざタイルマップのシステムを自作する必要がなくなりました。Tilemapのような有料アセットもありましたがUnity標準機能と異なり有料アセットは、「使ってみよう」と思うユーザー数も「実際に使ってみた」というユーザー数も少なく、ブログ・書籍などの使い方の情報が非常に少なくなります。Tilemapが公式の一機能となったことで、この投稿のようにユーザーが発信をする情報が増えるでしょう。「使い方を苦労して覚える」というコストが有料アセットに比べると非常に少なくなるでしょう。またTilemapは拡張性に富み、Tilemapの拡張AssetなどがAssetStoreに登場したり、GitHubなどで公開されることも期待できます。
TilemapはUnity 2017.2で登場しました。
細かい不具合修正がバージョンアップのたびにされていますので、可能であれば最新のUnityでTilemapを使うことをお勧めします。
Tilemapの構成要素を紹介します。
Tilemapで、矩形画像を敷き詰めたマップを作るための重要な要素は、次のとおりです。
- Sprite
- Tileアセット
- Tile関連ゲームオブジェクト・コンポーネント
- TilePalleteとTilePaletteウィンドウ
Spriteはひとつのセル(マップ上のひとつの矩形領域)に表示する画像です。この投稿の後半で説明しますが、適切に設定をする必要があります。
Tileアセットは新たに加わったアセットです。先のSpriteを参照したり色の情報を保持したりするアセットです。TilemapではSpriteをセルに配置するのではなく、このTileアセットをセルに配置します。Tileアセットは独自に拡張することが可能です。
Tile関連ゲームオブジェクト・コンポーネントはシーン上に配置するゲームオブジェクトとそのコンポーネントです。GridやTilemap、TilemapRendererという新たに加わったコンポーネントがいくつかあります。
TilePaletteは新たに加わった要素です。TilePaletteにはTileを登録します。TilePaletteウィンドウから、TilePaletteに登録したTileを選択し、シーン上のTilemap上に配置します。またTilePalette上では、削除・塗りつぶし・矩形描画などの、描画モードの選択も行います。BrushというTilemapにTileを配置する際の挙動を司る要素が存在します。このBrushの選択も、TilePaletteウィンドウから行います。
実際のTilemap使い方、マップの作り方は次の記事で説明します。
次回とシリーズ一覧
次回は、「第2回 とにかくまずは触ってみよう編」です。