【UE】MLCloth学习

前置资产Cloth Panel

  • Chaos Cloth Asset
  • Chaos Cloth Asset Editor
  • Chaos Cloth

SM_Quinn_shirt_SIM 驱动SM_Quinn_shirt

模拟网格SM_Quinn_Shirt 包含三种材质和几何体厚度。由于其网格分辨率和厚度较高,直接在引擎中模拟并非最佳选择。渲染(LOD0)网格
模拟网格( SM_Quinn_shirt_SIM )采用单一材质,且网格较薄。我们添加了醒目的颜色材质,以便将其与渲染网格在视觉上区分开来。由于分辨率较低且没有厚度,该网格更适合用于模拟。

创建ClothAsset

1789648503992

转移蒙皮权重

img

皮肤重量传递算法有两种:

  • 图像修复权重(默认)
  • 表面上的最近点

1789648807944

MaxDistance权重绘制

预览

1789700708926

1789701408256

机器学习布料模拟 ML Cloth

加载插件

  • Chaos Cloth Generator
  • ML Deformer Framework
  • ML Deformer Nearest Neighbor Model(ML Deformer Detail Pose Model)

创建 ML Deformer资产

生成模拟缓存

在UE编辑器中直接生成

img

SkeletonMesh:
布料必须是骨骼网格体资源,且必须与ClothAsset具有相同的网格(相同的顶点数量/顺序)

ClothAsset:
前面创建的ChaosClothAsset 资产

Animation Sequence:(如何得到随机Pose动画序列:ML Deformer的工作流程)
用到的动画序列就是神经网络需要用到的训练姿势,官方建议5000个随机姿势(Epic提供了一个叫做“PosGenTool”的Maya插件,后面会单独提到如何在dcc中生成训练集)。默认情况下,此工具会获取每个姿势,并模拟布料 N 步直至稳定,并将最终结果保存到输出几何体缓存中。

Frames to simulate :动画序列中要模拟的帧。例如“0, 2, 5-10, 12-15”。如果为空,则模拟所有帧。对于测试很有用。

Simulated Cache Name(模拟缓存):直接New一个资产用于存放模拟缓存,对于 5000 帧的长帧模拟,几何体缓存的大小会达到数GB

Time Step:每步模拟的时间,单位为秒。

Num Steps:每帧模拟的步数。

Num Threads :同时运行的并发模拟数量。建议从 1 个线程开始。4 个线程足以让最多 64 个物理核心保持运行。请检查任务管理器中的 CPU 使用率。 切勿让 CPU 过载 !

即可开始生成模拟缓存:

1789905323369

从DCC导入Alembic文件

确保以下设置

1789906314292、

Alembic文件来源:ML Deformer的工作流程

确认缓存

1789905421551

得到上面的模拟缓存资产(GC)后,创建一个Level Sequence关卡序列,直接将GC拖入关卡序列,即可开始查看/清理 模拟缓存结果

1789905499917

1789714779276

训练ML Deformer

Input

回到 ML Deformer中,切换到Training模式,分配好需要用到的SkeletonMesh、AnimSequence、GC、神经网络输入骨骼(所有可动骨骼)

1789905932129

训练设置

一般保持默认就有不错的效果

隐藏层维度 :此数组设置“隐藏层”的数量以及每层中的“神经元”数量。这些数字应该从输入维度逐渐过渡到输出维度。例如,如果输入为 63,输出为 256,则隐藏层维度可以是 [64, 128]。

  • 通常情况下,2-4个隐藏层就足够了。
  • 训练前隐藏层不能为空。如果留空,编辑器会自动填充其值。
  • 通常情况下,只要遵循上述规则,隐藏层维度对最终结果的影响很小。但如果不遵循(例如,如果隐藏层维度小于输入维度和输出维度),则可能导致结果不佳。

训练轮数 :训练过程中遍历整个训练集的次数。默认值 10000 比较安全,但通常对大多数数据集来说过高。对于包含 5000 个姿态的数据集,建议使用 2500。

1789906709403

Sections

分区:运行时,每个区域都会在其特定的数据集内搜索最近邻,并据此应用相应的细节。

1789906941693

但是官方给出的"定义部分的最佳实践"是:每个 MLDeformer 资源只定义一个部分
1789906930951

训练ML Deformer

1789906076095

测试效果

训练完切换到Testing模式查看结果:

选好要测试的动画、DeformerGraph
1789906153978

1789903632578

ML Deformer的工作流程

img

生成训练数据集

随机Pose动画序列

官方提供了一个叫做“Data Generation Maya Plugin”的Maya插件:www.fab.com/listings/c3b46f42-2563-4c17-83d9-e7b573974f5b

1789960889528

1789960966258

img

基本原理:在Maya中完成骨骼绑定,然后拾取Joints,选择Joints的Transfom参数将其添加到“参数列表”,因为骨骼是有层级关系的,每个Joints都有Scale,Rotation,Potion等空间参数,右边的两个过滤器能快速的帮我们过滤掉庞杂的数据。将选择好的数据(主要是旋转数据)添加到参数列表。然后需要人为给定Attributes的作用范围,比如抡起胳膊相应关节能够活动的最小最大范围是多少

即可生成随机Pose动画序列

Target Mesh

与随机Pose动画序列配套的离线变形器渲染(布料模拟/肌肉模拟)

在Maya或者Houdini中使用离线的变形器进行布料模拟,得到.adc后缀的Alembic文件,就可以进行从DCC导入Alembic文件

生成随机 Pose 动画序列

在Maya中使用 ML Deformer 训练蒙皮角色的机器学习网格变形模型。

生成布料模拟的 ABC (Alembic) 文件
方案 A:Maya 内模拟 (nCloth)

在生成的随机 Pose 序列上运行 Maya 的 nCloth 或第三方插件(如 Marvelous Designer/Qualoth)进行解算。
解算完成后,选中布料网格体,使用 Cache > Alembic Cache > Export Selection to Alembic。
注意:导出时务必保持顶点数量和编号(Vertex ID)与原始模型完全一致,否则 ML Deformer 无法识别。

方案 B:虚幻引擎内模拟 (Chaos Cloth Generator)

Chaos Cloth Generator 插件。

posted @ 2026-09-20 20:52  EanoJiang  阅读(8)  评论(0)    收藏  举报