Godot 原生支援glTF 2.0,不需要任何額外外掛就能讀取GLB檔案。操作只有「把.glb複製到專案資料夾」這一步,之後Godot會自動匯入,再從FileSystem面板拖進場景即可放置。而且,官方文件在支援的3D格式清單中明確把glTF 2.0標示為「推薦(recommended)」(來源:Godot Docs - Available 3D formats,截至2026年7月)。
本文依據官方文件的說明,解說把GLB匯入Godot、直到能在遊戲中使用的完整流程。版本以截至2026年7月的穩定版(Godot Engine 4.7系列)文件為準。
讀完本文可以了解
※目前的Figmee是一項服務,可以依據上傳的畫作或插畫,生成並下載公仔風格圖片與3D模型資料(GLB / 3MF)。實體3D列印品的販售正在準備中(Coming Soon)。
Godot支援的3D格式
官方文件列出的3D場景支援格式如下。
| 格式 | 定位 | 補充 |
|---|---|---|
| glTF 2.0 | 推薦 | 同時支援文字格式.gltf與二進位格式.glb |
| .blend | 支援 | 可直接使用Blender檔案 |
| DAE(COLLADA) | 支援 | 歷史悠久的交換格式 |
| OBJ(Wavefront) | 支援 | 以形狀為主的簡單格式 |
| FBX | 支援 | 廣泛使用的業界標準格式 |
關於.glb,文件的說明是「glTF二進位檔案(.glb)是體積較小的選擇,包含網格與紋理設定」。由於連紋理都裝在一個檔案裡,在資料夾之間移動也不會發生參照遺失。這項特性在交付檔案時是很大的優勢。關於GLB格式本身,可參考GLB檔案是什麼?。
Unity預設不支援glTF,需要加裝官方套件;而Godot從一開始就支援——這是兩款引擎最直觀的差異(Unity的步驟請參考如何在Unity中匯入GLB)。
為什麼推薦glTF 2.0
理由可以整理成3點。
1. 參照不會遺失。 .glb把網格與紋理打包在一個檔案裡。紋理另外存放的格式,一旦更動資料夾結構,圖片連結就會斷掉,模型變成一片白色;GLB則不會發生這種情況。
2. 以即時顯示為前提設計。 glTF是Khronos Group制定的格式,用於在執行時快速讀取與顯示,與遊戲引擎的用途本來就一致。
3. 用途廣泛。 同一個GLB可以直接用於網頁瀏覽器顯示、其他引擎、3D檢視器等其他用途。一旦轉換成引擎專用格式,這種通用性就會消失。
在Godot中匯入GLB的步驟(約3分鐘)
- 把
.glb複製到專案資料夾(30秒)。在開著Godot編輯器的狀態下,用作業系統的檔案總管把檔案放進專案資料夾(res://底下)。回到編輯器後,檔案會自動出現在FileSystem面板中。 - 在FileSystem面板中選取檔案(10秒)。選取後,Import面板會顯示匯入設定。
- 檢查Import面板的設定(1分鐘)。設定分成幾個區塊。
- Root Type / Name:根節點的類型與名稱
- Meshes:切線產生、LOD、光照烘焙相關設定
- Animation:影格率與軌道最佳化
- Import Script:自動執行匯入後處理的指令碼
- 修改設定後按下
Reimport(20秒)。按下之前,變更不會生效。 - 拖放到場景中(10秒)。從FileSystem面板拖到已開啟場景的視圖或節點樹中。根據官方文件,這時根節點會被重新命名為與檔名一致。
- 確認顯示效果(1分鐘)。如果一片漆黑,可能是場景中沒有燈光,或沒有設定環境(WorldEnvironment)。
想更細緻地調整時,可以開啟Advanced Import Settings(進階匯入設定)對話框。在FileSystem面板中按兩下3D場景,或點Import面板的Advanced… 按鈕即可開啟(來源:Godot Docs - Import configuration,截至2026年7月)。需要針對個別網格或材質覆寫設定時就用這裡。
需要記住的機制:無法覆寫原始檔案
在Godot中處理3D資料時,有一個機制最好先弄清楚。官方文件是這樣寫的:「Godot只能儲存為自身的場景格式(.tscn / .scn),無法覆寫儲存原始的3D場景檔案。」
匯入的GLB在Godot內部被當作PackedScene(包含網格、材質、骨架、動畫的Godot原生格式場景)處理。也就是說,在Godot中做的修改不會寫回原本的.glb。
在實務上,這代表兩件事。
- 原始資料一律當作「原始檔」另外管理。 保留Blender專案或生成得到的GLB。
- Godot端的細部製作,在繼承匯入場景的另一個場景中進行。 這樣即使替換原始資料並重新匯入,細部製作的內容也不會消失。
AI生成的3D模型,重新生成就能得到不同的變化版本。以「會替換模型」為前提來搭建結構,之後就不容易重工。關於整體的編輯路線,已整理在AI生成3D模型編輯方法總覽中。
在遊戲中使用:用節點名稱後綴產生碰撞體
Godot有一個很方便的機制:依據原始資料中節點名稱所帶的後綴,在匯入時改變節點類型。後綴可以用-、$、_其中之一分隔,且不區分大小寫(來源:Godot Docs - Node type customization,截至2026年7月)。
| 後綴 | 匯入時的行為 |
|---|---|
-col | 以子節點形式產生三角網格的靜態碰撞體 |
-convcol | 產生ConvexPolygonShape3D而非三角網格 |
-colonly | 移除網格,只保留StaticBody3D的碰撞體 |
-convcolonly | 與-colonly相同,但使用凸分解 |
-rigid | 把網格匯入為RigidBody3D |
-navmesh | 轉換為導航網格 |
-occ / -occonly | 產生遮擋體(Occluder3D)/把網格轉換為遮擋體 |
-noimp | 不論類型,匯入時移除節點與動畫 |
-vcol | 啟用頂點顏色旗標 |
-alpha | 套用透明(TRANSPARENCY_ALPHA)模式 |
-loop / -cycle | 設定動畫的循環旗標 |
這裡有個陷阱:後綴必須加在「原始資料的節點名稱」上。 AI生成的3D模型,節點名稱是自動決定的,直接匯入不會帶有碰撞體。方法有兩種。
- 在Blender中改名後再匯出(推薦)。先用Blender開啟GLB,把物件名稱改成
Character-col之類,再重新匯出為GLB。之後只要重新匯入,就會帶有碰撞體。 - 在Godot端手動加入。 在放置好的場景中自行加入StaticBody3D與CollisionShape3D。如果只有1個模型,這樣有時更快。
三角網格的碰撞體忠於形狀,但運算負擔較重。會動的角色用簡單形狀(膠囊、方塊、凸形),只有靜止的背景物件才用三角網格,這是在效能上比較好掌握的分配方式。
匯入後要確認的3點
1. 縮放
有時一放置就發現模型大得離譜或小得離譜。這是原始資料的尺寸造成的,並不是錯誤。把它和現有物件或預想的角色身高並排,相對地調整即可。
2. 材質的呈現
glTF的材質以物理為基礎(PBR),質感由金屬感(metallic)與表面粗糙度(roughness)決定。在卡通風格的遊戲中,這種明暗可能與畫風不搭。這時就在Godot端替換材質。顏色與質感的原理可參考紋理是什麼?。
3. 面數
AI生成的模型或精細製作的模型,以即時顯示的標準來看面數可能偏多。以同時顯示幾個為基準,必要時在匯出前減少面數(什麼是多邊形數?)。Import面板的Meshes區塊也有LOD設定,也可以交給它依距離自動簡化。
GLB無法匯入或顯示異常時的解決方式
| 症狀 | 可能的原因 | 解決方式 |
|---|---|---|
| FileSystem面板中沒有出現檔案 | 編輯器沒有偵測到資料夾的變化 | 讓編輯器重新取得一次焦點。重新開啟專案 |
| 改了設定卻沒有生效 | 沒有按下Reimport | 在Import面板中執行Reimport |
| 一片漆黑什麼都看不到 | 場景中沒有燈光或環境 | 加入燈光(DirectionalLight3D等)或WorldEnvironment |
| 會穿過去、站不到地面上 | 沒有產生碰撞體 | 在原始資料加上-col再匯出,或手動加入 |
| 執行卡頓 | 面數、三角網格碰撞體 | 使用LOD。把碰撞體換成簡單形狀 |
| 編輯原始檔案也沒有變化 | 編輯的是另一份副本 | 替換res://底下的實際檔案並重新匯入 |
| 無法改變姿勢 | 沒有骨骼 | 需要另外進行名為綁定的工序 |
最後一項是使用AI生成3D模型時一定會碰到的問題。由一張畫生成的模型是沒有骨骼的靜態網格,直接使用無法讓它走動或改變姿勢。 如果是展示、背景、小道具、旋轉展示之類的用途,不需額外工序就能使用;但如果想當作角色動起來,請在計畫中預留另外的綁定工序(什麼是綁定?)。
常見問題
在Godot中讀取GLB需要外掛嗎?
不需要。Godot原生支援glTF 2.0,官方文件也把它列為推薦格式。.glb(二進位)與.gltf(文字)都支援。使用.gltf時,請把附帶的圖片檔案等一併放好。.glb裝在一個檔案裡,省去了這個麻煩。
怎麼替匯入的模型加上碰撞體?
在原始資料的節點名稱加上-col(以子節點產生三角網格碰撞體)或-colonly(刪除網格只保留碰撞體)等後綴再匯出,匯入時就會自動產生。如果無法改名,就在Godot端手動加入StaticBody3D與CollisionShape3D。
在Godot中編輯的內容能寫回原本的GLB嗎?
不能。Godot的機制是只能儲存為自身的場景格式(.tscn / .scn)。穩妥的做法是另外保管原始資料,Godot端的細部製作在繼承的場景中進行。如果想改變形狀本身,就在Blender等外部軟體中編輯後重新匯出,再重新匯入Godot。
想試用AI生成的3D模型,Unity和Godot哪個比較方便?
單看「到讀取為止的步驟數」,是Godot。由於原生支援glTF 2.0,只要放入檔案就能一路走到顯示。Unity需要多加裝一個官方套件,但加裝之後的好用程度並沒有差別。如果已經有專案在其中一款引擎上運作,配合那款引擎才是合理的選擇。兩者都能免費開始,先實際匯入1個模型,親眼確認顯示效果與效能負擔就足夠了。
只想使用匯入模型的一部分時怎麼辦?
開啟Advanced Import Settings對話框,就能逐一檢視網格與材質並覆寫設定。不需要的節點,在原始資料的名稱加上-noimp再匯出,匯入時就會被移除。放置後再刪除不需要的節點也可以,但每次替換模型都要重複同樣的操作,如果會反覆進行,在原始資料端處理好會更省事。
總結
把GLB匯入Godot,只需① 把.glb放進專案資料夾 → ② 在Import面板中確認設定並按下Reimport → ③ 從FileSystem面板拖進場景這3個步驟即可完成。glTF 2.0既是原生支援又是推薦格式,不需要額外外掛。
需要掌握的有兩點。一是無法覆寫儲存原始3D檔案的機制:原始資料當作原始檔管理,細部製作在繼承場景中進行。二是透過節點名稱後綴自動產生:在原始資料端加上-col等後綴,就能自動建立碰撞體。一開始就理解這兩點,即使一邊替換模型一邊推進開發,結構也不會崩壞。




