この投稿ではUnityのTileTemplateについて紹介します。
TileTemplateにより、TextureやSpriteからTileアセットをより効率的に作成できるようになりました。特に、今までは面倒だった「すでに作成したScriptableTileアセットの、画像が異なるバリエーションのTileアセット」を、効率的に作成できるようになりました。
TileTemplateの概要
TileTemplateの概要は次の通りです。
- Unity 6.1で、コアパッケージ「com.unity.2d.tilemap」に追加
- 名前空間は「UnityEditor.Tilemaps」
- ScriptableObjectを継承した、抽象クラス
- TileTemplateを継承したクラスを作成し、継承したクラスのScriptableObjectアセットを作成して使う
- TileTemplateを継承したクラスとして次のクラスがある
- PositionTileTemplate
- RuleTileTemplate(2d-extras)
- AutoTileTemplate(2d-extras)
公式サイト
TileTemplateの実例
TileTemplateの利用例として、次の2つのTileTemplateクラスを紹介します。
- AutoTileTemplate
- RuleTileTemplate
これらのクラスは、Unity公式パッケージ「2d-extras」のv4.2.0で追加されました。
AutoTileTemplate
AutoTileは、2d-extrasのv4.2.0で追加されたScritptablTileです。
「事前に設定したルール」と「同一AutoTileアセットがTilemap上の隣接セルに配置されているか」により、表示するSpriteを自動で切り替えることで、効率的に2Dマップを作製できるScritptablTileです。2d-extrasにもともとあったRuleTileに似たTileで、RuleTileよりもルール設定をグラフィカルに・直観的に行えます。
AutoTileの基本的な使い方は、次の記事を参照して下さい。
AutoTileには、「異なる画像(※)で同じルールのAutoTileアセットを簡単に作成する機能」があります。(※ 同一サイズ・同一配置でSpriteを含んでいる必要あり)
詳しい手順は、上記記事中の「異なる画像で同じルールのAutoTileを作成する」の節を参照して下さい。
「異なる画像で同じルールのAutoTileを作成する」手順の途中で、Saveボタンを押した時、AutoTileTemplateアセットを作成しています。
そして、新たに作成したAutoTileアセットのインスペクターでLoadボタンを押し、AutoTileTemplateを読み込むことで「異なる画像で同じルール」のAutoTileを作成します。
RuleTileTemplate
RuleTieは、2d-extrasに含まれているScriptableTileです。
「事前に設定したルール」と「同一RuleTileアセットがTilemap上の隣接セルに配置されているか」により、表示するSpriteを自動で切り替えることで、効率的に2Dマップを作製できるScritptablTileです。
2d-extrasのv4.2.0で新たにRuleTileTemplateが追加されました。
RuleTileのインスペクターのコンテキストメニューから、「Create RuleTile Template」を選択すると、RuleTileTemplateアセットを作成することができます。
残念ながら、AutoTileTemplateと違って、「異なる画像で同じルールのRuleTileアセットをRuleTileTemplateから作成すること」は、2d-extrasのv4.3.1の時点ではできなさそうです。
RuleTileTemplateアセットはTileSetと一緒に使うことで、異なる画像で同じルールのRuleTileを利用できます。(※ 厳密には、RuleTileアセットを作成するわけではない)
まとめ
TileTemplateにより、TextureやSpriteからTileアセットをより効率的に作成できるようになりました。
特に、今までは面倒だった「すでに作成したScriptableTileアセットの画像が異なるバージョン」を、とても効率的に作成できるようになりました。
もし皆さんが独自のScriptableTileを作成・運用しているのであれば、TileTemplateも活用できないか検討してみてください。