【UE4】物理引擎(蓝图)

这篇具有很好参考价值的文章主要介绍了【UE4】物理引擎(蓝图)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

虚幻物理系统

1、物理引擎

物理引擎通过为刚性物体赋予真实的物理属性的方式来计算运动、旋转和碰撞反映。

游戏引擎中的物理引擎的主要目的是为了解决物体在空间的状态信息。

常规的物理引擎遵循物理定律,按照给定的算法,进行模拟物理运动。所以在没有多元因素影响的情况下,物理引擎的计算结果是一致的。这和现实世界基本一致。

虚幻使用的是PhysX3.3的物理引擎驱动物理仿真以及碰撞计算。

2、物理交互

碰撞相应和**追踪响应(射线)**构成了虚幻引擎4在运行时处理碰撞和光线投射的基础。

虚幻中的碰撞交互方式分为三种:忽视,重叠,阻挡

忽视:物体和物体之间不产生任何物理结果,这使得物理引擎将这两种物体不作为检查范本。

重叠:物体和物体本身可以相互穿透,并产生事件通知。物理引擎时刻会关注物体之间的位置关系。

阻挡:物体和物体之间不可以相互穿透,将产生阻挡效果。

产生物理交互的必备条件

在虚幻引擎中,能够被物理引擎计算的物体必须具备刚体(包裹外壳)。如果希望加入物理引擎运动,还需要开启去物理模拟。

3、物理碰撞

在虚幻引擎中,物理碰撞添加的途径有两种,第一种是静态网格编辑器中,第二种是物理资源编辑器中(为骨骼Mesh使用)

静态网格编辑器

【UE4】物理引擎(蓝图)

静态网格的添加的碰撞形式分为两种,简单碰撞和复杂碰撞。

简单碰撞是基础,如方块、球体、胶囊体和凸包。复杂碰撞是给定对象的三角网格图。虚幻引擎4默认在Physx中创建简单和复杂两种形态,然后再基于用户需要(复杂查询vs简单查询)使用相应形态。

【UE4】物理引擎(蓝图)

LOD(Levels of Detail):多层次细节,LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

例如游戏中,背后和远处的物体为非重要物体,细节度低,眼前近处的物体的细节度高。

简单碰撞

添加简单形状碰撞

打开静态网格编辑器,在碰撞下拉菜单中找到形状添加,虚幻提供三种简单的形状碰撞器:球体、胶囊体、盒体。

虚幻允许一个物体具备多个碰撞器
【UE4】物理引擎(蓝图)

添加K-DOP简单凸包碰撞

K-DOP是包围体的一种,是K离散导向多面体(K discrete oriented polytope)的缩写(K是轴对齐平面的数字)。它抓取轴对齐的平面,将其尽力推向离网格体最近的位置。

10-方块有4条边形成斜角-可选择X、Y或Z轴对齐的边

18-方块中所有边均形成斜角

26-方块中所有边和角均形成斜角

【UE4】物理引擎(蓝图)

添加自动凸包碰撞

自动凸包包裹也属于简单碰撞包裹,通过程序进行计算获得包裹数据信息。需要调整凸包顶点最大数量。

凸包数量:决定了包裹物体需要使用的凸包个数,越多越精确,消耗也越大

最大外壳定点数:每个凸包最大允许使用多少个顶点

凸包精准度:使用多少模型面做计算参考,数量越大精度越大

遇到特别复杂的物体,建议先提升凸包数量,其次是凸包精准度。

【UE4】物理引擎(蓝图)
【UE4】物理引擎(蓝图)

添加复杂碰撞

虚幻中规定,若一个物体开启了复杂(精准)碰撞,就不能再开启物理模拟了。

例如,开启了复杂碰撞的椅子不能再被一个球击倒。

开启复杂碰撞后,需要在细节面板中将碰撞复杂度改成“将复杂碰撞用作简单碰撞”,物体才能与其他物体进行物理交互。

【UE4】物理引擎(蓝图)

项目默认(Default):此设置“默认“使简单碰撞请求使用简单碰撞,复杂请求使用复杂碰撞。引擎默认使用的是SAC模式。

简单与复杂(Simple And Complex) :创建简单和复杂的形状。简单形状用于常规场景查询和碰撞测试。复杂形状(逐多边形)用于复杂场景查询。通俗的说,在此状态下,物体之间的碰撞交互使用的是简单碰撞,射线(比如枪射出子弹)使用的是复杂查询。

