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

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

介绍


从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
260 0
游戏开发中的物理之使用KinematicBody2D(02)
|
2月前
|
存储 监控 应用服务中间件
服务器硬件基础知识
服务器硬件基础知识
|
2月前
|
存储 安全 编译器
计算机系统第三章程序的机械级表示笔记(1)
这篇文章是关于计算机系统第三章“程序的机械级表示”的笔记,解释了计算机如何执行机器代码,编译器如何生成机器代码,以及理解机器代码对于程序员在优化代码、分析程序运行时行为和安全性方面的重要意义。
|
4月前
|
存储 自动驾驶 数据挖掘
计算机的设计原理
计算机的设计原理
59 0
|
5月前
|
芯片 数据格式 异构计算
LabVIEW开发虚拟与现实融合的数字电子技术渐进式实验系统
LabVIEW开发虚拟与现实融合的数字电子技术渐进式实验系统
44 1
|
5月前
|
Python
物理力学:基本概念、原理及计算机模拟实践
物理力学:基本概念、原理及计算机模拟实践
|
5月前
|
vr&ar Python
物理电学:基础概念与模拟实践
物理电学:基础概念与模拟实践
|
5月前
|
存储 人工智能 缓存
计算机架构:漫游CPU的奥秘世界(一)
计算机架构:漫游CPU的奥秘世界
140 0
|
5月前
|
存储 人工智能 并行计算
计算机架构:漫游CPU的奥秘世界(二)
计算机架构:漫游CPU的奥秘世界
151 0
|
存储 缓存 Linux
实验 通过命令和代码初步感受存储管理【操作系统】
实验 通过命令和代码初步感受存储管理【操作系统】
127 0