DeformerGraph网格代理

发布于:2024-10-18


更新时间

更新内容

对应SDK版本

定位

2024-05-10

  • 内置Style3D DeformGraph,不需手动配置

V2.2.0

  • 支持Deform Graph网格代理

功能说明

在具有以下资产的情况下:

  1. 角色裸模骨骼网格体

  2. 带服装的角色骨骼网格体(高模)

使用DeformerGraph流程可以省略高模拆网格修改材质、拆分后高模的重新蒙皮流程

非DeformerGraph的网格代理,需要从高模上拆出服装解算的高模,和作为碰撞体的高模

拆分完高模后,UV拓扑被破坏,需要从重新为高模制作材质

拆分高模后,需要对作为碰撞体的高模重新蒙皮手动

DeformerGraph流程比非DeformerGraph的网格代理在性能上也有更高的优势

使用步骤

1.准备

  • UE版本>=5.2

  • Style3D插件(V2.1.0)基础上,再安装以下插件

  • 角色资产:

碰撞体(除布料外的网格)

  • 可以是裸模

  • 也可以带盔甲、武器、配饰等,解算时则其余部位也会与布料碰撞

带服装的完整角色高模

完整角色高模

包含服装、配饰等所有渲染可见部位

服装解算网格

从高模上选择要解算的服装部位,去除表面褶皱造型等细节拓扑得到解算用的版片

2.角色组件结构

序号

组件

配置的模型

作用

1

角色主骨骼网格体

布料的碰撞体

(裸模,或带有其余碰撞部位)

与布料部分碰撞

输入角色动画

2

子SkeletalMesh组件(手动添加)

完整角色高模

渲染显示

3

Style3D组件(手动添加)

服装解算网格

布料解算

3.角色主骨骼网格体

4.子SkeletalMesh组件

动画蓝图

  • 创建动画蓝图

  • 动画蓝图设置

配置Deformer

V2.1.1以下版本按以下方法手动配置DeformerGraph

在资源浏览器中复制一份DeformerGraph

打开Graph

从节点中删除以下节点

添加新节点

添加新输入接口

连接

粘贴Shader Text


if (Index >= ReadNumThreads().x) return;
float3 LocalPosition = ReadPosition(Index);float3x4 BoneMatrix = ReadBoneMatrix(Index);
float3 SkinnedPosition = mul(BoneMatrix, float4(LocalPosition, 1));uint IsValidIndex = ReadValidIndices(Index);float3 FinalPosition = (1.0 - IsValidIndex) * SkinnedPosition + IsValidIndex * ReadFinal(Index);WriteOutPosition(Index, FinalPosition);

5.Style3D组件

设置版片蒙皮混合

设置网格代理

  • 服装渲染代理中配置完整的骨骼网格体(和上面 4.子骨骼网格体一致)

  • 网格代理操作:Bind ——>修改代理关系

设置Deformer Garph Mode

  • 勾选 Use Deformer Graph Mode,删除Mesh Section Wrapmap中没有解算网格的Index分组,重新点击Bind

  • 隐藏 Cloth Piece 和 Render Proxy

  • 保存

6.编辑器中运行

在主骨骼网格体下添加不同动画资产,运行看效果


提交反馈