本文へスキップ

オートタイル テスター · Godotのルールでテストマップを塗る

新しいテストマップは島・湖・半島が描かれた状態で始まり、オートタイルがすぐに見えます。Godot 4の地形マッチングを移植したルール、またはTiledの厳密なWangマッチで描くので、見たとおりにエンジンが配置します。

オートタイルのセットは、シート上ではそろって見えても実際のマップでは穴が空くことがあります。エンジンは、マップが生む隣接パターンごとに1枚ずつタイルを必要とするからです。テスターはテストマップを塗り、エンジンと同じ方法で解決します。Godot 4のset_cells_terrain_connectの移植(比較したすべてのセルでGodot 4.7.2と一致)か、Tiledの厳密なWangマッチです。エンジンが空けるセル、別のタイルで代用するセル、合わせられないセルに枠を付け、必要だったパターンを示します。タイルセットを診断するだけで絵は直さず、エンジン自身のエディターでもありません。

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

エンジンが違うタイルを置く、または何も置かない理由

足りない組み合わせ。47枚のセットで1枚足りないと、たいていのマップでは問題が出ず、そのタイルが要る形でだけ確実に失敗します。多くは湖の内側の角です。このときGodotはビットが最もよく合うタイルを置くかセルを空け、Tiledにはぴったりのタイルがなく、UnityはRule TileのDefault Spriteを描きます。

間違ったビット。配置の中で2枚が入れ替わっていたり、ビットを違う辺に塗っていたりすると、エンジンはビットに従います。ビットが求めるタイルを置くので、地面が続く場所に縁が見えます。

その形を描けないセット。9枚の3×3ボックスは辺だけを見て、辺の組み合わせ16通りのうち9通りしか扱えません。1マス幅の帯や端、孤立したマスには、構造上タイルがありません。

エンジンごとの決まり。TiledはWang IDがすべて0のタイルを捨てるため、単色ブロブセットの孤立タイルは書き込まれず、Tiledでは置けません。Godotのエディターは1ストロークずつ塗り、結果がストロークの順番で変わります。テスターは地形ごとに1回、行の順に塗った結果を表示します。スクリプトからset_cells_terrain_connectを呼ぶのと同じ方法です。

空き(Godotルール)
塗ったのに合うタイルがなく、エンジンが空けるセル。
誤り(Godotルール)
周りとビットが合わないタイルをエンジンが代わりに置いたセル。
すき間(Tiledルール)
隣が求めるWangの色とぴったり同じタイルがないセル。

例:湖に必要なタイル

最初のマップは湖のある島です。湖の右下の水マスから見て、斜め右下にある陸マスを取り上げます。

隣接             NW = 水、ほかの7マス = 陸
元のマスク       N1 + NE2 + E4 + SE8 + S16 + SW32 + W64 = 127
縮約後           127(NE・SE・SWは両側の辺がどちらも陸なので数える)
必要なタイル     内側の角「N E S W · NE SE SW」

同じ湖には253(NEが空き)、247(SEが空き)、223(SWが空き)も必要:角ごとに1枚
127がないセット  Godotルール → そのセルに枠(空きか誤り)   Tiledルール → すき間
対処             その1枚を描くかセットを生成すれば枠は消える

四角い湖は内側の角を4つとも求めるので、そのうち1枚でも欠けたセットは最初に描いた湖ですぐにわかります。最初のマップに湖がある理由です。

同じ状況で各エンジンがすること

マップ上の状況Godot 4(Godotルール)Tiled(Tiledルール)UnityのRule Tile
セットにその組み合わせがあるそのピアリングビットを持つタイルそのWang IDを持つタイル一致するタイリングルール
セットにその組み合わせがない最もよく合う代用タイル、または空きセル:誤り・空きとして表示ぴったりのタイルなし:すき間として表示Default Spriteを描く
孤立したマス、単色ブロブセット孤立タイル孤立タイルが書き込まれない(Wang IDがすべて0):表示される自分のルールで描く。ブロブセットはUnity 6で全セル一致
角(デュアルグリッド)セット通常のセル上のMatch Corners地形格子点上のタイル、半タイルずれたレイヤー書き出さない:Rule Tileはセルの上に描く
2つの地形が接する絵にあれば最もよく合う遷移タイルWangの色が隣と同じタイル地形ごとにRule Tileが1つ、地形間の遷移はなし
塗る順番エディターの結果はストロークの順で変わる。テスターは地形ごとに1回、行の順に塗る厳密なマッチなので順番に左右されない—

Godotルールはエンジンのマッチングの移植で、コーパスの全マップでGodot 4.7.2とセル単位で一致しました。Tiledルールは書き出したsample.tmxが使う厳密なWangの照合です(途中に遷移タイルを挟むことがあるTiledの対話的な地形ブラシは操作していません)。Unityの動作はUnity 6の検証結果によります。

できること

  • Godotルール:テストコーパスでGodot 4.7.2とセル単位で一致したset_cells_terrain_connectの移植。
  • Tiledルール:厳密なWangマッチ。角セットは半タイルずれた格子点が基準。
  • エンジンが空ける・別タイルに置き換えるセルは枠と一覧で表示。セルにカーソルを合わせると、どのタイルかと理由が見えます。
  • サイズ可変ブラシ、消しゴム、塗りつぶし、スポイト、ランダム塗り、タイルセット別のマップレイヤー。

