マップチップやオートタイルで必要なタイルの種類

以前の記事で宝箱を作り直して以来、たまにドット絵をポチポチ打ったりしています。
その時に床のマップチップ素材を作ってみようと思ったのですが、必要なタイルの種類が分からなかったので調べてみました。
必ずフチが存在し、回転や反転が出来ないタイル、という前提での話になります。

あと私、ドット絵初心者マンなので情報に誤りがあるかもしれないという予防線も事前に張っておきます!


まずは基本形。中央、四角、四辺の9タイル。
これがあればひとまず好きな長方形は作れますね。
右図のように内側の角を埋めるタイルが無いので長方形から発展させるには角が必要です。

内側の角を追加しました。これだけで簡単な地形は作れそうです。

1マスの道と行き止まりを追加しました。それと完全に閉じたタイルもついでに。
実際に使ってみると1本道の根本を接続するタイルが無いことが分かります。
足りないのは「辺と角が共存するタイル」と「複数の角が存在するタイル」です。

まずは複数の角が存在するタイルを追加しました。1マスの中に角が2~4つあります。
これで分岐や交差点を接続できるようになりました。
しかし、まだ辺と角が共存するタイルが無いので抜け落ちがありますね。

1つの辺と1つの角が共存するタイル。(以降「1辺&1角タイル」のように表記します)
このタイルがあれば先ほどの画像で空いていた箇所を埋めることが出来ます。

最後に 「2辺&1角タイル」と「1辺&2角タイル」を追加して完了です。
これで複雑な地形もバッチリ作れるようになりました。

これまでに登場したタイルを一覧にしてみました。全部で47種類です。
実際に必要なタイル数は模様や地形によって増減すると思うのであくまで目安の一つですが、これだけあれば基本的な地形は表現することが出来ます。


しかし、これだけのタイルを一から作成するのは大変です。というかあからさまに再利用できそうな箇所が沢山あります。
そこで本当に必要なパーツだけを抽出し、それらを組み合わせて上記47種類のタイルを作成することを考えます。

左上1/4に注目し、47種類のタイルに存在するパターンを並べてみました。
意外と少なく、必要なパターンはたったの5種類です。
これは左下、右上、右下でも同様です。これらを切り取ってまとめてみると…

5種類のタイルに収まりました。スッキリ!
画像下はこれらのタイルを分解して組み合わせた例になります。ちゃんと他のタイルも作れていますね。
ということで、5種類のタイルを作成すれば47種類のタイルを合成できるということが分かりました。

※ただし、この方法はタイルを1/4に分解できるという前提で成り立っています。
そのためタイルごとの模様や繋ぎ目が1/4の範囲に収まっているデザインでなければなりません。


先ほど挙げた5種類のタイルは、RPG制作ツールなどに備わっている「オートタイル」機能に必要なタイルでもあります。(タイルのまとめ方はツールの規格によって異なります)
オートタイルを使うことで自動的にタイルを合成し、さらにマップを制作する際には地形に合わせて適切なタイルを配置してくれます。

先ほどの色分けタイルを使って実際に試してみましょう。

RPG制作ツールの類を持ってないのでUnityで試してみました。
Unityは2019年7月時点でオートタイル機能をサポートしていないのですが、エディタ拡張を公開されている方がいらっしゃったので利用させて頂きました。ありがとうございます!

Unity Tilemapでウディタ規格のオートタイルを使う(外部サイト)

こんな感じで、適当にタイルをびゃーって置くだけでマップが作れます。超便利!
オートタイル無しで同じことをする場合、47種類のタイルの中から適切なものを手動で配置する必要がありますから、この差はとても大きいです。

なのでUnityさん、公式でオートタイル実装してくれないかなー(チラッ


ということで、マップチップ&オートタイルで必要なタイルのまとめでした。
長くなってしまったので総括しますと…

  • 基本的な地形の表現に必要なタイルは47種類
  • 一から作成する必要のあるタイルは5種類
  • 5種類のタイルから47種類のタイルを合成できる
  • これらの合成&配置を自動でやってくれるのがオートタイル機能

という内容でした。

今回、自分用にタイルのテンプレート画像を作った流れで記事を書くことにしました。
しかし知識と経験が乏しく文章に起こすのに苦労し…
お蔵入りにしようかと思いましたが、自分用のメモを兼ねているのと、折角画像作ったし…という気持ちで最後まで書かせて頂きました。
記事を書く過程で得るものも多かったので、公開するかはともかくとしてまとめ記事を書くのはいいことかもしれません。

まぁでも、次に記事を書く時はもっと経験を積んでから…