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...
利用名稱後綴自訂節點型別
編輯完場景後,我們往往會需要在匯出後執行下列常見工作:
為物件加上碰撞偵測。
將物件設為導覽網格。
刪除沒有在遊戲引擎中使用到的節點 (例如用於建模的特定燈光)。
為了簡化此工作流程,Godot 提供一些後綴,可以加到 3D 建模軟體中物件的名稱後面。匯入時,Godot 將會偵測物件名稱中的後綴,並會自動執行動作。
警告
以下描述的所有後綴都可以與 - 、 $ 和 _ 一起使用,並且 不區分大小寫 。
選擇停用
若不希望 Godot 執行下述任何操作,可將匯入選項 nodes/use_node_type_suffixes 設為 false。這會停用所有節點型別後綴,讓節點維持與原始檔相同的型別。不過,-noimp 後綴仍會被遵守,且像 -vcol、-loop 這類非節點後綴也同樣有效。
或者,你也可以將匯入選項 nodes/use_name_suffixes 設為 false,完全停用所有名稱後綴。這會使一般的場景匯入流程不再檢查名稱後綴。不過,特定格式的匯入器仍可能會檢查名稱後綴,例如 glTF 匯入器會檢查 -loop 後綴。
停用這些選項會讓在編輯器中匯入的檔案更貼近原始檔,也更接近執行期匯入的行為。若你要採用可於執行期運作、結果更可預期、且僅依明確定義行為的匯入流程,建議將這些選項設為 false,改用 GLTFDocumentExtension。
移除節點與動畫(-noimp)
名稱帶有 -noimp 後綴的節點與動畫會在匯入時被移除,無論其型別為何,都不會出現在匯入後的場景中。
這相當於在“進階匯入設定”對話框中為節點啟用“跳過匯入”。
建立碰撞區塊(-col, -convcol, -colonly, -convcolonly)
-col 只適用於 Mesh 物件。被偵測到時,匯入時會自動加一個靜態碰撞子節點,使用相同幾何體。這會產生三角網格碰撞形狀,雖然慢但很精確,常用來做場景地形(但有時可考慮 -colonly,見下)。
-convcol 會建立 ConvexPolygonShape3D (凸型多邊形碰撞體),不是 ConcavePolygonShape3D 。凸型碰撞體只能表示沒有凹角的形狀(如金字塔是凸,空盒子是凹)。因此凸型碰撞通常不適合場景地形,但如果你的物件夠簡單,凸型碰撞效能會比網格碰撞高得多。這適合中小型、需精確碰撞的動態物件。
然而,在這兩種情況,通常視覺幾何要拿來作為碰撞形體都太複雜且太不平滑了。這樣會造成物理故障並不必要地降低引擎的速度。
-colony 修飾詞就是為了解決這個問題,使用該後置詞會在匯入時將網格移除,並改而建立 StaticBody3D 碰撞區域。如此便有助於分開視覺化網格與實際的碰撞區域。
使用 -convcolonly 選項會改而建立 ConvexPolygonShape3D 。
-colonly 也可與 Blender 的空體一起使用。匯入時,會建立一個有碰撞子節點的 StaticBody3D。不同繪製型別的 Blender 空體所建立的碰撞節點會是數種預定義形狀之一:
在 Blender 中為 Empty 選擇建立時的繪製型別
單箭頭會建立 SeparationRayShape3D 。
立方體會建立 BoxShape3D 。
影像會建立 WorldBoundaryShape3D 。
球體 (與其他未列出的形狀) 會建立 SphereShape3D 。
如果可能的話, 請儘量使用初形碰撞區域 來代替三角網格或凸型。初形通常有較好的效能並較可靠。
備註
為了提高 Blender 編輯器中的可見性,可以開啟碰撞空體的「X-Ray」選項,並於 [使用者偏好設定] / [主題] / [3D 視圖] / [空體] 中為空體設定不同的顏色。
如果使用 Blender 2.79 或更早版本,請依照下列步驟操作:使用者首選項 > 主題 > 3D視圖 > 空白。
也參考
有關碰撞區域更全面的概覽,請參考 碰撞形狀 (3D) 。
建立遮擋剔除物件(-occ, -occonly)
如果匯入 Mesh 時帶有 -occ 字尾,將會根據 Mesh 的幾何體建立一個 Occluder3D 節點,它不會取代 Mesh。帶有 -occonly 字尾的 Mesh 節點在匯入時將會轉換為 Occluder3D。
建立 VehicleBody (-vehicle)
有 -vehicle 後置詞的網格節點會被匯入為 VehicleBody3D 節點的子節點。
建立 VehicleWheel (-wheel)
有 -wheel 後置詞的網格節點會被匯入為 VehicleWheel3D 節點的子節點。
剛體 (-rigid)
有 -rigid 後置詞的網格節點會被匯入為 RigidBody3D 節點的子節點。
動畫循環 (-loop, -cycle)
在 COLLADA 文件中以 loop 或 cycle 結尾的動畫片段會被匯入為開啟循環旗標的 Godot Animation。於這裡介紹的其他後置詞不同,這個後置詞不需要加減號
在 Blender 中,需要使用 NLA 編輯器,並以 loop 或 cycle 前置或後置詞來命名動作。
材質 Alpha(-alpha)
帶有 -alpha 後綴的材質會以 TRANSPARENCY_ALPHA 透明度模式匯入。
材質頂點色(-vcol)
帶有 -vcol 後綴的材質匯入時會啟用 FLAG_ALBEDO_FROM_VERTEX_COLOR 與 FLAG_SRGB_VERTEX_COLOR 旗標。