Atelier服装到UE解算出片(进阶)

发布于:2024-10-18


一、背景介绍

由Atelier完成服装建模,并通过SMD格式导入UE,使用Simulator插件进行实时解算或缓存出片。

二、Atelier建模

1、服装建模

1.1、角色模型导入

1、Unreal中选中角色,Add Component按钮中搜索Style3D组件,将Style3D组件添加为人体的SkeletonMesh组件的子组件。

2、Style3D组件面板点击“Export Obstacle”按钮,导出角色obj文件。

导出前在Obstacle Property中设置Obstacle LOD,可导出不同LOD级别网格体,一般默认配置即可

3、将UE导出的角色obj导入studio中

(studio3D中采用右手Z轴朝上坐标系,角色导入后若发生躺倒,可在导入时设置转换轴处 Y(上)、Z倒放)

1.2、资产库
建议先由资产库中找到与设计原画类似的廓形后进行修改,无需由打版开始,以提高服装制作效率。

1、根据需求从资产库中找到合适的廓形,下载到本地;

2、添加服装并适配模特;

1.3、服装改版

https://www.style3d.com/market/college/learningcenter?lang=zh-CN

https://space.bilibili.com/1425254724?spm_id_from=333.337.search-card.all.click

1.4、添加配件

资产库或外部导入;(18号版本会有网格代理功能beta)

1.5、UV排布

基于传统CG行业规则;

1、Atelier中的服装UV是根据2D版片生成的,在制作服装版片的同时也是在制作UV,所以在服装版片绘制时要以最终UV的形态来制作。看不见的服装部分可以简易制作,但同样也需要确实制作出来,不可省略。

2、在UV编辑器中可一键将UV排布到0-1范围内,之后可自行酌情调整UV排布,因为2D版片和UV强相关,所以对UV仅可等比例放缩,不可拉伸、挤压等操作。

2、服装调优

2.1、模型顶点优化

1、顶点数的调整可以通过调整粒子间距来设置。

2、框选所有版片即可在细节面板中看到顶点数量,根据不同需求合理分配网格顶点:在转折、褶皱较多部位适当提高顶点数量,避免解算过程中出现锯齿和锋利的转角。

3、顶点数量参考:

直播场景:整套顶点数控制在5W之内

出片场景:整套顶点数控制在8~20W

2.2、版片层级设置

1、从里到外逐层设置层级

2、注意面料正面朝向要一致,朝向不一致时算法自动分层易混乱。可手动设置 表面翻转。

3、资产导出

3.1、“烘焙”导出或“不烘焙”导出

3.1.1、烘焙导出

通过 文件_导出_导出SMD文件,将服装导出为SMD专用格式,默认勾选烘培所有贴图

3.1.2、不烘焙导出

通过 文件_导出_导出SMD文件,将服装导出为SMD专用格式,取消勾选烘培所有贴图

三、Simulator模拟

1、资产导入

1.1、烘焙导入

烘培流程将会将一些图案、纽扣、明线等通过材质的方式烘培到对应UV的贴图上的方案来表现

勾选Is Using Baking Texture.然后导入烘培好的smd资产

1.2、不烘焙导入

非烘培流程每一个版片会有单独的贴图来表达,占用内存更高、清晰度更高、部分跨版片图案无法显示。

取消勾选Is Using Baking Texture.然后导入非烘培的smd资产

1.3、自定义母材质导入

1、对导入的SMD设置使用自定义母材质。不对映射表做配置时,服装将使用默认材质。

1.4、资产导入注意事项

1、SMD导入以及存储路径为纯英文;

2、将SMD资产拖入UE中时,插件会自动预审查一些不合适的工艺与设置,可根据提示返回Atelier修改后重新导入

2、碰撞过滤器

3、求解器

3.1、求解参数设置

求解器属性截图

参数名

含义

Simulate

控制是否开启仿真

Self Collision

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

Async Mode

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

Animation Mode

动画模式,若人体无动画数据,可关闭该选项,提高性能

Smooth Animation

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

Back Face

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

Side Face

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

Collision Convex

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

Fictious Force

惯性力开关

Strain Map Color

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

显示应变图

Solver Type

求解器类型

GPU ID

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

Time Step

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

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

Substep

每帧仿真将会根据substep的值分解为多个子步,适用于人模动作很大或项目锁帧到较低fps的场景

Iteration

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

Gravity

重力加速度

Damping

空气阻力

Self Collision Stiffness

自碰撞强度

Extra Thickness

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

调节参数时

  • 时间步长Time Step不超过0.03

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

3.2、参考骨骼

根据骨骼相对空间解算,让大位移以及快速动画稳定

大位移移动化的解算

4、调优

4.1、版片物理属性

物理属性

