布娃娃系统¶
介绍¶
从3.1版开始,Godot支持布娃娃物理。碎布车依靠物理模拟来创建逼真的程序动画。它们在许多游戏中都被用于死亡动画。
在本教程中,我们将使用Platformer3D演示来设置布娃娃。
注解
您可以将Platformer3D演示下载到 GitHub 或使用 Asset Library .
设置布娃娃¶
创建物理骨骼¶
与引擎中的许多其他功能一样,也有一个节点来设置布娃娃: PhysicalBone 节点。为了简化设置,可以生成 PhysicalBone
在骨架节点中具有“创建物理骨架”功能的节点。
打开Godot的platformer演示,然后打开robi场景。选择 Skeleton
节点。一个骨架按钮出现在顶栏菜单上:
单击并选择 Create physical skeleton
选项。Godot将产生 PhysicalBone
骨骼中每个骨骼的节点和碰撞形状以及将它们连接在一起的销关节:
一些生成的骨骼不需要: MASTER
比如骨头。所以我们要通过移除它们来清理骨骼。
清理骨架¶
各 PhysicalBone
引擎需要模拟有一个性能成本,因此您需要删除所有太小而无法在模拟中产生差异的骨骼,以及所有实用工具骨骼。
例如,如果我们取一个人形,你就不希望每个手指都有物理骨骼。你可以用一根骨头来代替整只手,或者一根用于手掌,一根用于拇指,最后一根用于其他四个手指。
移除这些物理骨骼: MASTER
, waist
, neck
, headtracker
. 这给了我们一个优化的骨架,使它更容易控制布娃娃。
碰撞形状调整¶
下一个任务是调整碰撞形状和物理骨骼的大小,以匹配每个骨骼应该模拟的身体部分。
接头调整¶
一旦你调整了碰撞形状,你的布娃娃就快准备好了。您只需要调整销接头以获得更好的模拟。 PhysicalBone
默认情况下,节点有一个未约束的销节点。要更改销接头,请选择 PhysicalBone
并更改 Joint
第节。在这里,您可以更改约束的方向及其限制。
这是最终结果:
模拟布娃娃¶
布娃娃现在可以用了。要启动模拟并播放布娃娃动画,需要调用 physical_bones_start_simulation
方法。将脚本附加到骨架节点并在 _ready
方法:
func _ready():
physical_bones_start_simulation()
要停止模拟,请调用 physical_bones_stop_simulation()
方法。
也可以将模拟限制为仅几个骨骼。为此,将骨骼名称作为参数传递。以下是部分布娃娃模拟的示例: