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

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

介绍


从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




目录
相关文章
|
监控 NoSQL Java
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
若依(RuoYi)是一款基于Spring Boot和Vue.js的开源Java快速开发脚手架,支持OAuth2、JWT鉴权,集成多种安全框架和持久化框架。它提供了系统管理、监控管理、任务调度、代码生成等常用功能模块,适合中小型公司快速搭建Web应用。本文主要介绍若依框架的特点、版本发展、优缺点及项目部署步骤,帮助开发者快速上手并部署若依项目。
16683 3
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
|
机器学习/深度学习 人工智能 算法
FinRobot:开源的金融专业 AI Agent,提供市场预测、报告分析和交易策略等金融解决方案
FinRobot 是一个开源的 AI Agent 平台,专注于金融领域的应用,通过大型语言模型(LLMs)构建复杂的金融分析和决策工具,提供市场预测、文档分析和交易策略等多种功能。
1307 13
FinRobot:开源的金融专业 AI Agent,提供市场预测、报告分析和交易策略等金融解决方案
|
存储 安全 数据管理
电脑硬盘分区及合并指南
本文介绍了电脑硬盘分区的方法,包括使用Windows磁盘管理器和第三方工具如DiskGenius。创建新分区涉及打开磁盘管理,右键未分配空间新建简单卷。第三方软件可快速分区或拆分分区,但需注意数据备份。合并分区时,删除目标分区后扩展相邻分区,操作前务必备份数据。安全和合理规划硬盘空间是关键。
电脑硬盘分区及合并指南
|
移动开发 小程序 API
uniapp中uview组件库的丰富Upload 上传上午用法
uniapp中uview组件库的丰富Upload 上传上午用法
897 0
|
算法 调度 云计算
操作系统中的调度算法:从理论到实践
在计算机科学领域,操作系统的调度算法是决定任务执行顺序的关键。本文首先概述了调度算法的基本概念和重要性,随后深入探讨了几种主要的调度算法,包括先来先服务、短作业优先、轮转与优先级调度等。通过引用最新的科研数据和实验证据,文章揭示了不同调度算法的性能表现和适用场景。此外,本文还讨论了现代操作系统中调度算法面临的挑战和未来的发展方向,强调了在多核处理器和云计算环境下调度策略的复杂性。最后,通过案例分析,展示了如何在实际系统中应用这些理论知识,以及在设计高效调度系统时需要考虑的因素。
|
算法 编译器 C语言
【C语言】C++ 和 C 的优缺点是什么?
C 和 C++ 是两种强大的编程语言,各有其优缺点。C 语言以其高效性、底层控制和简洁性广泛应用于系统编程和嵌入式系统。C++ 在 C 语言的基础上引入了面向对象编程、模板编程和丰富的标准库,使其适合开发大型、复杂的软件系统。 在选择使用 C 还是 C++ 时,开发者需要根据项目的需求、语言的特性以及团队的技术栈来做出决策。无论是 C 语言还是 C++,了解其优缺点和适用场景能够帮助开发者在实际开发中做出更明智的选择,从而更好地应对挑战,实现项目目标。
530 0
|
Java
【工具类】图片压缩工具类,可压缩jpg, png等图片
【工具类】图片压缩工具类,可压缩jpg, png等图片
420 0
|
监控 Java 数据库
Java程序如何进行不停机更新?
Java程序如何进行不停机更新?
619 1
|
数据采集 JSON 数据可视化
基于Python的51job招聘数据采集与可视化项目实践
本文介绍了一个基于Python的51job招聘数据采集与可视化项目,该项目通过自动化手段获取大量招聘信息,并运用数据分析和可视化工具对就业市场进行深度分析,旨在为求职者和企业提供数据支持和决策依据。
805 5
|
安全 应用服务中间件 PHP
中间件漏洞
中间件漏洞