使い方

  1. タイルセットを入れて配置を適用(またはビットを塗る)。
  2. Mでマップを開き、Pで塗り、Eで消し、Gで塗りつぶし。
  3. GodotルールとTiledルールを切り替えて比較。
  4. タイルセットの足りないタイルを直してから書き出し。

セットの準備ができたか

  • 最初の島で、GodotルールでもTiledルールでも枠の付いたセルがないこと(上で触れた孤立マスは除く)。
  • 難しい形をわざと塗ります。1マス、1マス幅の通路、角だけで接する2マス、2×2の塊、湖。そのあとランダム塗りを何度か。残った枠が直すべき所です。
  • チェックパネルが「完了」と表示し、マップ下の問題セル数が0であること。
  • エンジンで同じ形を一度塗り、タイルがテストマップと同じになること。

トラブルシューティング

症状考えられる原因確認方法対処
どの湖でも内側の角に枠が付く内側の角のタイル(マスク127・253・247・223)がないか、ビットが違う枠のセルにカーソルを合わせると必要なパターンが出る。チェックパネルにも同じマスクが半透明で出るそれらを描くか基本ブロックから生成。セットに入った時点で枠は消える
「誤り」のセル:陸が続くのにGodotが縁のあるタイルを置いた2枚が入れ替わっているか、ビットが1つ違う辺にあるカーソルを合わせると、置かれたタイルとそのビットが必要なパターンと並んで出るそのタイルのビット(3×3ビットエディター)かシートの並びを直す
Tiledルールでだけ孤立マスが表示されるTiledは単色ブロブセットの孤立タイル(Wang IDがすべて0)を捨てるGodotルールに切り替えると同じセルは問題なしTiledのマップでは孤立マスを避けるか、開いた辺に地形Bが入るA over Bのセットを作る
1マス幅の道や端が崩れるセットが9枚の3×3ボックス:辺の組み合わせ16通りのうち7通りは入れられないチェックパネル:辺の組み合わせが7つ不足辺タイル16枚かブロブ47枚のセットを使う。47枚のブロブを参照
Godotのエディターがテスターと違う塗り方をするエディターの塗りは経路に依存する:ストロークの順が違えば別のタイルになるその範囲をConnectモードの1ストロークで塗り直すか、スクリプトでset_cells_terrain_connectを呼ぶタイルセット側で直すものはない。差が問題ならその範囲を1ストロークで塗る。Godotで違うタイルになるを参照
Tiledルールで角セットが半タイルずれて見える角セットは格子点の上に置かれる:W × Hマスのマップに(W+1) × (H+1)枚Godotルールに切り替えるとタイルがセルの上に戻る正常。書き出したsample.tmxにも同じ半タイルのレイヤーオフセットが入る

ほかの方法

方法こんなときに向いています
GodotのTileMapエディター(Terrainsタブ)で直接塗るセットが小さく、Godotだけを使うとき。ストロークの順の影響も含めて、Godot自身の結果を間に何も挟まずに見られます。
Tiledの地形ブラシで塗るレベルをTiledで作るとき。ブラシは途中に遷移タイルを挟むこともありますが、ここの厳密マッチのTiledルールはそうしません。

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

「検証済み」は、実際の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はブロブ・辺セットの塗った全セルで一致。

制限

  • Godotエディターのストローク単位の塗りと、Tiledの対話的なブラシは再現しません。地形ごとに1回塗った結果を示します。
  • テストマップは最大128 × 128マスです。LDtkのルールは書き出しますが、マップ上でライブのルールとしては表示しません。
  • 絵がどこで足りないかを示すだけで、描きはしません(ジェネレーターは基本ブロックからセットを組み立てられます)。
  • Tiledの地形ブラシ、LDtkアプリ、Godotエディターでの塗りは操作していません。検証はエンジンの読み込み機能とset_cells_terrain_connectで行いました。
  • Unityへはブロブ・辺タイルセットのみ。地形が複数あると、互いにつながらないRule Tileが複数になります。
  • アイソメトリック・六角タイル、アニメーションタイル、オクルージョン・ナビゲーションレイヤーは対象外です。
  • 既知の配置なしでビットを提案するには基準となる「塗りつぶし」タイルが必要です。辺だけの道テンプレートでは、そのタイルを選ぶまで推定を誤ることがあります。

バージョンと出典

Nerulioの検証(docs/STUDIO-TILE.md、2026-09-23):Godotルールはコーパスの全マップの塗ったすべてのセルでGodot 4.7.2.stable.officialと一致し、不完全なセットや複数地形のセットでエンジンが選んだ結果は単体テストが再生します。Tiled 1.12.2はWang IDを書いたとおりに読み、sample.tmxをピクセル単位で同じに描画しました。Unity 6000.5.3f1はStudioの予測どおりのセルにDefault Spriteを描きました。エンジンのエディターでの動作はリンク先の公式ドキュメントに基づきます。

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

よくある質問

Godotが違うタイルを置くのはなぜ?

組み合わせが足りないと、Godotは最も近いタイルで代用します。テスターはそのセルを示し、足りない組み合わせを教えるので、描くべきタイルがわかります。

塗る順番で結果は変わりますか?

Godotのマッチングは順番に依存します。テスターは地形ごとに1回ずつ行順に塗った結果(スクリプトやエンジン検証と同じ方法)を表示します。

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

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

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

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

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

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