DeformerGraph网格代理
发布于:2024-10-18
更新时间 | 更新内容 | 对应SDK版本 | 定位 |
2024-05-10 |
| V2.2.0 | |
|
功能说明
在具有以下资产的情况下:
角色裸模骨骼网格体
带服装的角色骨骼网格体(高模)
使用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组件
设置版片蒙皮混合
按 蒙皮解算混合设置版片Attach
设置网格代理
服装渲染代理中配置完整的骨骼网格体(和上面 4.子骨骼网格体一致)
按 网格代理操作:Bind ——>修改代理关系
设置Deformer Garph Mode
勾选 Use Deformer Graph Mode,删除Mesh Section Wrapmap中没有解算网格的Index分组,重新点击Bind
隐藏 Cloth Piece 和 Render Proxy
保存
6.编辑器中运行
在主骨骼网格体下添加不同动画资产,运行看效果