這篇文章介紹常見的Minecraft實體模型格式。
模型,也就是組成實體(生物)、方塊、物品的外觀的檔案,從簡單的方塊狀,到3A遊戲的複雜人物模型,都有可能套用到Minecraft,有些是Minecraft內建支援的,有些則要靠模組載入。
不清楚Box UV和Pre-face UV的請參考這篇: Blockbench技巧:Box UV vs Pre-face UV
目前模型格式有以下幾種:
Minecraft Java / Modded Entity
Optifine / CEM
基岩版JSON格式
OBJ
其他
1. Blockbench專案檔的運作方式#
File → Save Project可以儲存專案,專案副檔名是.bbmodel,儲存時除了儲存模型資料,還會儲材質、動畫檔案,因此這個專案檔可以分享給別人編輯。
使用Blockbench製作模型時請隨時保有一份.bbmodel檔案,輸出模型後仍要記得存檔,因為不是每個格式輸出後都還能重新匯入,例如Java版模型。
2. 如何轉換模型#
Blockbecnh會依照目前的專案格式來決定可以輸出什麼,例如基岩版專案就只有輸出成obj或json的選項,Modded Entity則會多出Java格式。
開啟現有的基岩模型,按下File → Convert Project → 選擇Modded Entity就可以轉成Java版模組實體專案,注意這個過程不可逆。
轉換之後,按下File → Project可以設定要對應的模型版本,還有分forge和fabric。
按下Export就可以匯出,接著將這個檔案貼到你實體的java檔案裡面。
3. 跨平台應以哪種格式製作模型?#
Blockbnech的專案可以任意轉換格式,但過程不可逆。
目前要做實體的模型,最穩固的格式是基岩版實體(.json),因為基岩版的json模型同時支援Box UV和Pre-face UV,後者方塊小於1像素仍可以畫上材質。
相較之下,Minecraft Java版原生模型是以Java寫成的,Java版模型(forge和fabric)只支援Box UV,因此若把使用pre-face UV的模型轉換過去,就會破圖。這個過程不可逆,唯一作法就是關掉Blockbench別存檔,免得模型毀掉。
4. 解決方案#
關於這些模型,以下是三種可以考慮的作法。
不要用pre-face UV#
最簡單的方式,做模型時盡量不要用方塊硬幹拼出圓形,這樣立方體理論上就不會小於1像素。
即使需要轉成Java格式,也不會發生破圖問題。
Geckolib#
要讓實體模型雙平台通用,Geckolib可以做到這點,還能做動作(動畫),這樣不論是基岩版還是Java版,都能共用同一個json格式的模型而不需轉檔。
Obj模型#
不推薦。
輸出的模型不限Minecraft,還可以用在其他遊戲。
但是很難做動畫,obj就只是個模型。此外,基岩版的obj檔案要在Add-On使用,還必須轉成含有mesh資訊的json檔案,這個過程也是不可逆的。