Chaos Physics 是测试版功能,它是《堡垒之夜》中使用的轻量级物理模拟解决方案,包括以下主要功能。
- RBAN(刚体动画节点)
- 破坏
- 布料
- 布偶
- 载具
使用Chaos Physics时,用虚幻引擎执行基本物理模拟,用户应该不会觉得与PhysX存在太大差异。以下概述提供了有关如何启用Chaos Physics的一些详细信息,包括将项目从PhysX过渡到Chaos Physics的功能要点和故障排除提示。
启用Chaos Physics
如果要为你的项目启用Chaos Physics,请执行以下步骤。
-
从GitHub下载最新的虚幻引擎源代码。
-
将
.ZIP
文件解压到文件系统。 -
从引擎/源(Engine/Source)文件夹,使用文本编辑器打开
UE4Editor.Target.cs
。 -
将以下代码添加并保存到
UE4Editor.Target.cs
。
BuildEnvironment = TargetBuildEnvironment.Unique;
bCompileChaos = true;
bUseChaos = true;
- 确认
UE4Editor.Target.cs
如以下所示代码块。
public class UE4EditorTarget : TargetRules
{
public UE4EditorTarget( TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
BuildEnvironment = TargetBuildEnvironment.Unique;
bBuildAllModules = true;
ExtraModuleNames.Add("UE4Game");
bCompileChaos = true;
//请注意,对于4.23或更早版本,不需要以下行。
bUseChaos = true;
}
}
-
从引擎根文件夹,运行
Setup.bat
。 -
确认
Setup.bat
运行成功后,运行GenerateProjectFiles.bat
。 -
使用Visual Studio打开
UE4.sln
,使用源代码构建引擎。 -
创建新项目,并打开它。
-
确认在 编辑(Edit) > 插件(Plugins) > 物理(Physics) 菜单中启用了 Chaos解算器(Chaos Solver)、Chaos布料(Chaos Cloth) 和 Chaos布料编辑器(Chaos Cloth Editor)。
-
如果你启用了任一Chaos插件(如 ChaosVehiclesPlugin 或 ChaosCaching),请重启虚幻编辑器。
功能亮点
Chaos RBAN
如果开发人员选择启用Chaos Physics,则在通过PhAT编辑器使用 Chaos RBAN 时,用户界面和现有参数将保持不变,技术动画师、角色美术师和可视化专家应该能够使用与之前相同的开发工作流。
Chaos RBAN包括以下内容。
*可以明确设置约束位置(数字和句柄)。
- 与PhysX相比,迭代次数更少,稳定性更高。
- 现在,模拟编辑器使用相同的解算器。
- 关节稳定性更好,链条可以更长。
- 调试绘图改进。

调试绘图中的星际行者
Chaos Physics支持速度驱动、易碎关节、碰撞恢复、启用碰撞的设置、适当的椭圆椎体约束、启用重力设置、关节线性和角度恢复以及角度投影。此外,Chaos RBAN将具有 RBAN世界对象支持 和 RBAN模拟空间 功能。
RBAN世界对象支持
该RBAN世界空间对象系统支持将对象从主要世界模拟复制到RBAN模拟的功能。UE和PhysX兼备时可以使用此功能,,但此功能并不完善,只能在特定场景中使用,在真正的游戏中并不实用。RBAN世界对象支持的Chaos版本对于发布产品而言更加完善。
RBAN世界对象支持包括以下功能。
- 将附近的世界对象作为静态对象添加到RBAN模拟中。
- 支持用于世界空间RBAN模拟的世界对象系统。
- Chaos Physics的新功能和专有功能:
- 将附近的世界对象作为运动学对象添加到RBAN模拟中。
- 当世界物体不在附近时,将其从RBAN模拟中移除。
- 支持用于组件空间和骨骼空间RBAN模拟的世界对象系统。
RBAN模拟空间
组件空间和骨骼空间模拟与RBAN一起使用,可防止非现实的Actor移动影响模拟中的主体,并导致不合需求的行为。然而,这也完全阻止了RBAN模拟以任何方式响应Actor移动,这通常也是不利的。
RBAN模拟空间 功能可以将角色的世界空间移动(平移和旋转)的可控制量传递到任何RBAN模拟中。因此,开发人员可以使局部空间RBAN模拟对Actor移动做出响应,但可以减少和限制效果,防止非现实运动出现瑕疵(例如快速旋转和极度加速)。
UE+PhysX中已经存在带有 ComponentLinearAccScale
及其相关设置的类似功能,但是它仅提供了线性运动转移,这限制了它的实用性。例如,如果你在现场旋转Actor,则组件空间RBAN模拟将完全不会响应。
新系统支持完整的线性和角运动转移,包括科里奥利力、离心力和欧拉力,从而使我们能够有效地从世界空间模拟转变到局部空间模拟(请参阅下面 模拟空间设置 中的 MasterAlpha)。

