使用 SoftBody

柔体(或柔体动力学)模拟可变形物体的运动,改变形状和其他物理特性。例如,这可以用于模拟布料或创建更逼真的角色。

基本设置

用一个 SoftBody 节点来做柔体模拟。

我们将创建一个弹性立方体来演示柔体的设置。

创建一个以 Spatial 节点为根节点的新场景。然后再创建一个 Softbody 节点。之后在 Softbody 节点的检查器面板中的 mesh 中添加 CubeMesh 并增加网格的细分以进行模拟。

../../_images/softbody_cube.png

设置参数以获得您想要的柔体类型。尽量保持 Simulation Precision(模拟精度)的数值高于 5,否则该柔体结构可能会瓦解。

../../_images/softbody_cube_menu.png

备注

小心处理一些参数,因为改动某些数值会导致奇怪的结果。例如,如果形状未完全封闭并且您将压力设置为大于 0,则柔体将如同在强风下的塑料袋一样飞舞。

播放该场景以查看模拟结果。

小技巧

要改善模拟结果,可以增大 Simulation Precision,但同时会大幅度增加性能成本。

斗篷模拟

我们将在 Platformer3D 演示中制作一个斗篷。

备注

你可以在 GitHub素材库上下载 Platformer3D 演示。

打开 Player 场景,添加一个 SoftBody 节点并为其指定一个 PlaneMesh

打开 PlaneMesh 属性并设置大小(x:0.5 y:1),然后将 Subdivide Width(宽度细分)和 Subdivide Depth(深度细分)设置为 5。调整 SoftBody 的位置。您应该看到如下所示:

../../_images/softbody_cloak_subdivide.png

小技巧

细分会生成更细密的网格,以便更好地进行模拟。

在骨架节点下添加 BoneAttachment 节点,然后选择 Neck(颈部)骨骼,将斗篷附加到角色骨架。

备注

BoneAttachment 节点的作用是将物体附着到骨架的某根骨骼上。附着的物体会随着骨骼运动,角色的武器可以通过这种方式附加。

../../_images/softbody_cloak_bone_attach.png

要创建固定的关节,选择 SoftBody 节点上方的顶点:

../../_images/softbody_cloak_pinned.png

SoftBodyAttachments 属性中可以找到图钉关节,为每个被图钉关节选择 BoneAttachment 作为 SpatialAttachment,被图钉关节连接到颈部。

../../_images/softbody_cloak_pinned_attach.png

最后一步,通过在 SoftBodyParent Collision Ignore 中添加动力学物体 Player 来避免裁切。

../../_images/softbody_cloak_ignore.png

播放场景,应该已经正确模拟了斗篷。

../../_images/softbody_cloak_finish.png

这涵盖了柔体的基本设置,当你制作游戏时,尝试这些参数来达到你想要的效果。