跳至內容
返回文章列表
2026年10月3日
約 7 分鐘閱讀
Game Development

用 MagicaVoxel 和 Unity 製作體素遊戲資產

我如何把視覺參考轉化為模組化的體素美術、乾淨地匯出,並在 Unity 中組合成可遊玩的場景。
Read in English →
A medieval voxel house being built in MagicaVoxel

體素美術看起來簡單,因為每個形體都由方塊砌成。困難之處在於決定哪些方塊承載物件的輪廓、比例和個性。這篇教學以我的中世紀小屋研究為例:我由一張細小的等角參考圖開始,在 MagicaVoxel 中重建,並把它準備成可重用的 Unity 場景資產。

1. 把參考圖看成大形狀

放置細節之前,先把圖片分成幾個體塊:地面佔地、下層石砌樓層、上層木結構樓層、屋頂、入口和道具。決定一個能讓門窗保持一致的體素比例。我以門作為量度標準,因為它能即時告訴玩家建築物有多大。

不要描摹每一個像素。參考圖提供比例和氣氛;模型需要的,是在遊戲鏡頭下乾淨的輪廓。

2. 先砌出整座建築的大形

每種材質先用一種顏色,只砌出佔地、牆身和屋頂。經常轉動鏡頭。從參考角度看起來正確的房子,側面可能很弱,入口亦可能難以辨認。在所有視角都成立之前,保持大形可以隨時修改。

製作正式資產時,把重複的部分分拆成獨立物件:牆身、屋頂模組、窗戶、木桶和手推車。模組化組件可以減少建模時間,亦讓關卡設計師在 Unity 中有更多組合。

3. 限制配色

精簡的配色讓體素看起來是經過設計的物件,而不是視覺雜訊。我的小屋使用暖色批盪、深色木材、冷色屋瓦、石材,以及少量綠色點綴。每種材質有一個基本色、一個陰影色和一個高光色。明暗差距大,比幾十種近似的色調更有用。

4. 在會改變輪廓的地方加深度

把橫樑、窗框和屋簷向外推出一至兩個體素,門窗則向內凹入。這些細小的偏移會產生陰影,讓建築在不同光照下都清楚易讀。細節先花在入口、屋脊線和轉角上;平坦的牆面紋理可以保持低調。

5. 匯出到 Unity

先儲存原始的 .vox 檔案,再匯出 .obj 網格和材質貼圖。匯入時把 OBJ、MTL 和 PNG 放在一起。MagicaVoxel 的座標方向和軸心未必與場景吻合,所以應把匯入設定視為資產流程的一部分,而不是逐個物件人手修正。

  • 匯出前把模型放在接近原點的位置。
  • 整個項目保持一致的體素對 Unity 比例。
  • 使用描述清楚的物件和材質名稱。
  • 從匯出場景中刪除看不見的測試物件。

6. 建立 Unity prefab

  1. 把匯出的檔案匯入同一個資產資料夾。
  2. 在父 GameObject 上修正方向和比例。
  3. 使用銳利的材質:Point 濾鏡適合刻意呈現像素感的配色。
  4. 牆身和地台使用簡單的 Box Collider,而不是精細的 Mesh Collider。
  5. 按需要設定 Static 旗標,然後把整個物件儲存為 prefab。

如果建築物有室內空間,把屋頂和牆身分組。玩家進入時可以隱藏它們,鏡頭仍然好用,又不必維護兩個版本的資產。

7. 把它當成遊戲物件來測試

在小屋旁放一個標準身高的角色。檢查門口淨空、樓梯高度、鏡頭碰撞,以及互動點是否仍然看得見。以項目的真實光照測試模型,而不只是 MagicaVoxel 的渲染畫面。一張漂亮的渲染圖,在實際運作時仍可能出現漆黑的門口或雜亂的屋頂。

保留風格的優化

在能減少 draw call 的情況下合併靜態模組、重用同一張配色貼圖,並保持碰撞簡單。大型世界可以加入距離剔除或較簡單的遠景網格。優化應保留粗獷的輪廓;過度平滑通常會削弱體素風格。

這個小屋研究影響了 Expandica 所用的模組化資產流程。最重要的一課,是當比例、軸心、材質、碰撞和重用與模型同時設計時,體素美術才會真正可用於遊戲。

MagicaVoxel 中較小的農場參考圖及體素大形
較早的農場大形,用來測試比例和模組化道具。