跳到主要內容
設計與3D技術

Godot匯入GLB的方法|拖曳放置的3分鐘步驟與無法匯入時的解決方式

Godot原生支援GLB,不需要外掛。把.glb複製到專案資料夾就會自動匯入,再從FileSystem面板拖進場景即可放置。本文依據官方文件,解說無法覆寫原始檔案的機制、碰撞體自動產生、匯入後的3項檢查以及常見問題的解決方式。

Figmee 編輯部發布日期: 2026-08-20更新日期: 2026-10-24閱讀時間 17 分鐘
GodotGLBglTF遊戲開發3D模型
Godot匯入GLB的方法|拖曳放置的3分鐘步驟與無法匯入時的解決方式

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分鐘)

  1. 把.glb複製到專案資料夾(30秒)。在開著Godot編輯器的狀態下,用作業系統的檔案總管把檔案放進專案資料夾(res://底下)。回到編輯器後,檔案會自動出現在FileSystem面板中。
  2. 在FileSystem面板中選取檔案(10秒)。選取後,Import面板會顯示匯入設定。
  3. 檢查Import面板的設定(1分鐘)。設定分成幾個區塊。
    • Root Type / Name:根節點的類型與名稱
    • Meshes:切線產生、LOD、光照烘焙相關設定
    • Animation:影格率與軌道最佳化
    • Import Script:自動執行匯入後處理的指令碼
  4. 修改設定後按下Reimport(20秒)。按下之前,變更不會生效。
  5. 拖放到場景中(10秒)。從FileSystem面板拖到已開啟場景的視圖或節點樹中。根據官方文件,這時根節點會被重新命名為與檔名一致。
  6. 確認顯示效果(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模型,節點名稱是自動決定的,直接匯入不會帶有碰撞體。方法有兩種。

  1. 在Blender中改名後再匯出(推薦)。先用Blender開啟GLB,把物件名稱改成Character-col之類,再重新匯出為GLB。之後只要重新匯入,就會帶有碰撞體。
  2. 在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等後綴,就能自動建立碰撞體。一開始就理解這兩點,即使一邊替換模型一邊推進開發,結構也不會崩壞。

相關指南

分享這篇文章

將孩子的畫變成3D 模型

孩子的畫作將變成獨一無二的3D 模型。

前5次免費