Tilesetter 替代方案 — 免費線上圖磚集產生器與地圖編輯器
自己做一個 Tilesetter 替代方案
Tilesetter 可以產生圖磚集,並把關卡匯出到 Unity 和 Godot — 但它是得付費的桌面應用程式。這裡有個免費的瀏覽器端替代方案,而且做出來的東西可以直接玩。
Tilesetter 用單一基底圖建立圖磚集,並把你拼好的關卡匯出到 Unity、Godot 和 GameMaker Studio 2。這個賣點很實在。擋住大家的是桌面端的交付方式:要安裝的應用程式、逐台機器授權、沒辦法在瀏覽器分頁裡跑。如果你正在找 Tilesetter 的替代方案,真正重要的只有兩個問題:圖磚集產生還能不能用,以及不開引擎能不能看到成果動起來。
Neta Studio 就是瀏覽器端的替代方案。起點一樣 — 一張基底圖變成對齊網格的圖磚集,馬上就能開始畫 — 但按播放時,關卡是以可遊玩的 Three.js 場景執行。不用安裝、不用專案檔來回搬、不用等引擎建置才知道平台跳躍能不能跨過三個圖磚寬的缺口。
Tilesetter 做得好的地方
Tilesetter 的核心功能是從一張小基底圖產生地形。你畫三到五個代表性圖磚 — 通常是中央填滿、直邊和外角 — 產生器推導出其餘的:內角、邊緣變體和填滿塊。手工繪製一整套 47 塊的地形集很枯燥又容易不一致;從基底圖推導可以讓轉角維持對齊。這是大家真正為它換工具的功能,而且它確實有效。
第二塊是關卡編輯。產生的圖磚集餵進具備自動圖磚行為的網格編輯器,所以拖一條地形線會產生相連的邊緣,而不是一排一模一樣的方塊。這是在工具層而非引擎程式碼裡做的自動圖磚。
第三塊是匯出。Tilesetter 直接寫入 Unity、Godot 和 GameMaker Studio 2 的專案格式,關卡資料進到引擎就是原生圖磚地圖,而不是一張還要手動重切的 PNG。在 Tilesetter 的工作流程裡,這確實是從一張圖到可遊玩引擎場景最短的路。
Tilesetter 對大多數人來說不足的地方
它是得安裝、得付費的桌面應用程式。授權條款和價格由廠商自訂且會變動,請直接看官方來源,不要相信比較頁。比價格更實際的限制是:如果你用 Chromebook、公司控管的工作筆電,或任何不能安裝軟體的機器,就跑不動。廠商並沒有描述任何瀏覽器版本。
沒有可遊玩的輸出。Tilesetter 給你一份關卡,但不給你跑起來的關卡。想知道跳躍弧線能不能過缺口、圖磚邊緣在你打算出貨的鏡頭距離下讀不讀得出來,你得匯出、開引擎、把圖磚地圖接進場景、按播放、然後看。每個設計問題都要一次來回。
匯出同時也是終點。改一個圖磚設計,整張表的尺寸跟著變;引擎重新匯入、圖集重新連結,任何以像素位移為鍵的圖磚參照都得重檢查。循環是:重產生、重匯出、重匯入、重驗證。可行,但回饋週期是以分鐘計,不是以秒計。
Tilesetter 對比 Neta Studio — 完整比較表
下面每一列 Tilesetter 都是根據它自己公開的產品說明寫的。我不知道數字的地方 — 價格、平台需求 — 我描述機制,不猜。
| 功能 | Tilesetter | Neta Studio |
|---|---|---|
| 輸入 | 一張包含幾個代表性圖磚的基底圖;產生器從中推導出完整地形集 | 一張基底圖,或在 Agent Sprite Forge 產生的精靈表;網格工具把它切成圖磚 |
| 輸出 | 圖磚集素材,加上寫入引擎專案格式的關卡資料 | 一個在瀏覽器裡馬上能玩的關卡,外加可下載的圖磚集 PNG 和圖磚索引清單 |
| 圖磚集產生 | 從一張小基底圖推導地形變體 — 邊、角、填滿 | 把基底圖切成對齊網格的一張表,產生地形變體,並在儲存格大小無法整除圖片時回報餘數 |
| 關卡編輯 | 在桌面編輯器裡以自動圖磚行為做網格繪製 | 在瀏覽器裡、同一張表上做網格繪製,含圖層、碰撞旗標與物件放置 |
| 匯出 | Unity、Godot 與 GameMaker Studio 2 的專案輸出 | PNG 圖磚圖集加上 JSON 圖磚索引,用你自己的設定匯入 Unity、Godot 或 GameMaker |
| 可遊玩結果 | Tilesetter 內部沒有 — 關卡要等你在引擎裡建好才會跑 | 在瀏覽器按播放;關卡以 3D 場景在 3D 遊戲建構器裡執行 |
| 價格 | 由廠商自訂的付費桌面授權 | 在瀏覽器裡免費製作與遊玩 |
用一張基底圖產生完整圖磚集(即時示範)
這一節的產生器做的事,正是 Tilesetter 最為人知的那一件:吃一張基底圖,回傳一份對齊網格、馬上能拿來畫的圖磚集。丟進 PNG,把儲存格大小設成 16、32 或 48 像素,工具就把它切成表加上圖磚索引。不用安裝、不用授權、不用先開一個引擎專案。
第一個會壞掉的地方是儲存格大小不整除圖片。一張 1023 像素寬的表用 32 像素儲存格去切,得到 31 個完整欄加一個 31 像素的欄;最後那一欄會出現接縫,因為 GPU 取樣到了隔壁的圖磚。開始畫之前先確認寬高都能整除。工具會回報餘數而不是默默四捨五入,這就是重點。
第二個失敗點是濾鏡。用線性濾鏡取樣整張表,相鄰圖磚會互相平均,每個邊緣都留一圈一像素的光暈。兩種修法:在引擎裡把材質濾鏡設成 nearest,或匯出時把每個圖磚向外擴張 2 像素,讓邊界像素往外重複。擴張比較保險,因為它能撐過那種有人忘了設濾鏡的專案。
網格乾淨之後,畫起來就是即時的。圖層、碰撞旗標和物件放置都在同一個網格上,播放模式會把結果當成 Three.js 場景跑起來。示範世界 The Cyclops' Island 和 Mini World 就是這樣做的,想看這個網格能撐多大規模的關卡可以參考。
- 精確網格切割寬與高除以儲存格大小。有餘數會回報,而不是被吸進一個壞掉的最後一欄。
- 邊緣擴張可選的每邊 2 像素出血,讓最近鄰濾鏡取樣永遠不會吃到隔壁圖磚的像素。
- 圖磚索引清單一份 JSON,把儲存格座標映射到數字圖磚 ID,引擎程式碼就能用索引而非像素位移來取圖磚。
- 地形變體產生從少量手繪圖磚推導出邊、角與填滿變體,外角維持一致。
- 同一網格上的精靈來源Agent Sprite Forge 產出的精靈對齊同一個儲存格大小,角色與道具美術可以直接放上網格,不用重新縮放。