含义

数值范围

拉伸 经纱/纬纱/ 斜纱

Stretch Warp/Weft/Bias

经/纬/斜方向拉伸强度

数值越大,布料越不容易沿经/纬/斜方向发生拉伸,面料越紧实

数值越小,越容易被拉开,面料越松散

0-100

弯曲 经纱/纬纱/斜纱

Bending Warp/Weft/Bias

经/纬/斜方向弯曲强度,

数值越大,布料越不容易沿经/纬/斜方向发生弯折,越难起褶皱,看起来越硬

数值越小,该方向上越多褶皱、看起来面料越柔软

0-100

变形率 经纱/纬纱/斜纱

Bucking Ratio Warp/Weft/Bias

用于控制经/纬/斜方向识别到需被变形的褶皱的多少,变形率越大,可被细化的褶皱越多

变形率与变形强度要配合使用,只调节其中之一没有效果,用于给部分褶皱进行细化处理

0-100

变形强度 经纱/纬纱/斜纱

Bucking Stiff Warp/Weft/Bias

用于控制经/纬/斜方向被识别到的褶皱处被细化的程度,数值代表在该褶皱处弯曲数值变为原来的百分之多少。

最终褶皱处的弯曲值=原弯曲*变形强度

变形强度数值越大,最终可被调节的褶皱处的弯曲数值减小的程度越低,最终结果越大,转折越平缓,面料相对较硬,

变形强度数值越小,最终可被调节的褶皱处弯曲数值越小,最终该褶皱的弯折越大,褶皱越锋利,越细碎,面料越柔软

0-100

摩擦系数 动/静

Dynamic Friction

Static Friction

布料摩擦力系数,确定布料与自身、被动对象及共享相同解算器的其他对象发生碰撞时抵制相对运动的程度

0-1

克重

Weight

决定了面料自受力而影响面料的悬垂表现

0-2100

厚度

Thickness

模拟时布料的厚度,用于调整碰撞

0-1000

4.2、蒙皮混合

GoalShape可对蒙皮与解算混合功能中,蒙皮部分的效果进行提升:将绑定到角色的简单蒙皮,转换为继承渲染网格自身蒙皮

GoalShape约束到目标形态

4.3、资产调整(透明版片、形态固化、假缝)*

四、出片环节

1、录制缓存
1.1、Sequence中录制

1.在场景中给角色添加style3D组件,完成姿势适配(bind/posefitting)、碰撞过滤器设置等工作。

2.在Style3D轨道下添加GarmentCache服装缓存轨道

3.添加动画,并拖动GarmentCache缓存条与动画首尾区间对齐

4.缓存录制配置

  • 在轨道中选中缓存条,右键_属性中设置模式为CacheRecord缓存录制模式,编辑缓存名称

  • 在场景中,角色上挂载的Style3D组件中勾选录制人模动画Record Avatar Animation(建议勾选,缓存播放时与角色匹配不穿模)

5.Sequencer中设置好相机后,点击渲染输出即可录制服装缓存

1.2、编辑器运行时录制

有解算时进行干涉的需求;

1、RuntimeMode 切换到 GarmentCacheRecord 模式

2、编辑好服装缓存名称,以及其他的缓存生成配置,服装模拟配置。

3、其中:

设置项

说明

New Cache Name

缓存命名

Cache Frame Rate

缓存录制完成后,进行播放时的播放帧率

Record Rate Scale

缓存录制倍速;建议小于1的倍速慢速录制缓存,录制速率不对播放速率造成影响

Simulate Time Scale

模拟时间缩放;针对模拟效果的缩放,小于1时可以获得加速模拟特殊的效果

Record Avatar Animation

录制角色动画缓存;缓存播放时可以保证角色动画与服装缓存同步

Subfile MaxSize(MB)

缓存分包大小;缓存达到设定大小后自动分包。最大不超过2048,建议设置1024

4、编辑器中运行,开始录制缓存。模拟过程中,编辑器右下角会显示缓存生成进度。

5、保存缓存:

停止运行,此时会自动开始保存缓存文件。

缓存文件保存成功后,会有对应的消息提示

6、注意:

文件默认保存在项目/content/Style3D/GarmentCache中 ,以服装命名文件夹区分.GCahe缓存文件。

相同缓存命名,重复录制后会自动覆盖。

2、缓存使用

2.1、缓存读取

1. RuntimeMode 切换到 GarmentCachePlay 模式。

2. 填写需要播放的缓存名称。

【可选】可设置循环播放、设置播放速率、控制缓存开始播放节点

设置项

说明

Cache to Play

设置播放的缓存(填入名称)

Start Time Position

设置缓存开始播放时间点(默认设置为0,从头播放)

Blend Time

