本文へスキップ

Tiled Wangセット書き出し · オートタイルシートから地形セット

TiledのWangセットをタイルごとに埋める作業は、Godotのピアリングビットと同じ手間です。Studioは認識した配置からWangセット(混合・辺・角、地形ごとに1色)を書き、Tiledルールで描いたサンプルマップを添えます。

Wangセットは、Tiled 1.5以降Terrain Setとして表示され、タイルの角や辺(または両方)に地形の色を付けて、Terrain Brushが合うタイルを選べるようにするものです。種類は絵に合わせて選びます。Corner SetとEdge Set(地形2つならそれぞれ16タイル)、Mixed Set(最大256、47タイルのブロブは縮小した混合セットとして使えます)。Nerulioは認識した配置から全タイルのWang IDを埋めた.tsxと、サンプルの.tmxを書き出します。Tiled 1.12.2で全IDが書いたとおりに読み戻されました。

タイルセットやオートタイルのシート(PNG)をドロップ
空のStudioを開く
ブラウザ内で処理し、ファイルはアップロードされません。
Studio のタイル作業画面:GameMaker配置と認識した47タイルのシート、地形ビット、完了したチェック
CC0アセット(OpenGameArt)を開いた実際のStudio画面です。
書き出し先
  • Tiled検証済み· Tiled 1.12.2
  • Godot 4 TileSet検証済み· Godot 4.7.2
  • Unity 6 Rule Tile検証済み· Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3
  • LDtk一部検証· LDtk 1.5.3 schema + loader

Wang ID、セットの種類、空の地形

ファイルの中では、印を付けたタイルごとにWang IDがあります。上、右上、右、右下、下、左下、左、左上の順に並ぶ8つの色番号で、0は未設定、1が最初の色です(TMX形式のリファレンス)。Corner Setは4つの角だけ、Edge Setは4辺だけ、Mixed Setは8つすべてを使います。

Terrain Brushは塗る場所の周りの色を見てWang IDが合うタイルを選び、隣のタイルもつながるように変えます。Tiledのマニュアルによれば、2つの地形の間に直接の遷移がないときは遷移のある3つ目の地形を経由して塗り(土 → 砂 → 石畳)、Patternsビューはすでにタイルがある組み合わせを暗く表示します。

マニュアルは、「空」のための地形を別に作る必要はなく、何もない側への遷移は印を付けなければよいと説明しています。1色のブロブセットでは孤立タイルのIDが0,0,0,0,0,0,0,0になりますが、Tiledは読み込み時にすべて0のWangタイルを捨てるため、ブラシはそのタイルを置けません(私たちのTiledでの実行で確認)。

Wangセット/Terrain Set
タイルセットに付くTiledの地形ラベルのまとまり。1つのタイルセットに複数持てます。
Wangカラー
セット内の地形1つ(名前、色、任意のアイコンタイル、確率)。
Wang ID
タイルごとに上から時計回りに並ぶ8つの色番号。0は未設定。
Corner / Edge / Mixed
セットが使う位置:角、辺、または両方。

例:Nerulioが書くWang ID

順序:上、右上、右、右下、下、左下、左、左上
ブロブタイル N NE E SE S(マスク31)  wangid="1,1,1,1,1,0,0,0"   mixedセット
辺タイル N + S(縦の帯)              wangid="1,0,0,0,1,0,0,0"   edgeセット
角タイル NW + NE                      wangid="0,1,0,0,0,0,0,1"   cornerセット
孤立ブロブタイル                      wangid="0,0,0,0,0,0,0,0"   書かない
wangtileの数  ブロブ47 → 46、辺16 → 15、角16 → 15
タイルid = 行 × 列数 + 列   (cr31の8 × 6シート:マスク31は1行4列 → id 12)

サンプルマップも同じ完全一致のルールで塗ります。角セットは角の色が格子点に属するため、レイヤーに半タイル分マイナスのoffsetx/offsetyが入ります。

できること

  • 配置に合ったWangセット種別の.tsx(ブロブは混合、辺16は辺、角16・デュアルグリッドは角)。
  • sample.tmx:Tiledルールで描いたマップ。角セットは半タイルずらしたレイヤー。
  • Tiled 1.12.2の--export-tileset・--export-mapでの読み込みとtmxrasterizer(ピクセル一致)で確認。
  • 地形ブラシ自体は操作していません(WindowsではTiledのスクリプトがヘッドレスで動かないため)。

