物理

虚幻引擎中的物理

Chaos物理系统 Chaos物理系统是虚幻引擎提供的轻量级物理模拟解决方案,拥有全新的设计,用以满足次世代游戏需求。 该系统包括以下主要功能:

  • 破坏效果
  • 联网物理
  • Chaos可视调试器
  • 刚体动力学
  • 刚体动画节点和物理动画
  • 布料物理和机器学习布料模拟
  • 布娃娃物理
  • 载具
  • 物理场
  • 流体模拟
  • 毛发物理
  • 血肉模拟 下文概述了各项功能:

破坏效果

Chaos破坏系统 Chaos破坏系统是虚幻引擎的一套工具集,可用于达到电影级质量的实时破坏效果。 除了炫目的视觉效果,该系统还优化了性能,让美术和设计师能够更好地控制内容创作。

Chaos破坏系统利用了几何体集合,这是一种根据一个或多个静态网格体编译的资产,包括蓝图中嵌套的静态网格体。 这些几何体集合可以破裂,从而达到实时破坏效果。

该系统使用直观的非线性工作流对破裂过程进行前所未有的控制。 用户可以在几何体集合的多个部分上创建多个破裂级别和选择性破裂,更好地进行美术控制。 用户还可以为各群集分别定义触发破裂所需的破坏阈值。

你可以使用连接图表进一步修改结构在受到破坏时的坍塌效果,以模拟真实世界的结构完整性。 Chaos破坏系统提供了"世界支持",让你可以将几何体集合的某些部分设为符合运动学,不再需要使用锚点场。

Chaos破坏系统还提供了一套缓存系统,该系统能够追踪事件和变换。 该系统能逐帧捕获变换和事件,减少了破坏数据量,从而实现高效存储和播放功能。 该系统可在运行时流畅地播放复杂的破坏效果,最大程度地降低对性能的影响。 请务必注意,缓存模拟仍然可以交互,因为模拟的某些部分可能在交互时"激活"。

Chaos破坏系统还深度集成了虚幻引擎的Niagara粒子系统。 Niagara可读取Chaos破坏系统的分解事件(Break Events)和碰撞事件(Collision Events),从而在运行时生成粒子或修改现有粒子系统。

此外,Chaos破坏系统还集成了物理场系统。用户可使用物理场系统在运行时对指定空间区域内的Chaos物理系统的模拟施加影响。 物理场可以用多种方式来影响物理模拟,例如在刚体上施加力、打破几何体集合群集、锚定或禁用破裂的刚体。

如需详细了解Chaos破坏系统,请阅读如下文档:

    • Chaos破坏系统 — 介绍了在哪里可以找到关于虚幻引擎中的破坏系统的学习资源。

联网物理

联网物理 游戏中的联网或复制是指通过互联网连接在多台设备之间传递Gameplay信息的能力。 虚幻引擎具有健壮的网络框架,可帮助开发者简化多人游戏的创建。

联网物理是网络框架的一部分,使物理驱动型模拟能够在多人游戏环境中运行。 在虚幻引擎中,物理复制是指具有复制的移动效果且能模拟物理效果的Actor。 在Gameplay过程中,这些模拟在本地客户端(玩家的设备)内运行。

虚幻引擎提供了三种复制模式:

默认(Default)复制模式是虚幻引擎的旧版物理复制模式。 此模式在复制其移动且其根组件被设为模拟物理的Actor上激活。

预测性插值(Predictive Interpolation)复制模式专为服务器授权的Actor而设计。 工作原理是改变每个对象在客户端上的速度,以匹配当时对象在服务器上的速度,类似于默认模式。 然而,此模式旨在更好地处理客户端上的交互和局部物理改变,条件是该操作按预测的方式完成(预计在服务器和客户端上统一应用)。

重新模拟(Resimulation)复制模式专为服务器授权的Pawn和Actor而设计。 这种模式旨在通过客户端对物理效果的预测,在多人游戏中实现物理Pawn,并更精确地处理各种交互。 当客户端从服务器接收状态信息时,客户端会将其与历史记录中相应物理帧的缓存物理状态进行比较。 如果状态信息的差异足够大,就会触发物理重模拟。

如需详细了解联网物理,请阅读如下文档:

Chaos可视调试器

Chaos可视调试器 Chaos视觉调试器(CVD)是用于Chaos物理系统模拟的视觉调试工具。 该调试器提供了Chaos物理场景的图形视图,并配备了用于直观显示数据和分析模拟结果的各种工具。