设置模拟与缓存播放混合时长

Cache Play Rate Scale

缓存播放速率

Apply Play Rate Scale to Avatar

对角色运动应用设置的速率(与缓存播放速率配合使用)

Use Avatar Pose in Cachenew

缓存中记录了人模pose,导致有时人模的动画蓝图不生效 ,可勾选此选项

Delay One Frame Before Playing

延迟一帧播放,适用于角色动画受UE机制影响延迟一帧播放的场景

Match Avatar Time

匹配角色时间,缓存录制时勾选了Record Avatar Animation,播放时可以启用该项

Loop

循环模式

Blend Time for Loop Start End

循环首尾部分混合的时长(与Loop循环模式配合使用)

Post Process new

缓存穿模后处理,可修复缓存与人体间的小范围穿模

2.2、缓存编辑

1、添加缓存

在 Sequence 编辑器中添加缓存。

  • 先将 Style3D 组件添加到Sequence 编辑器中。

  • 点击 Style3D 组件对应轨道的“+”号,在弹出的菜单中选择 “GarmentCache”。

  • Style3D 组件下面会新增 “Garment Cache”轨道,这样服装缓存就添加成功了。

可在缓存属性中填入缓存名称,加载其他缓存

2、编辑缓存

  • 支持添加删除时间轴拖拽跳转分割(Split)循环起始/终止位置调整 等缓存常规编辑操作。操作方法和 Abc 动画一致。

  • 时间轴拖拽跳转:

  • 分割(Split)

  • 缓存片段上面,鼠标右键点击后,菜单中选择 “Edit”-> "Split Section"。

  • 起始/终止位置调整

  • 鼠标拖拽缓存片段的首尾位置即可调整缓存的起始/终止时间。

2、缓存循环(Beta)

3、缓存后处理(开发中)

五、蓝图

1. 接口概览

2. 基础蓝图介绍

2.1. 基础设置

  • Bind Garment 绑定服装

  • Check Bind 检查绑定服装

  • Unbind Garment 取消绑定服装

  • Set Up 刷新服装

  • Reset Garment 重置服装

  • Group Garment 自动设置碰撞过滤器

2.2. 射线检测

对应Style3D Interaction Actor功能,可通过鼠标拖拽服装

  • Line Trace 点状射线检测

  • Sphere Trace 球状射线检测

2.3. 材质

被替换的材质需要勾选使用布料

  • Material Index 服装资产对应的Material Slots序号

  • New Material 对应要更换的新材质

  • Layer Name 服装资产材质中的Layer Parameters名

2.4. 账号

  • Is Style3D Login 判断登录状态

  • Style3D Bind Auto Login Event 绑定自动登录事件

  • Style3D Account Login 登录

  • Style3D Account Logout 登出

2.5. 读取SMD服装资产

  • Runtime Read SMD 读取SMD资产

  • Runtime Read SMD Async 异步读取SMD资产

2.6. 姿势适配

  • Posefitting 服装根据当前姿势适配

对于实时场景中经常会做的服装切换和动作切换时会经常调用,这里列出一个常见的使用方法:

2.7. 模拟

  • Is Simulating 判断模拟状态

  • Start Simulation 开始模拟

  • Stop Simulation 停止模拟

  • Set Solver Property 设置模拟属性

  • Init Obstacle Animation 初始化碰撞体

2.8. 缓存

2.8.1. 录制

  • Start Record Garment Cache 开始录制

  • Stop Record Garment Cache 结束录制

  • Bind Event to Garment Cache Record Start Event 绑定开始录制事件

  • Bind Event to Garment Cache Record Progress Event 绑定录制进行时事件

  • Bind Event to Garment Cache Record End Event 绑定结束录制事件

  • Bind Event to Garment Cache Saving Finished Event 绑定缓存保存完成时事件

2.8.2. 调用

  • Load Garment Cache 加载缓存

  • Load Multi Garment Cache 加载多个缓存

  • Unload Garment Cache 卸载缓存

  • Unload Multi Garment Cache 卸载多个缓存

  • Activate Garment Cache 切换缓存

  • Play Garment Cache 播放缓存

  • Bind Event to Garment Cache Play Start Event 绑定事件至缓存开始播放

  • Bind Event to Garment Cache Play End Event 绑定事件至缓存结束播放

3. 基础模块介绍

3.1. 换装

单套模式下,和以前一样,修改 MetaDataAsset,然后调用 SetUp 即可生效。

多套模式下,修改 GarmentAssetMap,然后调用 SetUp 即可生效。

若有收获,就点个赞吧

3.2. 缓存

3.2.1. 加载缓存

3.2.2. 播放缓存

3.2.3. 卸载缓存

4. 样例工程

样例工程


提交反馈