低多邊形 3D 資產 — 草地貼圖、角色,以及怎麼做
自己做低多邊形 3D 資產
給 Unity 與 Roblox 用的免費低多邊形草地貼圖,還有怎麼生成低多邊形 3D 角色 — 附一個可以直接走進去看的低多邊形世界。
低多邊形 3D 資產是用刻意壓低的三角形預算建出來的網格,通常是平面著色的切面,加一張貼圖圖集。重點不是模型粗糙。重點是每一顆三角形都帶著看得見的形狀資訊,所以一叢灌木在地圖另一端看起來是灌木,玩家走到它面前時還是灌木。草、岩石、角色、道具都遵守同一條限制:先決定剪影,多邊形只花在剪影會變的地方。
這一頁從貼圖那端往外講低多邊形 3D 資產。你會拿到一張可以在 Unity、Roblox、Godot 裡平鋪的免費低多邊形草地貼圖、每個引擎真正會影響結果的匯入設定,以及把一段文字描述變成低多邊形 3D 角色的做法,不用再去翻素材包。這裡所有東西都跑在瀏覽器裡,頁面最後的世界是實際在跑的,所以你可以看資產在場景裡的樣子,而不是看縮圖。
免費低多邊形草地貼圖
草地貼圖要平鋪到看不出接縫,條件是相對的兩邊逐像素對得上。如果你的圖是 64x64,第 0 欄和第 63 欄在真正的圖案裡必須是相鄰的,而不是一模一樣。把最後一欄複製一份、而不是讓它接回開頭,會產生一條每張圖都重複的單像素直條,鋪在大平面上就變成格線般的瑕疵。同樣的規則適用於第 0 列和第 63 列。實務上你會用 65x65 作畫,跨過邊界畫,再裁成 64x64,這樣接合處在結構上就是連續的。
做低多邊形,草地貼圖的實用變化就三種。可平鋪貼圖會在大片地面或地形網格上重複。圖集把好幾種草況 — 短的、高的、乾的、帶陰影的 — 塞進同一張圖,讓單一材質靠位移 UV 就能切換,當你想要變化又不想多出 draw call 時這很關鍵。單張 64x64 是最省的選項,也是行動裝置上撐過壓縮表現最好的一種,因為每個四像素區塊在螢幕上覆蓋的面積更大,區塊瑕疵就看不見。
低多邊形世界裡的草葉幾乎不會只是一張貼圖。常見做法是交叉面片:兩片垂直的面片以 90 度交叉,各自貼上一張帶 alpha 透明通道的草叢貼圖。alpha 去背讓你不靠幾何就有草葉形狀。去背要硬 — 1-bit alpha — 因為重疊面片上的柔邊 alpha 排序會出錯,鏡頭一動就會看到一圈亮邊。
為什麼無接縫平鋪在遠處還是會壞掉
一張圖可以接縫完美,鋪在大面積上還是看起來不對,因為眼睛抓到的是重複的頻率,不是接縫。單張 64x64 拉過 100 公尺,就會以玩家看得出來的固定間隔重複。解法不是把貼圖做大。要嘛混入第二張不同尺度的貼圖,要嘛把低頻的顏色變化畫進地面網格的頂點色。
頂點色變化是比較便宜的答案,也符合低多邊形的美術方向。你保留一張小圖、一個材質、一個 draw call,然後以好幾公尺的尺度把地面網格一塊塊調暗調亮,把重複感打散。貼圖負責細節顆粒。頂點色負責大尺度的圖樣。
Mipmap 與壓縮
任何會以斜角或遠距離觀看的貼圖都要產生 mipmap,地面貼圖全都算。沒有 mipmap,玩家一移動就會閃爍。有了 mipmap,硬邊 alpha 去背需要一個特定設定:用 alpha testing,不要用 alpha blending,門檻設在 0.5 左右。低於這個值,mip 層會把去背糊成一團雲,草就變成面片周圍的一層霧。
在這個尺度下,壓縮比解析度重要。64x64 的圖用區塊壓縮仍然清楚,因為壓縮區塊佔整張圖的比例有意義,GPU 會把它還原到完整尺寸。512x512 的圖就算承載同樣的視覺資訊,記憶體更貴,換算到每個看得見的特徵上壓縮效率也更差。一張貼圖在 64x64 看起來沒問題,就出 64x64。
| 變體 | 典型尺寸 | 什麼時候用 | 匯入成本 |
|---|---|---|---|
| 可平鋪貼圖 | 64x64 或 128x128 | 大片地面、地形底層 | 一個材質、一個 draw call,平鋪乾淨 |
| 圖集 | 256x256 或 512x512 | 同一個材質裡放多種草況 | 每個實例都要換算 UV,記憶體佔用較大 |
| 單張 64x64 | 64x64 | 交叉面片草叢、行動裝置目標 | 壓縮起來最省,區塊瑕疵也藏得住 |
| alpha 去背草叢 | 64x64 含 8-bit alpha | 面片上的個別草葉剪影 | 需要硬邊 alpha 與正確的排序 |
Unity / Roblox / Godot 裡的草
每個引擎處理草地貼圖的方式不同,真正重要的匯入設定也就跟著不同。Unity 有地形草地系統,也有走著色器的細節系統;Roblox 讓你在 SurfaceGui 裡或 MeshPart 上放 Decal 或 Texture;Godot 有 MultiMeshInstance 做散布,材質則走著色器。你交給每個引擎的貼圖,都應該照它要放進去的那個位置來做。
調任何參數之前,先決定你的草是平面上的貼圖、面向鏡頭的 billboard,還是網格。billboard 最便宜,遠處的草叢可以用,但它會跟著鏡頭轉,硬邊 alpha 去背會讓那個旋轉在剪影上被看出來。網格草叢形狀固定、排序正確,但要花三角形。平面貼圖是中間路線,也是低多邊形風格最常見的選擇。
Unity
做交叉面片草叢時,匯入貼圖把 Texture Type 設成 Default,如果你用混色就把 Alpha Is Transparency 打開,可平鋪的地面則把 Wrap Mode 設成 Repeat。Generate Mip Maps 打開。如果你用硬邊去背,就把 Alpha Is Transparency 關掉,改用著色器的 alpha clip threshold,因為在 Unity 裡,重疊面片上的透明排序就是草地破圖最明顯的地方。
地形的地面層要把貼圖設成 Repeat 環繞模式並開啟 mipmap,然後檢查地形的細節密度與草地細節的繪製距離。細節距離低於大約 30 到 50 公尺時,玩家一移動就會看見草突然冒出來;把它調高到看不見切換,或改用距離淡出讓細節漸隱,而不是硬生生切掉。
Roblox
在 Roblox 裡,草地貼圖通常是零件上的 Texture 物件、SurfaceGui 裡的 Texture,或一個 Decal。明確指定面,並用 StudsPerTileU 與 StudsPerTileV 控制平鋪尺度,不要去縮放零件,因為縮放零件會連碰撞與物理行為一起改掉。一張 64x64 的圖要覆蓋大約 4 個 stud,就把 StudsPerTileU 與 StudsPerTileV 設成 4。
Roblox 上傳貼圖時會降低解析度,除非你上傳的尺寸本來就合適,平台還會轉成自己的內部格式。正方形、2 的次方尺寸上傳與平鋪的結果最可預測。如果你的草在遠處變成一塊單色,代表貼圖被取樣到細節已經被平均掉的 mip 層 — 把 StudsPerTile 調大讓這張圖在螢幕上實際變大,或再加一層低頻的顏色。
Godot
在 Godot 4 裡,地面材質通常是一個 StandardMaterial3D,草地貼圖放在 albedo 欄位,UV1 縮放設成平鋪,貼圖的匯入預設設成 Repeat。要散布草叢就用 MultiMeshInstance3D,一個 mesh 資源、一個材質,調整 multimesh 的實例數量,而不是每個草叢各自開一個節點。上千個各自成節點的草叢會先卡住場景樹,GPU 都還沒感覺。
硬邊 alpha 去背要把材質的透明度模式設成 Alpha Scissor 而不是 Alpha,scissor 門檻設在 0.5 左右。Alpha Scissor 讓草叢留在不透明通道裡,重疊面片之間就不會有深度排序問題。這是最常把一片看起來壞掉的草地變成乾淨草地的單一設定。
| 引擎 | 典型放置位置 | 最關鍵的設定 | 常見失誤 |
|---|---|---|---|
| Unity | 交叉面片上的地形細節或著色器 | 開啟 mipmap,alpha clip 門檻約 0.5 | 重疊面片用柔邊 alpha 混色會出現亮邊 |
| Roblox | 零件上的 Texture 物件或 SurfaceGui | 用 StudsPerTileU / StudsPerTileV 控制尺度 | 靠縮放零件來平鋪會弄壞碰撞 |
| Godot | StandardMaterial3D 的 albedo,草叢用 MultiMesh | 透明度模式設成 Alpha Scissor | 每個草叢各自開節點會卡住場景樹 |
| 三個引擎皆同 | 可平鋪的地面層 | 環繞模式設成 Repeat | 邊緣沒有接回去就會出現重複的條紋 |
生成低多邊形 3D 角色
Neta Studio 上的 3D game builder 吃一段文字描述,吐出來的是一個真的網格 — 塊狀切面、平面著色、三角形預算很小 — 不是一張畫好的角色圖。你寫下角色是什麼,系統就建出可以丟進場景、可以旋轉、可以從任何角度看的多邊形。這個差別就是本節的重點,也是你在一個提示上花時間之前該先確認的事。
描述角色的時候講形狀與角色定位,不要講氣氛。像「矮壯的石魔像,胸膛很寬、腿很短、一隻手臂特別大」這種提示,比「深海裡令人畏懼的守護者」有用。生成器要的是跟幾何有關的字:比例、身體部位、材質、手上拿的東西。顏色有幫助,但決定這個結果能不能用在低多邊形場景裡的是形狀。
01
先用一句話寫出角色的定位與剪影:戴兜帽的高瘦斥候、圓滾滾的重甲壯漢、沙漠裡的四足生物。
02
補上你在意的幾何細節:幾隻手腳、手裡拿什麼、頭型、有沒有披風或翅膀。
03
用白話講材質配色:骨頭、生鏽的鐵、乾草、深藍色布料。
04
生成之後先轉一轉再決定要不要用。側面和背面都要看剪影,不要只看正面。
05
要改就只改一個細節再重新生成,不要整段提示重寫,這樣你才分得出哪一句造成了哪個變化。
06
把角色放進世界裡,繞著它走一圈。單獨看很清楚的網格,放到熱鬧的背景前可能會失去剪影。
07
把結果匯出或參照進你目標的引擎,並在照著它做東西之前,先跟你現有的資產對一下尺度。
低多邊形角色 vs 2D 生成器
有一個特定的落差值得講清楚。有些工具宣稱能生成 3D 角色,交出來的卻是一張平面算圖 — 一張角色的圖,靠著色看起來有立體感,存成 PNG。那是「看起來像 3D 的東西」的 2D 影像。你不能轉它、不能換打光、也不能從它匯出網格。在低多邊形場景裡這個差別馬上就看得出來,因為平面著色的幾何會回應你場景的燈光,烤好的算圖不會。
測試很簡單,幾秒鐘就好。叫工具用兩個不同角度畫同一個角色。真正的 3D 生成器會回傳同一個網格的兩張一致視圖,因為那個網格真的存在。平面生成器會回傳兩張無關的圖,風格一樣但身體不一樣 — 肩膀形狀對不上、腰帶扣會移位、手上的東西會換手。跨視角的一致性就是證據。
第二個測試是你能拿出什麼。如果輸出是點陣圖,就沒有三角形數、沒有 UV 集、沒有網格可以匯出。如果輸出是幾何,它有多邊形預算,可以匯出成 GLB。在把流程圍著它建起來之前先問清楚,因為等你做完十二個角色才發現答案,代價很高。
- 跨視角一致性同一個對象生成正面、側面、背面。真正的幾何在三張圖裡剪影與手腳數量都一致;平面算圖的比例會在視角之間漂移。
- 可旋轉的輸出在視埠裡繞著結果轉一圈。如果光的方向改變而表面著色不變,你看的是一張烤好的圖,不是網格。
- 可匯出的幾何投入之前先確認有三角形數與 GLB 匯出。沒有網格就沒有匯出 — PNG 可以當貼圖,但它不能當角色。
- 在真實場景裡的尺度把結果放在已知資產旁邊。平面算圖通常會以任意大小出現、沒有定義原點,這種事你在實際搭建時才會發現。
在實際跑的低多邊形世界裡看它們
低多邊形資產從來不能單獨評斷。在影像編輯器裡好看的草地貼圖,到你場景的燈光下可能整片消失;在中性背景上剪影乾淨的角色,放到熱鬧的山坡前也可能不見。下面的世界在瀏覽器裡實際跑,用的就是上面講的那個生成器,所以你可以移動鏡頭、直接在場景裡看這些資產,而不是相信一張算圖。
我們自己的兩個世界可以當參考點。Mini World 是一個小型低多邊形場景,在正常遊玩距離下就看得見地面平鋪與植被密度 — 用來判斷一張 64x64 草地貼圖撐不撐得住,還是會變成一塊單純的顏色。The Cyclops' Island 比較大,可以看到低多邊形角色在遠處對上地形與道具時的樣子,這正是平面算圖過不了的測試。Agent Sprite Forge 則示範同一條資產流程用在 2D 角色精靈圖上的結果。
檢查自己的資產時,看的是切換距離,不是好看的截圖。把鏡頭往後退,退到草地細節開始糊掉,記下那個距離。如果地面在那個距離明顯換了一張臉,那就是 mip 或細節淡出要調,再高的貼圖解析度都救不了切換問題。

