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.编辑器中运行

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

提交反馈