RBAN模拟空间设置
Chaos布料
Chaos布料 是一种物理解决方案,使游戏开发人员、美术师和实时用户可以在移动设备及高端电影机器等系统上模拟布料。借助RBAN,当使用Chaos布料解算器的未来版本弃用PhysX时,开发人员将能够继续使用当前的工作流。

调试Chaos布料。
Chaos布料包括以下功能。
- 附加HUD布料反馈。
- 附加调试绘制CVar。
- 重写的布料参数。
- 增加了每块布料的碰撞支撑,超出之前的32个球体限制。
- 附加封装变形器,具有更高的影响质量。
- 界面角色和布料菜单视口,用于进行布料创作,例如,平面阴影双面长距离固定绳、粒子索引等。
布料LOD支持
现已为开发人员提供全面的 布料LOD 支持。

Chaos布料LOD更新
Chaos Ragdoll
Chaos Ragdoll 使角色美术师、动画师和工程师能够将动态物理动作与动画融合在一起,以增强游戏性,并为角色添加独特的动作。

模拟编辑器中的Chaos Ragdoll。
Chaos Ragdoll包括关节约束奇偶校验、用于关节碰撞和碰撞管理器的PhysX,以及用于根动画、Sequencer PIE支持和运动学角色交互的骨骼网格体支持奇偶校验。
Chaos载具(实验版)
在未来的版本中,Chaos载具 将取代基于PhysX的汽车载具系统,并提供与开发人员习惯使用的相同功能水平。
确认你的项目启用了 ChaosVehiclesPlugin。该插件位于 编辑(Edit) > 插件(Plugins) > 物理(Physics) 下,并且依赖于为你的项目启用了Chaos Physics功能;启用PhysX后将无法使用。

组成Chaos载具的单独资产类似于PhysX载具插件中的资产。
- 一个骨架网格体
- 一个物理资产
- 一个动画蓝图
- 一个载具蓝图
- 一个或多个轮子蓝图。
如果你已经熟悉PhysX载具,这些是Chaos等效类名称。它们以类似的方式配置。
PhysX组件 | Chaos组件 |
---|---|
VehicleWheel | ChaosVehicleWheel |
VehicleMovement | ChaosWheeledVehicleComponent |
VehicleAnimInstance | VehicleAnimationInstance |
WheelHandler | WheelController |
WheeledVehicle | WheeledVehiclePawn |
载具不再局限于只有四个轮子。可以将任何数量的轮子蓝图添加到载具。ChaosVehicleWheel 蓝图可以表示单个轮子,但更常见的是将其定义为车轴上的一组轮子。
将 WheelController 节点添加到 VehicleAnimationInstance 蓝图,意味着将自动处理轮子的转向和旋转动画。

使用物理编辑器的方式与以前相同,可以为骨骼网格体的骨骼生成碰撞几何体。这将为载具生成物理资产。

载具物理编辑器
要设置更复杂的附件,例如高级载具蓝图的多段天线,需要将天线创建为单独的物理资产,并作为载具动画蓝图中的RBAN节点添加到载具中。由于可以针对每个附件单独调整RBAN仿真,并且附加对象不会影响载具的移动,因此这更加高效。
载具蓝图或 WheeledVehiclePawn 包含 载具移动组件,可以在其中调整所有载具设置。可以通过蓝图访问载具运动组件,以便设置或获取状态,例如载具功能按钮。

如果你要尝试使用Chaos载具插件,请从以下指南着手。
Chaos破坏系统
APEX与Chaos Destruction不兼容。有关设置Chaos Destruction的更多信息,请阅读此文档。
故障排除技巧
Chaos载具(实验版)
有多种控制台命令可以帮助你启用调试渲染,以便可视化模拟情况,或者禁用模拟中的某些功能或力。所有控制台命令均以 p.vehicle
开头。
如果你要将现有的载具设置从PhysX资产转换为Chaos,则可以使用引擎的简洁功能更改用于蓝图的基础类。如果你有不想重建的复杂悬架设置,这对于更改动画蓝图类特别有用。从现有的载具动画蓝图中,选择 文件(File),然后选择 重定父级蓝图(Reparent Blueprint),最后选择 VehicleAnimationInstance。现在,旧的PhysX WheelHandler 节点将生成错误,只需将其删除并替换为新 WheelController,即可重新创建相同的连接。
Chaos Destruction
显示层级、分类归并刚体的信息群集等,将有助于开发人员调试Chaos Destruction相关问题。要了解更多信息,请阅读有关几何体集合调试绘制的信息。