CVD作为编辑器工具和运行时系统包含在虚幻引擎中,用于记录Gameplay过程中的物理模拟状态。 然后,它可以在工具内部重放这些模拟,并检查模拟的任何给定帧或子步骤的数据。

如需详细了解Chaos视觉调试器,请阅读如下文档:

刚体动力学

物理约束 Chaos物理系统提供了许多种刚体动力学功能。 这包括碰撞响应、物理约束以及阻尼和摩擦。 此外,它还提供了异步物理模拟和联网物理。

如需详细了解刚体动力学,请阅读如下文档:

    • 碰撞 — 关于碰撞、碰撞响应及碰撞预制的所有内容。
    • 物理约束 — 在物理对象相互之间和世界场景之间设置约束
    • 物理组件 — 介绍物理相关的组件,其中包括物理动画、推进器组件以及力组件。

刚体动画节点和物理动画

物理刚体动画节点 Chaos物理系统能在运行时为角色提供刚体模拟和物理动画。 该系统会使用物理资产编辑器为角色的骨架网格体设置可随角色动画而模拟的刚体。 与静态动画相比,这种方式能为被模拟的物体实现更逼真的运动效果。

如需详细了解刚体动画节点和物理动画,请阅读如下文档:

    • 物理资产编辑器 — 用于设置物理形体和约束的编辑器,而骨架网格体的物理模拟与碰撞会用到这些物理形体和约束。

布料物理和机器学习布料模拟

Chaos布料可为游戏和实时体验提供精确、高性能的布料模拟。 该系统提供了丰富的用户控制功能和物理反应(比如风),可实现特定的美术构想。 此外,Chaos布料还配备了强大的动画驱动系统,可以使布料网格体变形,以匹配其父项的带动画骨架网格体。

Chaos布料参数对蓝图公开,从而在运行时实现了对布料模拟前所未有的精密控制。 用户可以根据特定用例的Gameplay条件来修改模拟参数。 例如,潜入到水下时,角色的服装将会作出不同的反应。

Chaos布料配备了一套强大的调试工具,例如可视化工具和调试控制台命令等,可简化调试并缩短迭代时间。 用户可以直观地看到主动布料模拟、运动学和动态粒子,甚至是模拟时间。

Chaos布料还提供机器学习布料模拟功能。 相比基于物理的传统模型,该系统能带来更高的保真度,并使用经过训练的、可实时使用的数据集,从而生成之前只能通过离线模拟来实现的结果。

Chaos布料面板节点编辑器是虚幻引擎5.3中新引入的工作流程。 该工作流程侧重于缩短迭代时间,让你能在引擎中以更灵活、非破坏性的方式创作Chaos布料。 此系统使用一种布料资产,该资产能存储在运行时生成和模拟布料所需的所有信息。 编译布料资产时,你可以从外部基于面板的数字内容创建(DCC)包中导入静态网格体,并转移蒙皮权重和遮罩。 创建资产后,你就可以通过Chaos布料组件将其应用于骨架网格体或静态网格体。

如需详细了解布料物理,请阅读如下文档:

    • 布料模拟 — 入门学习虚幻引擎中的布料模拟。

布娃娃物理

布娃娃物理 Chaos物理系统自带布娃娃物理系统,即一种为连接到骨架网格体的刚体实时制作动画(模拟)的系统。 此类系统常被用于模拟人形角色坠落时的动作。 下方示例为MetaHuman示例项目,该项目为玩家角色设置了布娃娃物理效果。

如需了解详情,请阅读MetaHuman示例文档并下载MetaHuman示例,以查看一款文档齐全的布娃娃设置。

Chaos载具

Chaos载具 Chaos载具是虚幻引擎用来执行载具物理模拟的轻量级系统。

该系统为用户提供了更大的灵活性,因为它能逐车模拟任意数量的车轮。 你还可以配置任意数量的前进挡和后退挡,以进一步实现自定义效果。

Chaos载具支持复杂的载具模拟配置。 你可以添加任意数量的翼面,而这类翼面可在底盘的特定位置提供下行压力或升力。 这些翼面还可以模拟载具扰流板,甚至模拟飞行器的机翼或方向舵。 你可以通过滚动、俯仰和偏转等方法操纵这些控制表面。

