Work in progress
The content of this page was not yet updated for Godot
4.5
and may be outdated. If you know how to improve this page or you can confirm
that it's up to date, feel free to open a pull request.
使用 SoftBody3D
柔體(或*柔體動力學*)類比可變形物體的運動,改變形狀和其他物理功能。例如,這可以用於模擬布料或建立更逼真的角色。
基本設定
可用 SoftBody3D 節點來進行柔體模擬。
我們將建立一個彈性立方體來演示柔體的設定。
建立一個以 Node3D 為根節點的新場景。接著建立一個 SoftBody3D 節點。在檢視器的 mesh 屬性指派一個 CubeMesh,並提高網格的細分以進行模擬。
請調整參數以取得你想要的柔體型態。建議將 Simulation Precision (模擬精度)設在 5 以上,否則柔體可能會崩塌。
備註
小心處理一些參數,因為改動某些數值會導致奇怪的結果。例如,如果形狀未完全封閉並且您將壓力設定為大於 0,則柔體將如同在強風下的塑膠袋一樣飛舞。
播放該場景以查看模擬結果。
小訣竅
要改善模擬結果,可以增大 Simulation Precision,但同時會大幅度增加性能成本。
斗篷模擬
我們將在 Platformer3D 演示中製作一個斗篷。
開啟 Player 場景,新增一個 SoftBody3D 節點並為其指派一個 PlaneMesh。
開啟 PlaneMesh 的屬性並將大小設為(x: 0.5, y: 1),然後將 Subdivide Width 與 Subdivide Depth 設為 5。調整 SoftBody3D 的位置。你應該會看到像這樣:
小訣竅
細分會生成更細密的網格,以便更好地進行模擬。
在骨架節點下新增 BoneAttachment3D,然後選擇 Neck 骨骼,將斗篷綁定在角色骨架上。
備註
BoneAttachment 節點的作用是將物體附著到骨架的某根骨骼上。附著的物體會隨著骨骼運動,角色的武器可以通過這種方式附加。
若要建立釘住的關節,請在 SoftBody3D 節點中選取上方的頂點:
在 SoftBody3D 的 Attachments 屬性中可以找到這些釘住的關節;為每個釘住的關節將 SpatialAttachment 設為 BoneAttachment,這些釘住的關節就會連接到頸部。
最後一步是為了避免穿模,將運動學物體 Player 加到 SoftBody3D 的 Parent Collision Ignore 中。
播放場景,應該已經正確模擬了斗篷。
這涵蓋了柔體的基本設定,當你製作遊戲時,嘗試這些參數來達到你想要的效果。
使用匯入的網格
在進階匯入設定對話框中的 Save to File (另存為檔案) 選項, 允許你將網格儲存為獨立的資源檔, 之後即可將其指派給 SoftBody3D 節點。
在匯入要給 SoftBody3D 使用的網格時,你也可能需要停用或調整 LOD 產生選項。預設匯入設定會產生一個 LOD,將彼此幾乎共平面的相鄰面合併,即使在非常近的繪製距離也是如此。這對靜態網格很合適,但若你希望這些面能彼此彎曲變形並相對移動,而不是被當成單一平面來繪製,那對 SoftBody3D 來說往往並不理想。
詳情請見 匯入設定 與 網格的細節級別(LOD)。