【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

转移蒙皮权重

皮肤重量传递算法有两种:
- 图像修复权重(默认)
- 表面上的最近点

MaxDistance权重绘制

预览


机器学习布料模拟 ML Cloth
加载插件
- Chaos Cloth Generator
- ML Deformer Framework
- ML Deformer Nearest Neighbor Model(ML Deformer Detail Pose Model)
创建 ML Deformer资产
生成模拟缓存
在UE编辑器中直接生成

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 过载 !
即可开始生成模拟缓存:

从DCC导入Alembic文件
确保以下设置
、
Alembic文件来源:ML Deformer的工作流程
确认缓存

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


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

训练设置
一般保持默认就有不错的效果
隐藏层维度 :此数组设置“隐藏层”的数量以及每层中的“神经元”数量。这些数字应该从输入维度逐渐过渡到输出维度。例如,如果输入为 63,输出为 256,则隐藏层维度可以是 [64, 128]。
- 通常情况下,2-4个隐藏层就足够了。
- 训练前隐藏层不能为空。如果留空,编辑器会自动填充其值。
- 通常情况下,只要遵循上述规则,隐藏层维度对最终结果的影响很小。但如果不遵循(例如,如果隐藏层维度小于输入维度和输出维度),则可能导致结果不佳。
训练轮数 :训练过程中遍历整个训练集的次数。默认值 10000 比较安全,但通常对大多数数据集来说过高。对于包含 5000 个姿态的数据集,建议使用 2500。

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

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

测试效果
训练完切换到Testing模式查看结果:
选好要测试的动画、DeformerGraph

ML Deformer的工作流程

生成训练数据集
随机Pose动画序列
官方提供了一个叫做“Data Generation Maya Plugin”的Maya插件:www.fab.com/listings/c3b46f42-2563-4c17-83d9-e7b573974f5b



基本原理:在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 插件。



浙公网安备 33010602011771号