服装模拟

发布于:2024-10-18


更新日志

更新时间

更新内容

对应SDK版本

定位

2024-05-10

  • 推拽组件使用流程修改

  • 服装属性设置相关教程移至 服装编辑界面

  • 新增求解精度设置类型

V2.2.0

2024-01-29

  • 服装界面交互优化

  • 服装部件显隐控制

  • 3D视口右键菜单

V2.0.0

2023-05-05

  • 支持设置服装灯光通道

V 1.5.0

2023-03-16

  • 服装编辑界面中新增隐藏版片交互

V 1.4.0

2022-12-09

  • 新增布料参数预设

V 1.3.0

2022-12-09

  • 新增求解器参数Substep

V 1.2.1

2022-11-17

  • 新增服装应变图显示功能

V1.0.3

2022-10-31

  • 新增Mesh Render type解决TAA重影问题

  • 服装属性编辑新交互

V1.0.2

1.1服装挂载到角色上

3.【new】修改服装材质

4.【new】修改物理属性及工艺

2022-09-29

服装模拟设置

V1.0.0

1. 仿真流程

1.1 挂载服装

导入服装
将SMD文件拖入UE内容浏览器

将SMD文件拖入UE项目的Content文件夹,衣服Mesh及Material将存储于同名文件夹,其他属性存储于同名的DataAsset文件

添加Style3D组件

场景中选择角色后,在细节面板搜索并添加Style3D组件

重要提示:Style3D组件需挂在骨骼网格体下

metahuman角色组件挂载在body下

挂载服装

设置Style3D组件的衣服Meta Data Asset(SMD文件导入时生成的)

  • Preview in Editor:预览仿真的衣服网格

  • Mesh Render Type,使用默认DeformMesh 即可。

类型

说明

DeformMesh

使用完全凌迪自定义的服装渲染管线,TAA 问题解决,支持多 UV 通道

AbcMesh

使用 Unreal 中 Abc 格式的渲染管线,TAA 问题解决,但仅支持1个 UV 通道

ProceduralMesh

使用 Unreal 中 Procedural Mesh的渲染管线,TAA 问题不解决,仅支持多个 UV 通道

使用自定义材质注意事项

用户需要在材质上使用自定义材质类型时,注意需要勾选材质的Usage ,同时勾选Used with Geometry Cache(Abcmesh使用)和Used with Clothing(Deformmesh使用)

1.2 适配初始姿势穿衣

模拟前需将服装与角色姿势进行适配,有两种方式:服装蒙皮和posefitting,具体操作流程,这里介绍操作简单的蒙皮流程:

服装自动蒙皮

确保服装在当前人体姿势下是合适的,依次点击“Bind ”和"Save ",将对服装进行自动蒙皮

用处

  • 衣服可根据人体姿势初始化

  • 不参与仿真的衣服版片可受骨骼驱动

  • 仿真不开启时,整个衣服可被骨骼驱动

重要提示:

  • Bind Garment需确保角色当前姿势与服装姿势匹配,可先卸载角色动画,恢复默认网格体姿态再进行Bind,Save 后再重载角色动画。

  • 暂时只能在场景中点击,在BP里点击会导致crash

1.3 挂载动作

选择动画资产挂载到角色骨骼网格体上

1.4 服装模拟

Style3D组件中设置Runtime Mode为GarmentSimulate模式;

勾选Preview in Editor选项,在场景窗口中预览服装是否完整穿在角色身上;

点击编辑器运行按钮,即开始服装模拟

出现服装不跟随角色动作时,查看Consel窗口中日志是否有登录失败提示,重新登录后即可正常仿真

1.5 添加拖拽交互组件

在放置actor面板中搜索"Style3D Interaction Actor"组件,直接拖入到场景视口中。开启模拟时,即可通用鼠标拖拽服装。

注意

V2.2以下插件版本,使用Interaction Actor组件时,求解器参数中需勾选 Collision Convex

V2.2及以上版本插件在服装启用碰撞体类型

2. 仿真设置

2.1 添加碰撞体

服装解算时,若需要与角色中组件物体发生碰撞,可将网格体添加为Style3D的碰撞体

默认已添加了角色主体网格体为碰撞体

Metahuman头部添加到碰撞体