将简单碰撞用作复杂碰撞(Use Simple As Complex):若请求复杂查询,引擎仍将查询简单形态,无视三角网格图。这有助于节约内存,因此我们不需要烘培三角网格图。如果碰撞几何体更简单,则可增强性能。通俗的说,在此状态下,物体之间的碰撞交互使用的是简单碰撞,射线(比如枪射出子弹)使用的也是简单查询,该种模式最高效。

将复杂碰撞用作简单碰撞(Use Complex As Simple):若请求简单查询,引擎将查询复杂形态,无视简单碰撞。该设置可将三角网格图用作物理模拟碰撞。**注意:如果您使用的是Use Complex As Simple,则无法模拟物体;但可将其和其他模拟(简单)物体进行碰撞。**通俗的说,在此状态下,物体之间的碰撞交互使用的是复杂碰撞,射线(比如枪射出子弹)使用的也是复杂查询,此种性能最低。

最推荐使用默认设置, 即简单与复杂模式,这种模式即保证了碰撞的高效,又保证了查询的精细。

4、碰撞类型

碰撞预设

虚幻中加入了多种碰撞预设,帮助我们快速设置场景中物体与物体间的碰撞关系,我们可以使用碰撞预设解决场景中大部分碰撞关系问题。

碰撞预设可以在项目设置-碰撞-Preset 中查找到

创建新的碰撞预设需要需要分别选择物体类型追踪类型

【UE4】物理引擎(蓝图)
【UE4】物理引擎(蓝图)
【UE4】物理引擎(蓝图)

两个物体,它们对对方的碰撞预设必须是一致的,不能一厢情愿。

物体类型

虚幻中使用物体类型来描述碰撞关系。虚幻只提供了少量的物体类型。我们可以在碰撞设置中进行添加。虚幻允许我们额外添加18种碰撞物体类型。

【UE4】物理引擎(蓝图)

踪迹类型

踪迹类型用来响应和射线之间的交互关系。虚幻中默认提供两种踪迹类型。我们可以自定义添加更多踪迹类型,最多18个踪迹类型。

【UE4】物理引擎(蓝图)

【UE4】物理引擎(蓝图)

比如,发出来一条Visibility类型的射线,如果你希望被打到,就勾选区块;不希望被打到就勾选忽略或者重叠。

碰撞预设面板

在碰撞预设描述面板中我们可以调整物体之间的碰撞关系,包括当前预设提供给的物体的对象类型,碰撞的方式,响应方式,踪迹类型。

踪迹类型:当前物体与射线发生关系方式

对象类型:当前对象类型与其他对象类型发生的关系方式

【UE4】物理引擎(蓝图)

碰撞启用

如果碰撞启用都没有开启,后面的也不用看了。

无碰撞(No Collision):没有任何碰撞信息产生,并且没有物理碰撞结果。

纯查询(Query Only):只会产生碰撞通知(堆叠通知),但没有物理效果

纯物理(Physics Only):只会产生物理通知,不产生碰撞通知

已启用碰撞(Collision Enabled):即会产生碰撞通知,又会产生物理效果

【UE4】物理引擎(蓝图)【UE4】物理引擎(蓝图)

5、碰撞响应

碰撞响应事件

虚幻中的碰撞响应分为忽略,堆叠,阻挡。与之对应的事件我们均可以得到。常见的StaticMesh组件,Collision组件均具备通知事件。并且我们可以调整组件的碰撞预设,或是自定义碰撞预设,以达到响应碰撞的不同结果。

【UE4】物理引擎(蓝图)

【UE4】物理引擎(蓝图)

重叠事件

重叠事件分为进入堆叠和推出堆叠,在虚幻中,如果希望获得堆叠事件通知,需要满足以下条件:

1、双方勾选生成堆叠事件(下图),中文翻译也是“生成堆叠事件”

2、物体有碰撞包裹

3、碰撞预设中物体之间的碰撞方式为重叠(有一方开启即可)

【UE4】物理引擎(蓝图)

撞击事件(hit事件)

撞击事件产生的必要条件:

1、希望接收事件通知方(在蓝图中写有组件命中节点的一方)勾选生成撞击事件

2、双方任意一方开启物理模拟

3、双方具备碰撞包裹

4、碰撞预设中物体的碰撞关系为阻挡

【UE4】物理引擎(蓝图)

(中文翻译为”模拟命中生成事件“)

5、物理追踪

追踪方式

虚幻中的物理追踪是指引擎运行状态下,允许我们使用线或是形状与场景物体产生交互,并将交互结果进行反馈,以达到动态生成物理交互响应的目的。

1、线性的检测(射线检测)(射击游戏,枪射出子弹)