匯出到 Unity、Godot 與 GameMaker — 三家並排看
圖磚集的工作通常是在引擎匯入這一步搞丟的。表沒問題,是設定錯了。每個引擎要的數字都不一樣,出錯的樣子也各不相同。
Unity
把 Texture Type 設成 Sprite (2D and UI)、Sprite Mode 設成 Multiple、Filter Mode 設成 Point,並關掉 Generate Mip Maps。像素美術的 Compression 應該是 None。然後打開 Sprite Editor,用 Slice、Grid By Cell Size,儲存格大小對上你的圖磚 — 16、32 或 48 像素。
最經典的失敗是 Pixels Per Unit。用 32 像素圖磚卻留在預設 100,每個圖磚就變成 0.32 世界單位寬;如果你的圖磚地圖網格假設一格 1 單位,每一列邊界都會出現看得見的縫或重疊。把 Pixels Per Unit 設成圖磚的像素尺寸,或把圖磚地圖的儲存格大小設成它的倒數。另一個常被設錯的是 pivot:俯視圖用 Center,橫向捲軸、圖磚要對齊地面線的用 Bottom Left。
Godot
建一個 TileSet 資源,Tile Size 對上你的儲存格,加上指向那張表的 TileSetAtlasSource,如果表有留邊就明確設定 Margin 和 Separation,不要靠自動偵測。Godot 4 裡可以選擇從材質的非透明區域填滿圖磚,省下一輪很慢的手工。繪製是在 TileMapLayer 節點上進行。
一個常讓人栽跟頭的移轉重點:Godot 4 用基於 peering bits 的地形集,取代了 Godot 3 的自動圖磚位元遮罩系統。為 Godot 3 自動圖磚產生的表,匯入 Godot 4 只會是普通圖磚 — 像素沒問題,地形接線沒了。你要重建地形集,不是重新匯出圖片。另外檢查 Rendering > Textures > Canvas Textures > Default Texture Filter;如果是 Linear,不管表裡是什麼,你的像素美術都會有光暈。
GameMaker Studio 2
GameMaker 要的精靈,影格大小要等於你的圖磚大小,然後再從那個精靈建立 Tile Set 資源。硬限制是整除:精靈寬 130 像素、圖磚大小 32,圖磚集就會被拒絕。把表裁切或擴張到尺寸是完全的倍數。圖磚集的 Origin 是左上,繪製發生在房間編輯器的圖磚圖層上,所以在這裡圖層順序比其他兩個引擎更重要。
如果你的表在圖磚之間有留邊,GameMaker 不會從精靈推斷出來。要嘛為這個目標匯出無留邊的表,要嘛在建立圖磚集之前先把有留邊的表拆成個別影格。
如何在 5 分鐘內從 Tilesetter 換過來
你不需要重畫任何東西。圖磚集就是一張 PNG,關卡就是指向那張 PNG 的一格索引。兩者在搬移過程中都活著。唯一活不下來的是專案格式匯出,因為這條流程裡沒有中立交換格式 — 請預期是重畫關卡,而不是轉檔。
單一畫面大小的房間,這是幾分鐘的拖曳。大張多層地圖是一個下午,但還是比從頭重建一張表快。
01
把你已經從 Tilesetter 匯出的每一張圖磚集 PNG 留著。沒有東西需要重新產生 — 圖本身就是素材。
02
量出圖磚間距。把表的寬度除以你數到的欄數;如果不是整數,這張表有留邊,你得分別輸入 margin 和 separation,而不是單一儲存格大小。
03
把 PNG 載進瀏覽器網格,設定儲存格大小與留邊。在畫下第一格之前,先確認切割參考線落在圖磚邊界上 — 一像素的偏移會在大張地圖上累積。
04
在瀏覽器網格上重建關卡。一層一層重畫,然後設碰撞旗標。地圖大的話,先用一種填滿圖磚把版面鋪出來,之後再細修。
05
在瀏覽器按播放。版面問題在這裡修,這裡的循環是秒級,而不是等引擎建置完之後。
06
匯出圖集和圖磚索引,然後沿用你已經熟的引擎匯入設定:Unity 的 Pixels Per Unit 和 Grid By Cell Size、Godot 的 Tile Size 和 atlas source、GameMaker 的精靈影格大小和 tile set。
走進它所屬的那個世界
精靈是一個無處可站的角色。最後一步是別人沒給的:把你剛做好的表放進一個有人能走動的世界 — 一座小島、一顆星球、一個下著雨的街角。這個網站上的每個世界都是從一段文字描述做出來,然後發布成一個能玩的頁面。
常見問題
Tilesetter 免費嗎? +
不。它是付費桌面應用程式,授權條款由廠商自訂,所以請直接查官方目前價格,不要看比較頁。Neta Studio 的瀏覽器工具則是可以免費製作與遊玩。
Tilesetter 有瀏覽器版本嗎? +
廠商把 Tilesetter 描述成要安裝的桌面應用程式,那份描述裡沒有瀏覽器版本。瀏覽器端的替代方案就是本頁的圖磚集產生器和網格編輯器,開個分頁就能跑,不用安裝。
我可以匯出到 Unity 嗎? +
你匯出 PNG 圖集和 JSON 圖磚索引,再用 Texture Type Sprite、Sprite Mode Multiple、Filter Mode Point、Slice By Cell Size,以及等於圖磚像素尺寸的 Pixels Per Unit 匯入 Unity。這跟 Tilesetter 的表會走的是同一條匯入路徑,只差專案格式那一步。
我需要安裝任何東西嗎? +
不用。切割、地形產生和網格繪製全都在瀏覽器裡跑。播放模式需要支援 WebGL2 的瀏覽器;編輯那半邊不需要。
我可以用自己的基底圖嗎? +
可以。任何 PNG 都行,只要寬高能被你選的儲存格大小整除。不能整除時,工具會回報餘數,讓你事先裁切或補留邊,而不是之後才發現某一欄歪掉。
那我現有的關卡呢? +
Tilesetter 把關卡資料寫進引擎專案格式,所以沒有中立檔案可以轉。實務上就是留著圖磚集 PNG,在瀏覽器網格上重畫關卡 — 單一房間很快,大張多層地圖一個下午。
回到 3D 遊戲建構器
31 個完成的 3D 世界、遊戲與場景全都在同一頁 — 每一個都能玩。