Tilesetter 替代方案 · 瀏覽器運作,免費

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 欄位,都是依據它自己對產品的公開說明撰寫。凡是我不知道的數字 —— 價格、平台需求 —— 我一律描述其運作機制,而不憑空猜測。

能力TilesetterNeta Studio
輸入一張包含數個具代表性圖磚的基礎圖像;產生器會從中推導出完整地形組一張基礎圖像,或在 Agent Sprite Forge 中產生的精靈圖集;網格工具會將其切分成圖磚
輸出圖磚集素材,加上寫入引擎專案格式的關卡資料一個可立即在瀏覽器中遊玩的關卡,外加一個可下載、附有圖磚索引清單的圖磚集 PNG
圖磚集產生從一張小型基礎圖像推導出地形變化 —— 邊緣、轉角、填滿將基礎圖像切分成對齊網格的圖表,產生地形變化,並在儲存格大小無法整除圖像時回報餘數
關卡建構在桌面編輯器中以自動圖磚行為進行網格塗繪在瀏覽器中於同一張圖表上進行網格塗繪,具備圖層、碰撞標記與物件放置
匯出Unity、Godot 與 GameMaker Studio 2 的專案輸出PNG 圖磚圖集加上 JSON 圖磚索引,以你自己的設定匯入 Unity、Godot 或 GameMaker
可遊玩成果在 Tilesetter 內沒有 —— 關卡要等你在引擎中建置後才能遊玩在瀏覽器中按下播放;關卡會在 3D 遊戲建構器中以 3D 場景運行
價格由供應商決定的付費桌面授權在瀏覽器中免費建構與遊玩
Agent Sprite Forge —— 在瀏覽器中從一張基礎圖像產生完整圖表。

從一張基礎圖像產生完整圖磚集(即時示範)

本節的產生器做的是 Tilesetter 最為人所知的那一件事:它取用一張基礎圖像,回傳一組可立即塗繪、對齊網格的圖磚集。放入一張 PNG,將儲存格大小設為 16、32 或 48 像素,工具就會把它切分成一張圖表加上一份圖磚索引。不必安裝、不必授權,也不必先建立引擎專案。

第一個會出問題的地方,是無法整除圖像的儲存格大小。一張 1023 像素寬的圖表若指定 32 像素的儲存格,會得到 31 個完整欄與一個 31 像素的欄;最後那一欄會因為 GPU 取樣到相鄰圖磚而出現接縫。在動手塗繪之前,先確認寬與高都能整除。工具會回報餘數,而不是默默四捨五入,這正是重點所在。

第二個失誤是篩選。以線性篩選取樣圖表時,相鄰圖磚會彼此平均,導致每個邊緣都留下一像素的光暈。兩種修正方式:在引擎中將紋理篩選設為最近鄰,或在匯出時將每個圖磚向外擴張 2 像素,讓邊界像素向外重複。外擴較安全,因為即使專案中有人忘了篩選設定,它依然有效。

網格乾淨之後,塗繪就很即時。圖層、碰撞標記與物件放置全都在同一個網格上,而遊玩模式會將成果以 Three.js 場景運行。如果你想看看這個網格能支撐多大規模的關卡,範例世界 The Cyclops' Island 與 Mini World 就是這樣打造的。

  • 精準網格切分寬與高都會除以儲存格大小。任何餘數都會被回報,而不是被吸收進一個破損的最終欄位。
  • 邊緣外擴每個圖磚周圍可選擇性進行 2 像素出血,讓最近鄰篩選取樣永遠不會取到相鄰圖磚的像素。
  • 圖磚索引清單一份從儲存格座標對應到數字圖磚 ID 的 JSON 對照表,讓引擎程式碼以索引、而非像素位移來指定圖磚。
  • 地形變化產生從少量手繪圖磚推導出邊緣、轉角與填滿的變化,並保持外角一致。
  • 同一網格中的精靈圖來源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,圖磚集就會被拒絕。請裁切或外擴圖表,直到尺寸正好是整數倍。圖磚集的原點是左上角,而塗繪發生在房間編輯器中的圖磚圖層,因此這裡的圖層順序比其他兩個引擎更重要。

如果你的圖表在圖磚之間有留白,GameMaker 不會從精靈圖推斷出來。請為這個目標匯出不帶留白的圖表,或在建立圖磚集之前,把帶留白的圖表拆成個別影格。

而且你用它所塗繪的關卡,不開啟引擎就能遊玩。

如何在 5 分鐘內從 Tilesetter 轉換過來

你不必重繪任何東西。圖磚集是一張 PNG,而關卡是一格格指向該 PNG 的索引。兩者都能安然度過轉換。唯一無法延續的是專案格式匯出,因為這個工作流程沒有中立的交換格式 —— 請預期要重繪關卡,而不是轉換它。

對單一畫面的房間來說,這只是幾分鐘的拖曳。對大型多層地圖而言,這是一個下午,但仍然比重頭重建一張圖表來得省時。

1

01

保留你已經從 Tilesetter 匯出的每一張圖磚集 PNG。沒有任何東西需要重新產生 —— 圖像本身就是素材。

2

02

測量圖磚間距。將圖表寬度除以你數出的欄數;如果結果不是整數,代表圖表有留白,你必須分別輸入邊距與間距,而非單一儲存格大小。

3

03

將 PNG 載入瀏覽器網格,設定儲存格大小與留白。在塗繪任何一格之前,先確認切分參考線落在圖磚邊界上 —— 一像素的偏移會在寬闊的地圖上不斷累積。

4

04

在瀏覽器網格上重建關卡。逐層重繪,然後設定碰撞標記。如果地圖很大,先用單一填滿圖磚排出配置,再處理細節。

5

05

在瀏覽器中按下播放。在這裡修正配置問題,此時循環只需幾秒,而不是等到引擎建置之後。

6

06

匯出圖集與圖磚索引,然後沿用你已經熟悉的引擎匯入設定:Unity 的 Pixels Per Unit 與 Grid By Cell Size,Godot 的 Tile Size 與圖集來源,GameMaker 的精靈圖影格大小與圖磚集。

走進它所屬的世界

精靈圖是一個無處可站的角色。最後這一步是別人都不提供的:把你剛建好的圖表放進一個有人能四處走動的世界 —— 一座小島、一顆行星、一個下雨的街角。這個網站上的每個世界,都是由一段文字描述製作而成,並發布成一個可以遊玩的頁面。

FAQ

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 世界、遊戲與場景都在同一頁上 —— 每一個都可遊玩。

平台:Neta Studio頁面:Tilesetter 替代方案接著讀:/explore/tool/ai-tileset-generator · /explore/tool/tile-map-editor · /app/free-tilesets
×