2、形状检测(球,盒子,胶囊)

射线检测

射线检测分三种方式,**一种是通道检测(通道射线检测),一种是预设检测(预设射线检测),一种是物体类型(物体类型射线检测)。**检测的方式主要区别是用来筛选目标。

检测分为单检测(只能扫描到一个目标)和多个目标检测(返回多个目标)

单检测和多检测通俗理解:多检测就是射线能穿透,可以检测到多个目标。

【UE4】物理引擎(蓝图)

1、通道射线检测

使用轨迹通道为主要检测判定依据,碰撞物体与该通道必须为阻挡关系,才能被收集。

如果想要射线被检测到,需要保证物体的碰撞设置中,与该射线通道的响应方式为阻挡。

【UE4】物理引擎(蓝图)

(中文翻译为:由通道追踪线条)

Trace Complex :钩选后,射线便不跟物体的包裹进行交互,而是跟物体的复杂碰撞进行交互。

Actors to Ignore:这是一个放对象的数组,用于存放不想被射线打到的目标(比如射击游戏中的队友)

Ignore Self:是否忽略自己

Draw Debug Type:调试信息

2、预设射线检测

使用预设关系进行碰撞检测,需要填入预设名称。

注意:射线使用预设如同物体之间的预设关系一样,如果希望被射线检测到,需要保证射线预设物体类型,和希望被检测到的物体类型之间的响应关系为阻挡(注意预设设定需要双方预设关系种的物体响应方式均为阻挡),方可被检测到。

【UE4】物理引擎(蓝图)

Profile Name:放一种碰撞预设(填入该碰撞预设的名称),该射线的检测遵循该碰撞预设的设定。

3、物体类型射线检测

将希望被射线检测到的物体类型构建成为数组进行填入,并且只与类型匹配的物体产生交互关系。

【UE4】物理引擎(蓝图)

Object Types:这是一个数组,填入想要交互的物体类型。常见的物体类型有:静态场景(World Static)、动态场景(World Dynamic)、Pawn、物理形体(Physics Body)、载具(Vehicle)、可破坏物(Destructible)

形状检测

形状检测方式与射线检测方式相同,会根据给定的形状进行检测设定。

提供了三个形状:球形、盒形、胶囊形

【UE4】物理引擎(蓝图)

以球形通道检测为例,是从起始位置到结束位置不断发射球形:

【UE4】物理引擎(蓝图)

Radius是发射球的半径

【UE4】物理引擎(蓝图)

球形预设检测和球形物体类型检测和射线部分相同,便不在此赘述。

盒形和胶囊形与球形相同,不在此赘述。

5、作用力

虚幻中,物体开启物理模拟,即代表收到重力的影响。

虚幻中的力

在虚幻中力的作用方式分为两种:一种是冲力(impulse),一种是推进力(force)。推进力在虚幻中其实也是叫力,推进力是我们为了便于区分,取的名字。

区别:

冲力:瞬间力,作用结束后直接施加给物体,修正物体在物理引擎中的运动表现。(跑动的人撞到物体,施加的是冲力)

推进力:单帧作用力,当前帧力效果施加后,如下一帧不存在推进力,则作用力无效果。如果推进力是持续增 加力,随着时间推演作用力累加。像是火箭推进器。(用双手推物体,施加的是推进力)

只有开启了物理模拟的物体才能受到力的作用。

冲力

直接将冲力作用在物体质心,给定一个向量,描述方向和力的大小。

在其他引擎中,力不受物体质量影响,但虚幻中的力收到物体质量的影响。比如质量太大的物体,若施加的力太小,则物体不会被移动。决定该力受不受到质量影响,和Vel Change的勾选有关。

添加冲量(Add Impulse):

【UE4】物理引擎(蓝图)

Vel Change:不勾选,受质量影响。勾选,不受质量影响。

在位置添加冲量(Add Impulse at Location):

将从物体的质心到Location构建一个连接杆,然后再Location发力,作用效果如同是用杆撬动物体。

添加冲量(Add Impulse)不同的是,在位置添加冲量(Add Impulse at Location)可以选择发力的位置(Location)。比如,炮弹打到墙上,如果使用添加冲量(Add Impulse),则力永远都是从质心出发,这显然不符合实际情况。

【UE4】物理引擎(蓝图)

Bone Name:将力用作在骨骼上

推进力

推进力需要持续发力,所以一般我们需要将力放到持续调用的逻辑节点(比如,事件Tick)中才能获得效果。推进力也分为直接发力质心和通过修改发力点构建作用力杠杆发力。

