Skip to content

UE5-ChaosCloth

约 1231 字大约 4 分钟

2025-11-06

基于「红衣舞女」项目实践整理,涵盖 Marvelous Designer → Unreal Engine 5 的完整布料模拟工作流。


目录

  1. MD → ChaosCloth 工作流概述
  2. CG 参数设置
  3. Skinned Triangle Mesh(STM)碰撞
  4. Cloth-Cloth 层间约束
  5. 分部 TransferWeight
  6. Proxy Deformer

1. MD → ChaosCloth 工作流概述

背景

Marvelous Designer(MD)可导出携带模拟信息的 USD 文件。相比在 ClothAssets 中手动配置繁琐的 XPBD / PBD 参数,USD 文件流程可以节省大量人工时间。

推荐架构

ChaosCloth 推荐采用 双 Mesh 架构,以平衡视觉表现与实时性能:

Mesh 类型用途
SimulationMesh(模拟网格)用于物理解算,精度优先
RenderMesh(渲染网格)用于最终渲染,面数受控

工作流程图

Marvelous Designer

       ├──────────────────────────────────────────┐
       ▼                                          ▼
Simulation Mesh (USD File)              Render Mesh (FBX File)
       │                                          │
       ▼                                          ▼
UE5 ChaosCloth                       Maya / Max / Blender
       ▲                                          │
       └──────────────────────────────────────────┘
                                       Render Mesh (FBX File)

注意: MD 本身支持在 USD 中同时包含 SimMesh 和 RenderMesh。考虑到烘焙和微调的需求,建议导出 FBX 后在 DCC 软件中处理。


2. CG 参数设置

Simulation Mesh 参数

参数推荐值说明
粒子密度~24(推荐接近 30Epic 官方示例使用约 20;实测 24 已足够;条件允许时尽量接近 30
碰撞厚度(内层贴身衣物)5适用于内层紧身服装

RenderMesh 参数

参数要求
总面数需符合角色资产规范
粒子密度(前期流程)不低于 12

3. Skinned Triangle Mesh(STM)碰撞

原理

STM 碰撞体支持直接使用角色模型生成复杂碰撞形状,能更真实地还原体型轮廓,但相应会增加性能开销。

制作 LOD 碰撞模型的建议

建议在制作角色体模时,同步制作低精度的 LOD2 或 LOD3 模型用于物理碰撞:

  • ✅ 确保 LOD 模型的面包裹住 LOD0
  • ✅ 面数不高于 20001000 左右为最佳
  • ✅ 角色关节部分提供更多分段

引擎生成 LOD 参数

直接使用 LOD2 角色模型,由引擎生成 LOD,推荐参数:

Percent of Triangles:  0.02
Max Triangles Count:   2000

STM vs 传统 Capsule 对比

对比项STM传统 Capsule
长裙 / 旗袍腿部轮廓✅ 更自然贴合❌ 较为生硬
配置复杂度✅ 更直观简单❌ 需手动配置 Capsule 资产
额外制作成本需单独制作 LOD2 或物理用 SKM无需额外模型
性能开销物理解算时间约 +1.5ms基准

混合使用技巧

在没有独立 LOD 模型时,STM 可与传统 Capsule 同时工作,以避免穿模问题:

  • 手部增加包裹手部的胶囊体
  • 关节处增加球状碰撞,避免膝盖穿过衣服

4. Cloth-Cloth 层间约束

原理

Cloth-Cloth 是为实时场景下替代 SelfCollision 的一种约束方式:

  • 利用多层 Mesh 之间的 FaceVert 生成弹性约束
  • 弹性约束的拉伸刚度压缩刚度可独立调整
  • 例如:仅设置压缩刚度、不设置拉伸刚度,可有效处理自碰撞

与 SelfCollision 对比

场景层间约束(Cloth-Cloth)SelfCollision
碰撞后回弹效果✅ 更好一般
衣服外侧飘带表现✅ 更好一般
实时性能✅ 更优较高开销

结论: 对于多层服装(如带飘带的汉服、长裙等),推荐优先使用 Cloth-Cloth 层间约束替代 SelfCollision。


5. 分部 TransferWeight

问题背景

使用单一的 SK → SimMesh 权重转移时,无法针对每个部分精细管理权重参数。

典型问题: 腰间飘带与裙摆存在重叠区域,若权重参数一致,会出现:

  • 飘带导致裙摆停滞,或
  • 裙摆导致飘带过于跟随

解决方案:分部独立处理

步骤 1:将飘带拆分,单独导出 USD
步骤 2:飘带单独从骨骼上转移权重
步骤 3:飘带与其他部分权重转移完成后合并
步骤 4:将合并结果的自身权重转移给 RenderMesh

6. Proxy Deformer

功能

使用 Selection 可以指定不同区域的 RenderMesh 由哪个 SimMesh 驱动,从而更合理地利用 SimMesh 驱动 RenderMesh。

适用场景

  • 服装不同区域对应不同的模拟精度需求
  • 需要对局部区域进行独立的解算控制

附:关键参数速查表

参数推荐值
SimMesh 粒子密度24 ~ 30
内层衣物碰撞厚度5
RenderMesh 粒子密度(前期)≥ 12
STM LOD 面数上限≤ 2000(最佳约 1000)
引擎 LOD 生成 - Percent of Triangles0.02
引擎 LOD 生成 - Max Triangles Count2000

本文档基于项目「红衣舞女」的 ChaosCloth 流程测试经验整理,适用于 UE5 实时布料模拟工作流参考。

贡献者: Astroite, Claude Opus 4.6