Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
可用 3D 格式
Godot 具備彈性且可設定的 3D 資源匯入器。
Godot 以 場景 來作業。這表示,可以將您慣用的 3D DCC 中整個場景匯入轉換為非常相近的結果。
Godot 支援下列 3D 場景檔案格式 :
glTF 2.0(推薦):Godot 支援純文字(
.gltf)與二進位(.glb)兩種格式。.blend(Blender)。這透過呼叫 Blender 以透明的方式匯出為 glTF 來實現 (需要安裝 Blender)。DAE(COLLADA),較舊的格式,仍完整支援。
OBJ(Wavefront)格式及其 MTL 材質檔。Godot 支援,但格式功能有限(不支援 pivot、骨架、動畫、UV2、PBR 材質等)。
FBX,透過 ufbx 函式庫支援。先前的匯入流程使用 FBX2glTF 整合,需安裝連結專有 FBX SDK 的外部程式。因此建議使用預設的 ufbx 方法,或依你的工作流程選用上方列出的其他格式。
只需要將場景檔與紋理一起複製到專案儲存庫中,Godot 就會完整匯入。
在 Blender 中匯出 glTF 2.0 檔案
有兩種方法可以為伺服器匯出專案:
匯出為 glTF 二進位檔(
.glb)。匯出為 glTF 純文字(
.gltf)、外部二進位檔(.bin)及紋理檔案。
glTF 二進位檔(.glb)體積最小,包含所有網格與 Blender 設定好的紋理,匯入 Godot 時紋理會內嵌在材質資源內。
分開匯出 glTF 紋理的理由主要有兩個:一、方便用純文字檔追蹤場景內容改動(適合用版本控制);二、需要讓紋理檔獨立於場景檔外存放。若沒有上述需求,直接用二進位 glb 最方便。
glTF 匯入流程會先將檔案資料載入 GLTFState 類別,再以此資料建立 Godot 場景。若於執行階段匯入,該場景可直接加到場景樹。匯出則是反向操作,將 Godot 場景轉為 GLTFState,再輸出為 glTF 檔。
編輯器匯入 glTF 時會多兩步:產生 Godot 場景後,ResourceImporterScene 會依據匯入面板與進階匯入設定對話框套用其他設定,最後存為 Godot 場景檔,成為遊戲執行/匯出時實際用到的場景。
警告
若模型包含 blend shape(亦稱「shape key」、「morph target」),請在 glTF 匯出設定中將 Data > Armature > Export Deformation Bones Only 設為 Enabled。
無論如何匯出不變形的骨骼都會導致不正確的著色。
備註
Blender 匯出的 glTF 檔不包含放射紋理 (Emissive Texture)。若模型使用放射紋理,則必須分開匯入。
預設情況下,Blender 在材質上禁用背面剔除,匯出材質時配對其在 Blender 中的算繪方式。這意味著 Godot 中的材質會將其剔除模式設定為 Disabled。這會降低性能,因為背面將被算繪,即使它們不可見。要解決此問題,請在 Blender 的材質分頁中啟用 Backface Culling ,然後再次將場景匯出為 glTF。
直接在 Godot 中匯入 .blend 檔案
備註
此功能需 Blender 3.0 以上,推薦 3.5 以上(glTF 匯出更穩定)。
強烈建議 使用從 blender.org 官方網站下載的 Blender,請勿用發行版套件或 Flatpak,避免因函式庫版本不同、沙盒限制等導致匯入失敗或不相容。
編輯器可以透過以透明的方式呼叫 Blender 的 glTF 匯出功能,直接匯入 .blend 檔案。
這可讓您更快地迭代 3D 場景,因為您可以將場景儲存在 Blender 中,按 alt-tab 返回 Godot,然後立即查看您的變更。使用版本控制時,這也更有效,因為您不再需要將匯出的 glTF 檔案的副本提交到版本控制。
若要使用 .blend 匯入,您必須在開啟 Godot 編輯器之前安裝 Blender (如果要開啟一個已包含 .blend 檔案的專案)。如果您將 Blender 安裝在其預設位置,Godot 應該能夠自動偵測其路徑。如果情況不是這樣,請在 編輯器設定 中,於 檔案系統 > 匯入 > Blender > Blender 路徑 設定 Blender 執行檔的路徑。
如果您將 .blend 檔案保留在專案資料夾中,但不希望 Godot 匯入它們,請在進階專案設定中停用 檔案系統 > 匯入 > Blender > 啟用。
.blend 匯入流程會先轉為 glTF,因此會用到 Godot 的 glTF 匯入程式碼。本質上 .blend 匯入和 glTF 流程一致,只是多了開頭的轉檔步驟。
備註
若團隊專案中要用 .blend 原檔,請確保每位成員本機都有安裝 Blender。雖然 Blender 免費但會增加開發摩擦;此外,Android 與 Web 版 Godot 無法用 .blend 匯入,因為這些平台不能呼叫外部程式。
如果這有問題,請考慮使用從 Blender 匯出的 glTF 場景。
在 Blender 中匯出 DAE 檔
Blender 內建 COLLADA 支援,但用起來不是很適合遊戲引擎,所以也不建議直接拿來用。
若場景較為複雜或包含動畫,強烈建議改用 glTF 格式。
於 Godot 3.0+ 匯入素材
OBJ 是最簡單的 3D 格式之一,因此 Godot 應該能夠成功匯入大多數 OBJ 檔案。然而,OBJ 也是一種非常有限的格式:它不支援蒙皮、動畫、UV2 或 PBR 材質。
在 Godot 中使用 OBJ 網格有 2 種方式:
直接將它們載入到 MeshInstance3D 節點或任何其他需要網格的屬性(例如 GPUParticles3D)中。這是預設模式。
在匯入塢中將其匯入模式變更為 OBJ 作為場景,然後重新啟動編輯器。這允許您使用與 glTF 或 Collada 場景相同的匯入選項,例如在匯入時展開 UV2(對於 使用光照貼圖全域光照)。
備註
Blender 3.4 及更新版本可以將 RGB 頂點顏色匯出儲存在 OBJ 檔案中 (這是 OBJ 格式的非標準擴充)。Godot 可以匯入那些頂點顏色,但它們將不會顯示在材質上,除非您啟用材質上的 頂點顏色 > 用作反照率。
OBJ 網格的頂點顏色在匯入後會保留其原始色彩空間(sRGB/線性),但其亮度被限制為 1.0(它們不能過亮)。
於 Godot 3.0+ 匯入素材
預設下,Godot 4.3 及以後版本加入專案的 FBX 檔案都會使用 ufbx 匯入法。若在較舊版本(如 4.2)專案中加入的 FBX,則仍會用 FBX2glTF 匯入,除非你於匯入設定中手動改為 ufbx。
如果您將 .fbx 檔案保留在專案資料夾中,但不希望 Godot 匯入它們,請在進階專案設定中停用 檔案系統 > 匯入 > FBX > 啟用。
若你確實有特殊需求需用舊版 FBX2glTF 工作流程,請下載 FBX2glTF 執行檔,並於編輯器設定的 Filesystem > Import > FBX > FBX2glTFPath 指定路徑
FBX2glTF 匯入流程會先轉為 glTF,因此最終仍會用 Godot 的 glTF 匯入程式。也就是說,FBX 匯入流程和 glTF 匯入相同,只是多一道轉檔。
也參考
完整的 FBX2glTF 設定流程請參考 Godot 官方網站的「FBX 匯入」頁面:<https://godotengine.org/fbx-import>。