添加作用力(Add Force)

【UE4】物理引擎(蓝图)

和冲力(冲量,Impulse)一样,添加作用力(Add Force)也有在位置添加作用力(Add Force at Location)。效果和冲力一样,不再赘述。文章来源地址https://www.toymoban.com/news/detail-410711.html

到了这里,关于【UE4】物理引擎(蓝图)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【虚幻4】UE4初学者系列教程(蓝图篇)-全中文新手入门教程(含蓝图节点详细介绍,即时更新~)

    蓝图篇 目录 蓝图基础逻辑 知识点1:蓝图是可视化编程 知识点2:蓝图是面向对象的编译型可视化编程语言 知识点3:关卡蓝图和蓝图类的区别 知识点4:蓝图数据类型 知识点5:节点的介绍 知识点6:引脚的介绍 知识点7:节点的执行顺序 知识点8:节点的类型 知识点9:节点

    2024年02月04日
    浏览(72)
  • 【虚幻引擎】UE4优化植被

    在UE4中,我们在做大型的室外场景时,经常会遇到植物过多导致延迟的现象,有时候我们需要在UE4的场景中放置几千几万甚至更多的模型,这些模型具有相同的LOD,并且基础模型都使用同一模型资源。因为模型文件拖入UE4场景中会自动使用Static Mesh Actor来表示,当在程序中放

    2024年02月15日
    浏览(57)
  • 【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(82)
  • 【虚幻引擎】UE4/UE5插件

    Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。 BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数,可以在蓝图中直接调用。 ContentOnly:创建一个只包含内容的空白文件 Editor Toolba

    2024年02月05日
    浏览(75)
  • 【虚幻引擎】UE4/UE5 pak挂载

     找到:D:UEUE_4.27EngineBinariesWin64,  WindowS+R打开CMD命令 运行UnrealPak,运行结果如下      注意如果想要加载Pak内资源,那么这些资源必须是经过Cook的。如果打包的是未Cook的资源,那么即使Pak挂载成功,也不可能会成功加载Pak内资源。  Cook好之后,存储的路径在你的I:DBJ

    2024年02月10日
    浏览(75)
  • 【虚幻引擎】UE4 Spline(样条线)

           样条线Spline在UE中是一个很好用的工具,能够设置物体的跟随移动,也能够设置物体的批量复制,还能够设置一个特殊的模型形状比如圆管,还可以设置特殊的粒子特效,做地形设计等等,只要你想要实现的效果,spline都可以实现。官方也提供了很多的案例,可以参考

    2023年04月10日
    浏览(68)
  • 【虚幻引擎UE】UE4/UE5 新人科普向

    Unreal Engine是当前最为流行的游戏引擎之一,具有丰富的游戏开发功能和强大的游戏引擎渲染能力。 UE5官方文档:UE5官方文档非常详细,介绍了UE5的各个功能和应用,适合入门学习和深入探究。链接:https://docs.unrealengine.com/5.1/zh-CN/ UE5中文社区:该社区聚集了大量的UE5开发者,

    2024年02月09日
    浏览(79)
  • 【虚幻引擎】UE4 FTabmanager实现多窗口

    我们先看源码的实现方式:FTabmanager类实现了创建窗口的不同方法 NewLayout:创建新的布局方式  RegisterTabSpawner:注册在模块启动时的函数,这个就是创建了一个窗口,窗口所放置的内容  RestoreFrom:从窗口中显示 调用独立窗口需要在模块启动的时候调用FGlobalTabmanager::Get()的Re

    2024年02月10日
    浏览(76)
  • 【虚幻引擎】UE4/UE5科大讯飞文字合成语音

    B站视频链接:https://space.bilibili.com/449549424?spm_id_from=333.1007.0.0   第一步:首先进入讯飞开放平台注册一个账号,然后创建一个 创建一个应用,命名按照你自己的想法来,会产生一个APPID,具体参考UE4如何接入科大讯飞的语音识别_ue4 科大讯飞的语音识别_飞起的猪的博客-CSDN博

    2024年02月13日
    浏览(72)
  • 【虚幻引擎】UE4/UE5鼠标点击事件实现物体移动

     在UE4/UE5中,引擎有它自己的一套框架体系,虚幻就是基于这一个框架体系来实现的。其中就有PlayerController(玩家控制器),玩家控制器中就有对鼠标的一系列设置,包括显示鼠标,允许点击事件等。  1.创建PlayerController,命名为MyPlayerController 2.打开MyPlayerController,勾选参数

    2024年02月10日
    浏览(115)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包