走進它所屬的那個世界
精靈圖是無處可站的角色。最後這一步是別人沒給的:把你剛做好的精靈表放進一個有人可以走來走去的世界 — 一座小島、一顆行星、一個下雨的街角。這個網站上的每一個世界,都是從一段文字描述做出來,發佈成一個可以直接玩的頁面。
常見問題
低多邊形草地貼圖是免費的嗎? +
是。這一頁講的草地貼圖可以免費用在 Unity、Roblox、Godot 以及其他引擎。沒有姓名標示要求,下載也不需要帳號。
怎麼讓草地貼圖平鋪起來沒有接縫? +
用比目標尺寸大一個像素的大小作畫,跨過邊界畫,讓圖案延續過去,再裁成目標尺寸。要做 64x64 就在 65x65 上做,再裁切。第 0 欄和第 63 欄在圖案裡必須是相鄰的,不能一模一樣,否則會出現重複的條紋。
在 Unity 和 Roblox 裡要怎麼設定草地貼圖? +
在 Unity,地面把 Wrap Mode 設成 Repeat 並開啟 mipmap;交叉面片草叢用接近 0.5 的 alpha clip 門檻,不要用 alpha 混色。在 Roblox,把貼圖放在零件或 SurfaceGui 上,用 StudsPerTileU 與 StudsPerTileV 控制平鋪,不要縮放零件,因為縮放會改變碰撞。
怎麼生成低多邊形 3D 角色? +
寫一段描述,講出剪影與跟幾何有關的細節 — 比例、手腳、手上拿的東西、材質 — 讓 3D game builder 產出網格。然後在視埠裡轉一轉,從幾個角度看過再照著它做其他東西。
低多邊形角色該有多少多邊形? +
該定的是一個預算,不是一個目標值:跟地形、道具一起出現在同一個畫面上的角色,抓幾百到兩千個三角形。決定性因素是減面之後剪影在遊玩距離還撐不撐得住。撐不住的話,問題在幾何,不在預算。
生成的角色可以匯出成 GLB 嗎? +
可以。生成的角色是以帶有多邊形預算的幾何形式輸出的,這正是能匯出 GLB 的原因。在把流程定下來之前先確認三角形數與匯出功能,因為平面影像生成器兩者都給不了。
低多邊形草地該用多大的貼圖? +
大部分情況用 64x64 或 128x128。小張的圖壓縮得更好、遠處的區塊瑕疵也藏得住,記憶體又省。只有當你需要在同一個材質裡放好幾種不同的草況時,才升到 256x256 或用圖集,而且決定之前先放進目標引擎裡看結果。
回到 3D game builder
31 個完成品的 3D 世界、遊戲與場景都在同一頁 — 每一個都能玩。