Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Node type customization using name suffixes

編輯完場景後,我們往往會需要在匯出後執行下列常見工作:

  • 為物件加上碰撞偵測。

  • 將物件設為導覽網格。

  • Deleting nodes that are not used in the game engine (like specific lights used for modeling).

To simplify this workflow, Godot offers several suffixes that can be added to the names of the objects in your 3D modeling software. When imported, Godot will detect suffixes in object names and will perform actions automatically.

警告

下方介紹的所有後置詞都 有區分大小寫

刪除節點 (-noimp)

無論是什麼型別的物件,匯入時,名稱中有 -noimp 後置詞的節點都會被移除。這些節點不會出現在匯入的場景中。

這相當於在“進階匯入設定”對話框中為節點啟用“跳過匯入”。

建立碰撞 (-col, -convcol, -colonly, -convcolonly)

-col` 選項只適用於網格 (Mesh) 物件。若偵測到該選項,則會加上子靜態碰撞節點,並使用相同的幾何體作為網格。這個選項會建立三角網格碰撞區域,建立過程很慢,但作為碰撞偵測來說時很精準的選項。該選項通常適用於等級幾何 (也請一併參考下方的 ``colonly)。

-convcol 會建立 class_convexpolygonshape 而非 class_concavepolygonshape 。與三角網格不同,三角網格可以是凹型的 (Concave),凸型 (Convex) 只能在形狀沒有凸角時精準地呈現形狀 (金字塔是凸型,而空心盒 (Hallow Box) 是凹形)。因此,凸型碰撞區域通常不適合等級幾何。當要呈現比較簡單的網格時,凸型比起三角碰撞區域有更佳的效能。該選項適合用於需要精準碰撞偵測的簡單或動態的物件。

然而,在這兩種情況,通常視覺幾何要拿來作為碰撞形體都太複雜且太不平滑了。這樣會造成物理故障並不必要地降低引擎的速度。

-colony 修飾詞就是為了解決這個問題,使用該後置詞會在匯入時將網格移除,並改而建立 class_staticbody 碰撞區域。如此便有助於分開視覺化網格與實際的碰撞區域。

使用 -convcolonly 選項會改而建立 class_convexpolygonshape

-colonly 也可與 Blender 的空體一起使用。匯入時,會建立一個有碰撞子節點的 class_staticbody。不同繪製型別的 Blender 空體所建立的碰撞節點會是數種預定義形狀之一:

在 Blender 中為 Empty 選擇建立時的繪製型別

在 Blender 中為 Empty 選擇建立時的繪製型別

  • 單箭頭會建立 class_rayshape

  • 立方體會建立 class_boxshape

  • 影像會建立 class_planeshape

  • 球體 (與其他未列出的形狀) 會建立 class_sphereshape

如果可能的話, 請儘量使用初形碰撞區域 來代替三角網格或凸型。初形通常有較好的效能並較可靠。

備註

為了提高 Blender 編輯器中的可見性,可以開啟碰撞空體的「X-Ray」選項,並於 [使用者偏好設定] / [主題] / [3D 視圖] / [空體] 中為空體設定不同的顏色。

如果使用 Blender 2.79 或更早版本,請依照下列步驟操作:使用者首選項 > 主題 > 3D視圖 > 空白

也參考

有關碰撞區域更全面的概覽,請參考 碰撞形體

建立導覽 (-navmesh)

-navmesh 後置詞的網格節點會被轉換為導覽網格。原始的網格物件將會在匯入時被刪除。

建立 VehicleBody (-vehicle)

-vehicle 後置詞的網格節點會被匯入為 class_VehicleBody 節點的子節點。

建立 VehicleWheel (-wheel)

-wheel 後置詞的網格節點會被匯入為 class_VehicleWheel 節點的子節點。

剛體 (-rigid)

-rigid 後置詞的網格節點會被匯入為 class_RigidBody 節點的子節點。

動畫循環 (-loop, -cycle)

在 COLLADA 文件中以 loopcycle 結尾的動畫片段會被匯入為開啟循環旗標的 Godot Animation。於這裡介紹的其他後置詞不同,這個後置詞不需要加減號

在 Blender 中,需要使用 NLA 編輯器,並以 loopcycle 前置或後置詞來命名動作。