使い方

  1. タイルセットを入れて配置を適用。
  2. Tiledルールでテストマップを塗ってプレビュー。
  3. Tiledバンドルを書き出し。
  4. .tsxかsample.tmxをTiledで開く。

出力されるファイル

書き出しZIPのtiledフォルダーです。ファイル名は画像名に従います(ここではcave.png)。

ファイル用途
cave.tsxタイルセット:画像、タイルサイズ、余白、間隔、そして地形ごとの色と印付きタイルごとのwangtileを持つWangセット1つ(corner・edge・mixed)。設定した場合はタイルの確率も。
sample.tmxこのセットで描いた小さなマップ。自分で塗る前に動作を確認できます。
cave.pngタイルセット画像。相対パスで参照されます。
README.txtセットの種類、色の数、Wang IDの順序。

TiledでWangセットを使う

  1. tiledフォルダーを展開し、PNGを.tsxの隣に置きます(画像はファイル名で参照されます)。
  2. Tiledでsample.tmxを開くか、.tsxを開いて自分のマップで使います。
  3. ラベルを確認するには、タイルセットを開いてツールバーのTerrain Setsボタンを押します。各タイルに色の付いた角や辺が表示され、Patternsタブはまだタイルがない組み合わせを強調します。
  4. 地形モードを抜けてマップに戻り、Terrain Setsウィンドウでセットと地形を選んでTerrain Brush(T)で塗ります。Ctrlを押すと角や辺1つではなくタイル全体を、Shiftで直線を塗れます。
  5. 空のマップでは、マニュアルの助言どおり先に範囲を塗りつぶすかCtrlを押して、ブラシがつなげる隣を用意します。
  6. Godotへ持っていくなら、TiledのGodot 4エクスポーターでマップを書き出すか、地形を直接作ります。Godot 4のオートタイルを参照。

結果の確認

  • Terrain Setsモードで、孤立タイル以外のすべてのタイルに色が表示されるはずです。角16のセットなら、Patternsビューで空以外の15パターンがすべて暗く表示されます。
  • Ctrlを押しながら3 × 3の範囲を塗ります。縁がつながった異なるタイル9枚が出るはずです。
  • sample.tmxはStudioのテストマップをTiledルールで描いたものと同じに見えます。そのルールが空きと示したセルはTiledでも空のままです。

トラブルシューティング

症状考えられる原因確認方法対処
最初にブラシが何も塗らないマップが空で、セットに空への遷移がなく足がかりがないマニュアルが新しいマップでのこのケースを説明している先に範囲を塗りつぶすか、Ctrlを押してタイル全体を塗る
孤立した1セルが空のまま孤立タイルのWang IDがすべて0で、セットに含まれないTerrain Setsモードでそのタイルに色がない必要な場所にStamp Brushで手で置く
サンプルマップが他のレイヤーと半タイルずれる角セットのサンプルは−½タイルのレイヤーオフセットで格子点に描かれるレイヤーのプロパティのOffset X / Yデュアルグリッド風にするならオフセットを維持、そうでなければ消して自分のレイヤーに塗る
あちこちで違うタイルや継ぎ目が出るセットの種類が絵に合っていない(ブロブのシートをedgeセットにした等).tsxのwangsetのtype属性Studioで正しい配置を適用して書き出し直す
2つの地形が混ざらない2色を一緒に持つタイルがないPatternsビューに2色が混ざるパターンがない遷移タイルを描くか、ジェネレーターでAからBのタイルを生成
古いTiledで地形がまったく表示されないTiled 1.5以降の形式の地形情報は旧バージョンで読めない(マニュアルの警告)Help › About TiledTiledを更新

ほかの方法

方法こんなときに向いています
TiledのTerrain Setsモードで手作業で印を付ける(地形を選び、タイルの領域をクリック・ドラッグ)セットが小さい、配置が特殊、または公開配置で表せない複数の地形が1タイルにあるとき。
代わりにLDtkのオートレイヤールールを使う:LDtkのオートタイルルールIntGridで塗り、modulo・確率・反転で拡張できるルールが好みのとき。
Godotの地形を直接作る:Godot 4のオートタイル対象がGodotだけで、Godotの中で塗りたいとき。

エンジン別の書き出しと検証方法

