游戏开发中的物理之布娃娃系统

简介: 游戏开发中的物理之布娃娃系统

介绍


从3.1版开始,Godot支持布娃娃物理。Ragdolls依靠物理模拟来创建逼真的程序动画。它们在许多游戏中用于死亡动画。


在本教程中,我们将使用Platformer3D演示来设置布娃娃。


注意

您可以在GitHub或使用素材资源库下载Platformer3D演示。


设置布娃娃


创造物理骨骼


与引擎中的许多其他功能一样,有一个节点可以设置布娃娃:PhysicalBone节点。为了简化设置,您可以PhysicalBone在骨架节点中生成具有“创建物理骨架”功能的节点。


在Godot中打开平台演示,然后在Robi场景中打开。选择Skeleton节点。骨架按钮出现在顶部栏菜单上:

image.png



单击它并选择选项。Godot将为骨骼中的每个骨骼以及销钉关节生成节点和碰撞形状,以将它们连接在一起:Create physical skeletonPhysicalBone


image.png


某些生成的骨骼不是必需的:MASTER例如骨骼。因此,我们将通过移除骨架来清理骨架。


清理骨架


每个PhysicalBone需要模拟的引擎都有性能成本,因此您想要删除所有太小而无法在模拟中起作用的骨骼以及所有实用骨骼。


例如,如果我们采用人形生物,则您不想让每个手指都有骨头。您可以用一根骨头代替整只手,或者一根骨头用于手掌,一根骨头用于拇指,最后一根骨头用于其他四个手指。


删除这些物理的骨头MASTER,waist,neck,headtracker。这为我们提供了优化的骨架,并使控制布娃娃变得更加容易。


碰撞形状调整


下一个任务是调整碰撞形状和物理骨骼的大小,以匹配每个骨骼应模拟的身体部位。



关节调整


调整碰撞形状后,布娃娃几乎准备就绪。您只需要调整销钉接头即可获得更好的模拟效果。PhysicalBone节点默认分配有不受约束的销接头。要更改销钉接头,请选择PhysicalBone并在Joint部分中更改约束类型。在那里,您可以更改约束的方向及其限制。


这是最终结果:

image.png



模拟布娃娃


现在可以使用布娃娃了。要开始模拟并播放布娃娃动画,您需要调用该physical_bones_start_simulation方法。将脚本附加到骨架节点,然后在方法中调用_ready方法:


func _ready():
    physical_bones_start_simulation()



要停止模拟,请调用该physical_bones_stop_simulation()方法。

20201223164550580.gif



您还可以将模拟限制为仅几根骨头。为此,请将骨骼名称作为参数传递。这是部分布娃娃模拟的示例:



碰撞层和遮罩


确保正确设置碰撞层和蒙版,以免KinematicBody的胶囊不妨碍物理模拟:

image.png




目录
相关文章
游戏开发中的物理之使用KinematicBody2D(02)
游戏开发中的物理之使用KinematicBody2D
274 0
5G 物理资源 |带你读《5G空口特性与关键技术》之八
基站信道带宽是指基站侧上下行所支持的单个 NR 射频载波。同一频段下,支持不同的 UE 信道带宽。在基站信道带宽范围内,UE 信道带宽可以灵活配置。UE 的 BWP 的信号等于或者小于 RF 载波的载波资源块数时,基站就能够在任何载波资源块上收发 UE 的 1 个或者多个 BWP 的信号。
5G 物理资源  |带你读《5G空口特性与关键技术》之八
|
5月前
计算机硬件清洁维护注意事项
【7月更文挑战第28天】
67 1
|
7月前
|
芯片 数据格式 异构计算
LabVIEW开发虚拟与现实融合的数字电子技术渐进式实验系统
LabVIEW开发虚拟与现实融合的数字电子技术渐进式实验系统
51 1
|
7月前
|
vr&ar Python
物理电学:基础概念与模拟实践
物理电学:基础概念与模拟实践
|
7月前
|
Python
物理力学:基本概念、原理及计算机模拟实践
物理力学:基本概念、原理及计算机模拟实践
|
7月前
|
数据采集 算法 C++
物理电学的编程
物理电学的编程
57 1
|
网络架构
2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版!(二)
2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版!!!!!
125 0
|
7月前
|
存储 人工智能 并行计算
计算机架构:漫游CPU的奥秘世界(二)
计算机架构:漫游CPU的奥秘世界
178 0
|
7月前
|
存储 人工智能 缓存
计算机架构:漫游CPU的奥秘世界(一)
计算机架构:漫游CPU的奥秘世界
183 0