免費等角遊戲製作器 · 點擊移動

AI 等角遊戲製作器 — 在瀏覽器中打造可漫步的 2.5D 世界

打造你自己的 AI 等角遊戲製作器

描述一個等角世界,立刻遊玩 — 菱形網格、深度排序與點擊移動,全都在瀏覽器中。無需程式碼、無需匯出。免費。

✦遊戲
打造一個等角世界,主題是 一座漂浮的島嶼市集

AI 等角遊戲製作器會接收一段文字場景描述,並回傳一個可遊玩的 2.5D 世界:菱形圖塊網格、鎖定在 45 度偏航角的攝影機、由後往前排序的道具,以及一個你能用點擊派往任何地方的角色。Neta Studio 在瀏覽器中完成這一切。你輸入句子,組合器便會在網格上放置地形與道具,而你按下「遊玩」。無需安裝引擎、沒有匯出步驟、沒有建置流程。

那些通常會吃掉一整個週末的部分,都已經接好了:2:1 投影、深度排序,以及點擊移動背後由螢幕到圖塊的反向轉換。你真正掌控的是版面配置、圖塊集、角色、移動規則,以及攝影機能移動到多遠。

一句話 → 一個等角世界

組合器是第一個畫面。一個文字欄位、以圖塊為單位的地圖尺寸,以及圖塊尺寸。你像對關卡設計師描述那樣描述場景,生成,然後帶著一個已經組裝好的菱形網格世界進入編輯器。預設是 64 × 64 個圖塊、每個圖塊 64 × 32 像素,這會在一個正交攝影機內放入滿螢幕的世界,無須縮放。

回傳的是四個圖層。地面為每個圖塊儲存一個地形編號,並合併成單一網格,而不是每個圖塊一個網格。道具位於已登錄的占地範圍上:1×1 的木桶、3×3 的房屋、2×4 且必須緊鄰水岸的碼頭。實體與道具分開保存,因為它們會移動,需要尋路資料。光照與霧位於最上層,且不影響排序順序。

攝影機設定為 45 度偏航角,以及一個與 2:1 菱形完全吻合的俯仰角,也就是 atan(0.5),約 26.57 度,而不是大多數教學所說的 30 度。投影是正交的,因此沒有透視除法,地圖遠端邊緣的圖塊與近端邊緣的圖塊像素大小相同。在你按下「遊玩」之前,深度排序就已經啟動。

組合器替你決定的事

它會挑選地形分布、每個生物群落的道具密度,以及一組維持在單一圖集內的調色盤。更重要的是,它會登錄占地範圍,這正是日後維持遮蔽正確的關鍵。如果你要求一座港鎮,你會得到碼頭、木箱與水岸,但除非你明講,它不會知道碼頭必須緊鄰水域。

你仍需親手放置的部分

用筆刷重繪地形、從素材庫拖曳道具,並設定出生點。任何帶有規則的東西,例如必須橫跨河流的橋樑,都由你自己放置。組合器給你的是起始版面,而不是完成的關卡。

1

01

在組合器欄位中寫下場景描述。

2

02

設定地圖尺寸與圖塊尺寸。64×64 個圖塊、每塊 64×32 像素,是可行走地圖的預設值。

3

03

生成世界,並從固定等角攝影機觀看它。

4

04

重繪地形並移動道具。每個道具在放置時都會登錄它的占地範圍。

5

05

把角色放到一個可行走的圖塊上,然後按下「遊玩」來測試點擊移動。

The Cyclops' Island — 一個具備點擊移動與碰撞的等角像素藝術世界。

菱形網格與深度排序,已為你處理好

一個等角圖塊是一個旋轉 45 度、並壓縮至一半高度的正方形。當 tileW = 64、tileH = 32 時,世界到螢幕的轉換是 sx = (x - y) × 32、sy = (x + y) × 16。這就是整個投影。它並不是真正的等角投影,而是約 26.57 度的二測投影,這正是為什麼 2:1 菱形會落在整數像素上,而真正的 30 度等角網格不會。選擇 2:1 比例,是因為它對兩軸做等量縮短,並讓每個精靈圖都只需為單一攝影機角度繪製。

在此投影下的深度順序就是畫家演算法:先繪製 tileX + tileY 較小的物件。這在兩個物件共用同一條對角線之前都成立。位於 (5, 3) 的柵欄與位於 (4, 4) 的角色都會產生鍵值 8。排序回傳哪個順序,哪個就繪製在上層;而如果排序不穩定,順序會在影格之間翻轉,這一對物件就會在接縫處閃爍。第二個破綻是高度。以中心為錨點的精靈圖會依其中間像素排序,因此一個 96 像素高的燈籠會繪製在站在它底座前方的角色之上。錨點應該位於精靈圖的底部中央,也就是物件所占據的那個圖塊上。

第三個破綻是尺寸。一棟以單一物件排序、鍵值為 20 的 3×3 建築,會繪製在位於 (9, 12)、鍵值為 21 的角色之上,即使那個角色是站在建築左側那一列的前方。引擎會讀取已登錄的占地範圍,並把任何大於 1×1 的東西切成逐列的條帶,因此角色會從某一列的前方經過、再從下一列的後方經過。這正是長牆不能是單一精靈圖的原因。

  • 排序鍵主要鍵是 tileX + tileY。次要鍵是占地範圍邊緣,第三鍵是穩定的實體編號,因此相同的鍵永遠不會在影格之間對調。
  • 占地範圍登錄每個道具在放置時都會宣告它的圖塊占地範圍。除非你允許,否則一個 2×2 的道具不會與 1×1 的路徑圖塊重疊。
  • 逐列切分寬度超過一個圖塊的道具會被切成條帶,並逐條排序。多出幾次繪製呼叫,換來不會有走到後方的破圖。
  • 錨點位於腳部精靈圖以底部中央為軸心。中心軸心會讓任何高於一個圖塊的東西破壞遮蔽。
  • 合併地面地面圖塊會依地形編號合併或實例化。一張 4096 個圖塊的地圖,每種地形只要一次繪製呼叫,而不是 4096 次。

在真正的圖塊網格上點擊移動

這要從投影的反向運算開始。取得指標位置,減去攝影機原點與任何黑邊偏移,然後計算 tileX = (sx / 32 + sy / 16) / 2 與 tileY = (sy / 16 - sx / 32) / 2,再對兩者取整。如果第二項的正負號弄錯,角色就會走到菱形中心對面的鏡像圖塊。那就是你會花上一個下午的錯誤。

如果攝影機可以自由旋轉或移動,就不要快取那個反向運算。從攝影機穿過指標投射一條射線,與地平面相交,再用同樣的公式把世界命中點轉換成圖塊。射線投射版本只有幾行程式,且能安然度過每一次攝影機變動。

接著驗證。被點擊的圖塊可能帶有道具占地範圍、是水域、位於地圖之外,或無法抵達。把超出範圍的座標夾限回界內,檢查佔用網格,並以對角成本 1.414、且不得在兩個被阻擋的圖塊之間切角的方式,對 8 個相鄰格執行 A*。以每秒圖塊數而非每秒像素數移動,這樣當你改變圖塊尺寸時,速度才會保持不變。沿著一條平滑樣條曲線穿過圖塊中心,抵達半徑約 0.05 個圖塊,否則角色會在每個路徑點卡頓。

1

01

用反向轉換把指標轉成圖塊座標,或在攝影機旋轉時對地平面做射線投射。

2

02

夾限到地圖邊界,並查詢佔用網格中的道具、水域與被阻擋的地形。

3

03

從角色目前所在的圖塊到目標圖塊執行 A*。

4

04

以每秒圖塊數沿著路徑移動,使用平滑樣條曲線與一個小的抵達半徑。

5

05

在新的點擊時重新尋路,並取消舊路徑,而不是把兩者都排入佇列。

你能打造的等角類型

四種類型涵蓋了大多數等角專案,而它們的差異在於佔用規則與時間,而不是投影。城市建造遊戲建立在多重圖塊的占地範圍上,需要一套必須相連的道路網路,以及一個在放置前預覽占地範圍的建造模式。戰術遊戲是回合制,因此尋路會同時為多個單位執行,而範圍標示會直接繪製在菱形網格上。地牢探索遊戲使用小地圖與狹窄走廊,此時逐列牆面切分最為重要,因為攝影機從不移動。動作角色扮演遊戲是即時的,因此轉向、攻擊狀態與動畫混合,比尋路的優雅更為重要。

這四者完全相同的地方是:2:1 菱形、排序鍵、腳部錨點,以及點擊時的反向轉換。在專案中途切換類型,改變的是佔用規則與更新迴圈,而不是算繪器。

類型改變的是什麼維持不變的是什麼
城市建造多重圖塊占地範圍、道路連通性、建造預覽與旋轉菱形網格、排序鍵、點擊放置的反向轉換
戰術回合佇列、範圍與視線覆疊、逐單位的路徑預覽菱形網格、逐列切分、腳部錨點
地牢探索小地圖、牆面列、霧與視線2:1 投影、深度排序、圖塊到螢幕的公式
動作角色扮演即時轉向、攻擊狀態、動畫混合網格、佔用網格、以點擊移動作為觸控備援
Ashenmere — 同樣的 2.5D 菱形邏輯,以更具繪畫感的尺度呈現。

