外观
UE5-ChaosCloth
约 1231 字大约 4 分钟
2025-11-06
基于「红衣舞女」项目实践整理,涵盖 Marvelous Designer → Unreal Engine 5 的完整布料模拟工作流。
目录
- MD → ChaosCloth 工作流概述
- CG 参数设置
- Skinned Triangle Mesh(STM)碰撞
- Cloth-Cloth 层间约束
- 分部 TransferWeight
- 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(推荐接近 30) | Epic 官方示例使用约 20;实测 24 已足够;条件允许时尽量接近 30 |
| 碰撞厚度(内层贴身衣物) | 5 | 适用于内层紧身服装 |
RenderMesh 参数
| 参数 | 要求 |
|---|---|
| 总面数 | 需符合角色资产规范 |
| 粒子密度(前期流程) | 不低于 12 |
3. Skinned Triangle Mesh(STM)碰撞
原理
STM 碰撞体支持直接使用角色模型生成复杂碰撞形状,能更真实地还原体型轮廓,但相应会增加性能开销。
制作 LOD 碰撞模型的建议
建议在制作角色体模时,同步制作低精度的 LOD2 或 LOD3 模型用于物理碰撞:
- ✅ 确保 LOD 模型的面包裹住 LOD0
- ✅ 面数不高于 2000,1000 左右为最佳
- ✅ 角色关节部分提供更多分段
引擎生成 LOD 参数
直接使用 LOD2 角色模型,由引擎生成 LOD,推荐参数:
Percent of Triangles: 0.02
Max Triangles Count: 2000STM 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:将合并结果的自身权重转移给 RenderMesh6. Proxy Deformer
功能
使用 Selection 可以指定不同区域的 RenderMesh 由哪个 SimMesh 驱动,从而更合理地利用 SimMesh 驱动 RenderMesh。
适用场景
- 服装不同区域对应不同的模拟精度需求
- 需要对局部区域进行独立的解算控制
附:关键参数速查表
| 参数 | 推荐值 |
|---|---|
| SimMesh 粒子密度 | 24 ~ 30 |
| 内层衣物碰撞厚度 | 5 |
| RenderMesh 粒子密度(前期) | ≥ 12 |
| STM LOD 面数上限 | ≤ 2000(最佳约 1000) |
| 引擎 LOD 生成 - Percent of Triangles | 0.02 |
| 引擎 LOD 生成 - Max Triangles Count | 2000 |
本文档基于项目「红衣舞女」的 ChaosCloth 流程测试经验整理,适用于 UE5 实时布料模拟工作流参考。