在组件Slave Obstacle 中添加数组,然后将头部骨骼网格体添加进去

设置碰撞体不参与碰撞或Bind(V2.4.0)

可设置主碰撞体、子碰撞体 不参与碰撞、不参与Bind

不参与碰撞,在柔性人体设置需要用到;设置盔甲等配饰不参与bind,可以避免服装同时绑定到人体与配饰带来的抖动穿模

2.2 设置求解器参数

截图

参数名

含义

求解器属性 Solver Property

Simulate

控制是否开启仿真

Self Collision

衣服自碰撞开关,开启自碰撞会阻止衣服自相交

Async Mode

异步仿真模式,异步仿真模式性能更高

Animation Mode

开启开关,每帧都会考虑更新动画相关的物理碰撞数据 比如人体姿态、胖瘦,若人体无动画数据,可关闭该选项,提高性能

Smooth Animation

平滑动画,开启后可缓解人体动画跳变问题,增强仿真稳定性

Back Face

是否生成衣服面片背面网格

Side Face

是否生成衣服面片侧面网格

Collision Convex

衣服生成碰撞包围体开关,开启后可准确支持射线检测、鼠标拾取等功能

(V2.2版插件位置移动到服装插槽下)

Fictious Force

惯性力开关

Strain Map Color

打开后,衣服拉伸量将写入顶点颜色中。材质节点读取颜色即可渲染出结果。

显示应变图

Tack

全局假缝功能开关

Solver Type

求解器类型

High Precision

高精度,开启后解算引擎会使用高精度模式

(V2.2版本底层暂未支持)

GPU ID

仿真使用的GPU序号,直播等场景,填入对应的显卡序号可指定解算使用单独显卡(多显卡不需交火)

Time Step

仿真时间步长,设置为运行时的帧率FPS的倒数(1.0/FPS);

设置为0,则根据每帧时间间隔自动适配Time Step

Time Scale

解算速率,用于适配动画制作中的TimeWrap

Substep

在某些情况下,固定步长可能不足以捕捉到快速变化的运动或细微的碰撞。通过在帧之间添加额外的子步骤,可以更频繁地更新动画状态,从而更准确地模拟物体的运动和碰撞。

【举例】:子步为1时,若解算每帧解算时间步长0.01秒,子步改为2时,每帧解算时间步长0.005秒(每帧的子步2倍,精度变高、性能变低)

提高子步数值,适用于人模动作很大或项目锁帧到较低fps的场景。但会有更多的性能开销。

Finsh Condition

解算完成条件

  • Iteration以迭代次数

  • Residual 残差

Iteration

求解的迭代次数,该值越高,求解结果越精确,计算开销越大

Residual Accuracy

残差精度

数值越高解算与真实值的差距越小,4代表解算值与真实值差距等级在10-4

Gravity

重力加速度

Damping

空气阻力

Self Collision Stiffness

自碰撞强度

Extra Thickness

额外的碰撞厚度,值越大越不容易发生穿透,但衣服间的空隙也越大

备注:

调节参数时

  • 时间步长Time Step不超过0.03

  • 自碰撞强度Self Collision Stiffness 不小于0.5

2.3 设置物理场参数

截图

参数名

含义

绑定参数 Bind Property

Symmetry

使用详见 蒙皮&解算融合

Skin Pair

Shoulder Width

Surface Offset

Constrained Range

Motion Radius

Stiffness

碰撞体参数 Obstacle Property

Obstacle LOD

碰撞时使用的LOD级别

Collision

碰撞

Morph

变形

Group Type

碰撞过滤器预设

Collision Group

碰撞过滤器

Obstacle Gap

碰撞间隔

Obstacle Static Friction

碰撞静摩擦力

Obstacle Dynamic Friction

碰撞动摩擦力

地面参数 Ground Property

Height

地面高度(以骨骼网格体坐标原点为地面高度0,低于地面的布料会受到上推力)

Static Friction

静摩擦力

Dynamic Friction

动摩擦力

参考骨骼 Ref Frame Property

【企业版】大位移动画的解算

Ref Bone Name

参考骨骼名

Use World Space

世界空间

Max Linear Velocity

最大线速度

Max Angular Velocity

最大角速度

Ref Distance

参考距离

3. 服装物理属性及工艺设置

服装界面


提交反馈