「検証済み」は、実際のCC0アセットから書き出したファイルを本物のエンジン・ツールで読み込み、元データと比較したという意味です。読み込んでいない形式はそのように表示します。

書き出し先ファイル検証
Godot 4 TileSetPNG · nerulio-tileset.json · nerulio_tileset_import.gd検証済み Godot 4.7.2同梱のインポートスクリプトが地形ピアリングビット付きのTileSetを作成。set_cells_terrain_connectで塗ったマップが、9つのコーパスシートの全セルでStudioのプレビューと一致。
Tiled.tsx Wang set · sample.tmx検証済み Tiled 1.12.2Tiled自身の読み込みで全Wang IDが記述どおりに読まれ、サンプルマップはピクセル単位で一致。地形ブラシ自体は操作していません。
Unity 6 Rule Tilenerulio-ruletile.json · Editor/NerulioRuleTileImporter.cs検証済み Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3ブロブ・辺タイルセット:塗ったTilemapの全セルが予測どおりのスプライト。角/デュアルグリッドはUnityへ書き出しません。
LDtk.ldtk (1.5.3) · rules · sample level一部検証 LDtk 1.5.3 schema + loaderLDtkのJSONスキーマと公式ローダーで受理され、ルールを再実行すると書き出したタイルと一致。LDtkアプリでは未確認。

検証の根拠

タイルコーパスでピクセルだけから配置を判定:ブロブ47テンプレート4つとWangテンプレート2つは高信頼度、実在の64px洞窟タイルセットは中信頼度で全タイルのビットが正解。Godot 4.7.2は全テストセルをStudioの予測どおりに塗りました(ブロブセットごとに485/485、4地形のデュアルグリッド251/251)。Tiled 1.12.2は全Wang IDを読み戻し、Unity 6000.5はブロブ・辺セットの塗った全セルで一致。

制限

  • Terrain Brushそのものは私たちのチェックでは操作していません(WindowsではTiledのスクリプトがヘッドレスで動かないため)。ファイルの読み込みは検証済みです。
  • 反転・回転のバリエーション(Tile Transformations)は書き出しません。
  • 1回の書き出しにつきWangセットは1つです。
  • Tiledの地形ブラシ、LDtkアプリ、Godotエディターでの塗りは操作していません。検証はエンジンの読み込み機能とset_cells_terrain_connectで行いました。
  • Unityへはブロブ・辺タイルセットのみ。地形が複数あると、互いにつながらないRule Tileが複数になります。
  • アイソメトリック・六角タイル、アニメーションタイル、オクルージョン・ナビゲーションレイヤーは対象外です。
  • 既知の配置なしでビットを提案するには基準となる「塗りつぶし」タイルが必要です。辺だけの道テンプレートでは、そのタイルを選ぶまで推定を誤ることがあります。

バージョンと出典

Tiled 1.12.2自身のコマンドライン読み込み(--export-tileset、--export-map)で確認しました。全Wang IDが書いたとおりに戻り、全サンプルマップが正しいWangタイリングで、tmxrasterizerの描画は独立した描画とピクセル単位で一致しました。Wang IDの入れ替え、gidの変更、間隔+1ではこのチェックが失敗します。上のメニュー名はTiledの公式ドキュメントに基づきます。

参照した公式ドキュメント

よくある質問

Wangセットに孤立した「島」タイルがないのはなぜ?

TiledはIDがすべて0のWangタイルを捨てるため、単色ブロブセットの孤立タイルは書き込まれません。StudioのTiledルールはそのセルに印を付けます。

Phaserでサンプルマップを読めますか?

.tmxはTiledのマップです。Phaserはタイルセット埋め込みのTiled JSONを読むので、Tiledから書き出してください。

無料ですか?アカウントは必要ですか?

このページの機能はすべて無料で、アカウントなしで使えます。透かしや制限された書き出しはありません。

スプライトはアップロードされますか?

いいえ。Studioはこのブラウザのタブ内でデコード・パック・書き出しを行います。プロジェクトはブラウザ(IndexedDB)に自動保存され、.nerulioファイルとして保存できます。

Asepriteやエンジンのプラグインは必要ですか?

いいえ。.asepriteファイルはブラウザで読み書きします。エンジン別のバンドルには必要なものが入っています(Godotはインポート設定とシーン、UnityとGodotのタイルセットは小さなエディタースクリプト)。