在模拟运行时,你甚至可以完全关闭轮胎摩擦和发动机模拟。 此外,用户还可以配置任意数量的推力,这些推力可以被施加在特定位置,以推动和控制车辆的方向。

该系统支持虚幻引擎5中的异步物理模式,从而提高了模拟的确定性,确保了每次模拟都能获得可预测的结果。

搭配使用骨架网格体和一个或多个轮子蓝图,即可在引擎中呈现载具。 系统使用物理资产在物理编辑器中生成相应的碰撞几何体,使用动画蓝图自动生成轮子的转向和旋转动画。

最终,创建出包含骨架网格体、动画蓝图和载具控制点的轮式载具Pawn蓝图。

如需详细了解Chaos载具系统,请阅读如下文档:

    • 载具 — 虚幻引擎载具文档。

物理场

物理场系统(Physics Field System)提供了一款工具,能在运行时直接影响特定空间中的Chaos物理系统的模拟效果。 你可以配置这些场,从而以各种方式影响物理模拟,例如在刚体上施加力、打破几何体集合群集、锚定或禁用破裂的刚体等。

此外,物理场系统还可以与其他引擎系统通信,例如Niagara和材质。 这些系统可以通过内置功能对特定地点的物理场求值,从而对物理场进行取样。

要设置场,请先创建场系统组件(Field System Component)蓝图,然后指定允许哪些系统查询你的场。 你可以将场配置为世界场(World Field),以允许材质和Niagara系统对该场进行取样。 此外,你还可以将场配置为Chaos场(Chaos Field),以允许几何体集合和其他物理对象与其交互。

如需详细了解物理场,请阅读如下文档:

    • 物理场 — 物理场允许用户在运行时直接控制某片区域内的Chaos物理的模拟效果。

流体模拟

流体模拟 虚幻引擎5提供了一组用于实时模拟2D和3D流体效果的工具。 这些系统使用基于物理的模拟方法,来产生逼真的效果,例如火焰、烟雾、云层、河流、飞溅物和海滩上的波浪。

这套工具旨在让美术师尽可能容易上手,通过利用模拟阶段、可复用的模块,和强大的数据接口,成为一个开放实验平台。

美术师只需修改几个参数,就能实时实现想要的效果。高级用户和研发工程师则可以深入其中,拆分模拟器来尝试新的算法。

如需详细了解流体模拟,请阅读如下文档:

    • 流体模拟 — 虚幻引擎5提供了一系列工具,用于实时模拟流体效果。

毛发物理

毛发物理 虚幻引擎的毛发渲染和模拟系统使用基于发束的工作流程,以物理准确的运动渲染每一束毛发。 它支持美术师针对DDC包中创建的groom实时模拟和渲染数十万根甚至更多逼真的毛发。

如需详细了解毛发物理,请阅读如下文档:

Chaos Flesh

Chaos Flesh系统可在虚幻引擎中对可变形物体(软体)提供高质量的实时模拟。 与刚体模拟不同,软体的形状可以在模拟过程中根据软体的属性发生变化。

该系统支持使用各种参数模拟静态和骨骼网格体,使美术师能够对最终结果进行前所未有的控制。 我们设计该系统的目的主要专注于模拟骨骼动画期间角色的肌肉变形。

Chaos Flesh系统通过在运行时模拟低分辨率几何体,并利用高分辨率电影品质几何体离线模拟得到的缓存结果来实现高性能。

如需详细了解Chaos Flesh系统,请阅读如下文档:

    • Chaos Flesh — 这组页面将介绍虚幻引擎中的Chaos Flesh系统。

数据流图表系统

数据流的不同之处 数据流图表系统是虚幻引擎编辑器内的一套基于节点的程序化资产生成环境。

创建数据流是为了在引擎中创建某些资产类型时优化迭代时间。 同一数据流图表可被多个资产使用,而且图表本身可根据源资产提供的输入而产出不同的结果。

数据流是一套通用系统,可适配各种物理资产类型,如Chaos布料、Chaos Flesh和几何体集合破裂等。 该系统被设计为可由C++开发者扩展。 开发者可以根据具体需求进一步调整系统。

阅读如下文档即可详细了解数据流:

其他文档:

    • 物理材质 — 用于模拟图元物理效果的资产。分为直接应用以及通过材质应用。可用于配置并控制模拟所用的物理属性。
    • 物理子步 — 对物理子步的解释,及其使用时机的说明。
    • 可行走斜面 — 解释 Walkable Slope Override,以及在何种情况下会使用到它。