立即遊玩 — 就在瀏覽器中

這裡的每個世界都在瀏覽器中執行,無需安裝、無需匯出。場景圖是 Three.js,算繪器是 WebGL2,並以 WebGL1 作為備援,而地圖會以合併的地面幾何加上實例化的道具載入。你按下「遊玩」,就開始走動。分享這個世界,別人就能在他們自己的機器上、以同樣的 45 度偏航角在其中走動。

在手機上,同樣的點擊路徑會透過指標事件執行,因此輕觸就是點擊。輕觸目標是圖塊,這表示對一個單一圖塊道具稍微不精準的輕觸,仍會判定到正確的圖塊。在寬度小於 32 個圖塊的地圖上,雙指縮放預設為關閉,因為 2:1 菱形在手機寬度下已經足夠清晰。如果影格率下降,先減少道具數量再減少地圖尺寸;實例化的幫助比刪除地形更大。

Mini World

Mini World 是小地圖的案例:一座精巧的菱形島嶼、少量道具、一個角色,點擊移動就能橫越整座島。這是觀察地面合併與逐圖塊排序行為最快的方式,因為你一次就能看見整張地圖,糟糕的排序鍵無所遁形。

The Cyclops' Island

The Cyclops' Island 是遮蔽真正重要的案例:高大的道具、牆面列,以及一個會走到它們後方的角色。當角色經過建築轉角時仔細觀察。前方的條帶會繪製在角色之上,後方的條帶會繪製在角色之下,而角色在任何時候都不會穿透牆面。

Agent Sprite Forge

Agent Sprite Forge 會產生為等角角度繪製的角色圖集,軸心已經位於底部中央,影格高度也與你的圖塊高度相符。把攝影機保持在預設偏航角,一張圖集就足夠。一旦啟用攝影機旋轉,你就需要每個偏航階段各一張圖集,因為為 45 度繪製的精靈圖在 90 度下看起來會不對。

走進它所屬的世界

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

FAQ

我需要在這裡寫程式碼才能製作等角遊戲嗎? +

不用。你描述世界、重繪圖塊、放置道具與角色,然後按下「遊玩」。只有在自訂規則時才會用到腳本,例如拉動拉桿時會崩塌的橋樑。

當兩個物件位於同一列時,深度排序如何處理? +

主要鍵是 tileX + tileY,並以穩定的方式打破平手,因此相同的鍵永遠不會在影格之間對調。大於一個圖塊的道具會被切成逐列的條帶,因此角色可以從某一列的前方經過、再從下一列的後方經過。

我該用精靈圖角色還是 3D 網格? +

兩者都能算繪,但行為不同。精靈圖成本低、能維持 2:1 的外觀,而且會鎖定在繪製時的偏航角。3D 網格會隨攝影機自由旋轉,且因為骨骼蒙皮與光照,每個角色的成本更高。

攝影機可以旋轉嗎? +

可以,預設以 45 度的固定偏航階段旋轉。自由旋轉適用於 3D 道具,但會破壞精靈圖角色,因為它們需要每個偏航階段各一張圖集。排序鍵會依新的偏航角重新計算。

它在行動裝置上能用嗎? +

可以。輕觸會判定為點擊,尋路與排序執行同一條程式路徑,而畫布會縮放至視埠。在較舊的手機上請把道具數量控制在適中,並先減少道具再減少地圖尺寸。

我可以把世界匯出到其他引擎嗎? +

沒有匯出步驟。世界在瀏覽器中執行,並以連結分享。要在別處重建它,就意味著重新建立圖塊地圖,並重新匯出精靈圖集。

我該用多大的圖塊尺寸? +

64 × 32 像素是預設值,在桌機與手機上都清晰易讀。對於想在螢幕上容納更多圖塊的大型策略地圖,可降到 32 × 16;若想製作道具細節豐富的地牢探索遊戲,則可提高到 128 × 64。無論你選哪個,點擊運算都使用 tileW/2 與 tileH/2,因此只需在一個地方修改。

返回 3D 遊戲建構器

全部 31 個完成的 3D 世界、遊戲和場景都在同一頁面上——每一個都能實際遊玩。

平台: Neta Studio頁面: AI 等角遊戲製作器接著閱讀: /use-cases/en/isometric-pixel-art · /explore/tool/voxel-circle-generator · /explore/tool/tile-map-editor
×