软体

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

基本结构

一个软体节点用于模拟柔软的物体。参考:软体<类_软体>

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

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

../../_images/softbody_cube.png

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

../../_images/softbody_cube_menu.png

注解

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

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

小技巧

为了改善模拟结果,增加“模拟精度”(Simulation Precision),会大幅度增加性能成本。

斗篷模拟

我们将在三维平台游戏演示中制作一个斗篷。

注解

您可以在`GitHub <https://github.com/godotengine/godot-demo-projects/tree/master/3d/platformer>` 或者`资源商店<https://godotengine.org/asset-library/asset/125>`内下载这款三维平台游戏演示.

打开“玩家”(Player)场景,添加一个“软体”(SoftBody)节点并为其指定一个“平面网格”(PlaneMesh)。

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

../../_images/softbody_cloak_subdivide.png

小技巧

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

在骨架节点下添加:参考:`附属骨骼<类_附属骨骼>`节点,然后选择颈部(Neck)骨骼,将斗篷附加到角色骨架。

注解

“附属骨骼”节点是将物体连接到盔甲的单根骨上。附着的物体会随着单根骨的运动,角色的武器可以通过这种方式附加。

../../_images/softbody_cloak_bone_attach.png

要创建固定的关节,选择“软体”节点上的顶点:

../../_images/softbody_cloak_pinned.png

固定节点可以在“软体”的“附属”属性中找到,选择“附属骨骼”作为每个固定关节的“空间附属”,现在固定关节连接到脖子上。

../../_images/softbody_cloak_pinned_attach.png

最后一步,通过在“软体”的“忽略父级碰撞”中添加动力学物体“玩家”来避免裁切。

../../_images/softbody_cloak_ignore.png

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

../../_images/softbody_cloak_finish.png

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