本文へスキップ

Godot タイルマップ 当たり判定 · アルファから自動作成

47枚のタイルに1枚ずつコリジョンを描くのは手間がかかり、1ピクセルずれるだけでキャラクターが継ぎ目に引っかかります。タイル作業画面は各タイルのアルファから形状を取り、ずれた点はドラッグで直せます。物理レイヤーはGodot自身が実行するインポートスクリプトが作ります。

タイルセットやオートタイルのシート(PNG)をドロップ
空のStudioを開く
ブラウザ内で処理し、ファイルはアップロードされません。
Studio のタイル作業画面:全タイルのアルファから衝突ポリゴンをトレースしたCC0のブロブ47タイルセット(16px)
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

できること

  • アルファの読み方は3通り。外形ポリゴンは不透明部分の縁をたどり、正確な矩形は不透明ピクセルだけを軸に沿った矩形で覆い、ボックスは全体を1つの矩形で囲みます。
  • 形状はタイルのピクセル単位で、整数にスナップ。点はドラッグで移動、辺をダブルクリックで追加、Alt+クリックで削除。1回の編集が1回の取り消し単位です。
  • 「すべてのタイルの形状を表示」でシート全体の当たり判定を重ねて表示。隣り合うタイルのすき間を書き出し前に見つけられます。
  • 書き出し時、手で直した形状はそのまま。触れていないタイルだけを、選んだ方式でアルファから作成。
  • nerulio_tileset_import.gdが物理レイヤーを1つ(コリジョンレイヤー1、マスク1)追加。Godotはタイルの中心から形状を測るので、半タイル分ずらして書き込みます。
  • Godot 4.7.2で作ったTileSetを読み戻し、全ポリゴンが点単位で一致:コーパスのブロブセットで49/49・48/48・47/47タイル、4地形のデュアルグリッドで80/80。

使い方

  1. タイルセットをドロップし、「このグリッドを使う」を押す。
  2. 配置を適用するか地形ビットを塗る(ビットのあるタイルだけが形状を持てます)。
  3. Cキーを押してタイルを選び、外形ポリゴン・正確な矩形・ボックスのどれかで作成し、ずれた点をドラッグで修正。
  4. 書き出し(Ctrl+E)でGodot 4を選び、未編集タイルに使う方式を決める。
  5. Godotでnerulio_tileset_import.gdをFile › Runで実行し、保存されたTileSetをTileMapLayerに設定。

方式ごとにGodotへ入るもの

方式書き出される形状穴向いているタイル
外形ポリゴンピクセルの境界をたどった外側の輪郭。不透明な塊ごとに1ポリゴン埋まる(外側の輪郭のみ)坂、丸い段差、不規則な岩
正確な矩形合わせると不透明ピクセルとぴったり一致する、軸に沿った数個の矩形開いたまますき間のあるタイル、L字、切り欠きのある足場
ボックス透明でないピクセル全体を囲む矩形1つ埋まる全面ブロック、木箱、軽い物理
編集した形状のみ手で直したポリゴンだけ。ほかのタイルは形状なし描いたとおり一部のタイルだけ当たればよいとき
なし物理レイヤーを作らない—装飾用のタイルセット

完全に不透明なタイルは、ボックスと正確な矩形ではタイルサイズの正方形1つになります。長い輪郭は、1タイルあたり256点以下になるまで簡略化されます。

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

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

制限

  • Tiledの地形ブラシ、LDtkアプリ、Godotエディターでの塗りは操作していません。検証はエンジンの読み込み機能とset_cells_terrain_connectで行いました。
  • Unityへはブロブ・辺タイルセットのみ。地形が複数あると、互いにつながらないRule Tileが複数になります。
  • アイソメトリック・六角タイル、アニメーションタイル、オクルージョン・ナビゲーションレイヤーは対象外です。
  • 既知の配置なしでビットを提案するには基準となる「塗りつぶし」タイルが必要です。辺だけの道テンプレートでは、そのタイルを選ぶまで推定を誤ることがあります。

よくある質問

キャラクターが床をすり抜けます。物理レイヤーは入っていますか?

インポートスクリプトは、形状を持つタイルが1枚でもあるときだけ物理レイヤーを追加し、コリジョンレイヤー1・マスク1に設定します。キャラクター側のコリジョンマスクにレイヤー1が含まれているか確認してください。別の番号を使うプロジェクトなら、インポート後にTileSetで変更します。

穴のあるタイルが、穴まで埋まった当たり判定になります

外形ポリゴンは外側の輪郭だけを残し、Godotはポリゴンの内側をすべて固体として扱うため、穴が埋まります。正確な矩形は不透明ピクセルだけを覆うので、穴は開いたままです。

すり抜け床やタイルごとのレイヤーもここで設定できますか?

いいえ。書き出すのは物理レイヤー1つとポリゴンだけです。一方通行の当たり判定、追加のレイヤー、物理マテリアルは、インポート後にGodotのTileSetエディターで設定してください。

UnityのタイルマップやTiled、LDtkにも当たり判定は入りますか?

いいえ、当たり判定はGodot向けだけです。UnityのRule Tile、Tiled、LDtkの書き出しにはタイルとルールだけが入り、形状は入りません。Unity側でのタイルの当たり判定は確認していません。

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

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

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

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

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

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