Chaos 布料
Chaos Cloth
UE5 的布料由 Chaos Cloth 解算器模拟,它是一个基于粒子的底层解算器。有两套制作流程:一是传统流程,在骨骼网格编辑器里直接选材质分段、绘制参数遮罩(最大距离、背挡、动画驱动等);二是 UE 5.3 起的 Panel Cloth Editor,用独立的布料资产和 Dataflow 节点图搭建,支持可选的 XPBD 约束和水平集体积 (Level Set Volume) 碰撞。
解算器
官方:UE 使用 Chaos Cloth 解算器,这是一个负责粒子模拟的底层布料解算器。由于可以直接访问模拟数据,集成可以做得很轻量、可扩展性强。编辑器内的 Clothing Tools 让开发者直接在 UE 里完成制作和反复调试,不依赖外部工具,修改效果实时可见。(Clothing Tool in Unreal Engine)布料的外观着色是另一回事,见 布料着色;刚体与破碎见 Chaos 物理与碰撞。
传统流程:在骨骼网格上绘制
- 在 Skeletal Mesh Editor 中用 Section Selection 选中某个材质分段,从这个 LOD 分段创建布料资产 (Clothing Asset)。
- 如果是角色,给布料资产指定其 Physics Asset,用于碰撞。
- 右键分段,Apply Clothing Asset 把资产绑定到渲染网格。
- 用 Cloth Paint 面板绘制参数(左键绘制、Shift+左键擦除、H 预览)。(Clothing Tool in Unreal Engine)
| 绘制参数 | 含义(官方) |
|---|---|
| Max Distance | 布料上每个点离开其动画位置的最大距离 |
| Backstop Distance | 在 Max Distance 范围内限制移动的偏移 |
| Backstop Radius | 一个球体半径,与 Max Distance 相交的区域内,绘制过的点不能进入 |
| Anim Drive Multiplier | 驱动弹簧把布料拉回动画位置,便于动画师在过场中控制 |
Max Distance 的直观理解:布料粒子 被约束在以其蒙皮动画位置 为球心的球内,,其中 是绘制值(这是对官方定义的形式化表述)。绘制为 0 的点完全跟随蒙皮,蒙皮本身见 顶点混合与蒙皮。
Panel Cloth Editor(UE 5.3+)
UE 5.3 引入了新的布料制作方式:一个布料资产 (Cloth Asset) 保存运行时生成和模拟所需的全部信息,在 Chaos Cloth Panel 节点编辑器中构建,用 Dataflow 图从多种来源生成布料。可以从外部基于版片的 DCC 工具导入静态网格,并传递蒙皮权重和遮罩;可以加入 XPBD 布料约束,使用 LSV 碰撞。(Panel Cloth Editor Overview)
下图对比两套流程的数据组织:
flowchart TB
subgraph "传统流程"
A["骨骼网格材质分段"] --> B["Clothing Asset 绑定在网格上"]
B --> C["绘制 Max Distance 等遮罩"]
end
subgraph Panel Cloth Editor
D["DCC 版片静态网格"] --> E["Dataflow 图"]
E --> F["独立 Cloth Asset 不依赖骨骼网格"]
E --> G["可选 XPBD 约束 与 LSV 碰撞"]
end
C --> H["Chaos Cloth 解算器"]
F --> H两套流程使用同一个 Chaos 解算器,差别在制作方式和数据:新编辑器多了可选的 XPBD 约束类型;不会把布料度量烘焙到垂坠姿势 (draped pose),因此配置得当时即使用旧约束效果也更好;布料资产独立于骨骼网格。官方说明它的长期目标是同时支持实时流程和(借助缓存的)影视特效流程;Dataflow 图的搭法决定模拟是偏快还是偏精确。(Panel Cloth Editor Overview)
取舍
- 传统流程上手快,适合在已有角色网格上加裙摆、披风;版片流程适合服装从 DCC 版片开始制作的管线(这是归纳)。
- 碰撞依赖 Physics Asset,碰撞体太粗会穿模,太多又增加开销。
- Anim Drive 可以在过场中把控制权交还给动画,但设得太强会让布料显得僵硬(一般经验)。
出处
- Clothing Tool in Unreal Engine UE 5.8 文档
- Panel Cloth Editor Overview UE 5.8 文档