碰撞过滤器
发布于:2024-10-18
更新时间 | 更新内容 | 对应SDK版本 | 定位 |
2024-05-10 |
| V2.2.0 | |
|
视频教程
功能释义
动画中出现肢体穿插或距离太近时,会导致服装的穿模或粘连
碰撞过滤器可以设置服装版片与人体之间的碰撞关系,设置穿插部分的人体区域不与版片碰撞,可规避穿模或粘连问题
流程
步骤1. 绘制人体碰撞分区
方法一:UE中绘制
使用UE的Mesh paint mode模式,可以在UE中直接给角色顶点绘制颜色分区。
1.绘制准备
角色正面朝前:
卸载动画和服装:
2.绘制碰撞分区
选择UE的网格体绘制模式:
颜色视图模式RGB,笔刷(强度为1、衰减为0),给四肢区域绘制颜色:
绘制完毕,点击保存:
方法二:用Maya绘制
maya中绘制相比UE中绘制有更高的控制精度,非metahuman类角色在maya中绘制可以得到更好的绘制结果。
1.将角色FBX导入maya
没有FBX的情况下,可以从UE资源浏览器中使用导出功能,导出角色FBX
2.使用maya绘制顶点颜色工具,给角色身体绘制颜色
选中网格,设置笔刷后绘制
3.绘制完成后,导出FBX回UE
FBX导回UE设置
FBX导回UE后,可以用UE网格绘制模式查看顶点颜色
【🌈重要】人体碰撞分区规范
1.普通角色规范
Maya中绘制时,人体分区颜色与maya内置的颜色预设相同,可直接选取预设值,不需手输色号
2.Metahuman角色规范
注意Metahuman角色本身很复杂,不适合导出,应直接在UE中绘制分区
Metahuman角色本身在RGB通道默认有颜色绘制,如下图。因此Metahuman角色的碰撞分区差别在Alpha通道
Metahuman角色按照普通角色的规范进行分组绘制,碰撞过滤依然生效,并且绘制更简单
潜在风险是RGB通道颜色的修改可能会影响metahuman身形调整等隐藏功能,已验证对角色动画播放无影响
颜色视图模式透明度通道,笔刷(强度为1、衰减为0),给四肢区域绘制颜色
颜色设置 RGB为0 1 0,A通道数值为 0.1 0.3 0.5 0.7 0.6 0.8
3.检查绘制结果
绘制完特别注意切换视角检查。角色背面、底部等位置易出现漏刷情况。
项目 | 截图 |
检查背面 | |
检查脚底 | |
检查指甲 | |
检查鞋子等佩戴物 |
组件中配置分区信息(2.2以下版本)
V2.2版本组件中已默认添加
V2.2以下版本中,需手动添加Left Arm 1、Right Arm 1分组定义
Collision Group中新增两个分组:
普通角色的Left Arm 1、Right Arm 1分组信息配置如下:
Metahuman角色的Left Arm 1、Right Arm 1分组信息:
步骤2. 服装碰撞分组
自动服装分组
绘制完人体碰撞分区后,服装版片可以实现自动分组
1.服装分组准备
卸载角色动画:
注意不能给角色添加动作,添加动作后影响自动分组准确性
Style3D组件中添加服装:
注意添加完服装后,在场景窗口中验证服装与角色是否匹配,要确保服装匹配角色后再进行后面的操作
2.服装版片自动分组
点击Group自动分组按钮,点击Save保存
根据临近原则,服装版片自动分碰撞分组,如左手的版片分为Left Arm Cloth。
服装分组规范
规范说明 | 截图 |
裙摆外层的飘带,设置为body Colth | |
裙子版片需要与左右腿都碰撞,分组同时勾选Left Leg Cloth、Right Leg Cloth | |
跨人体分区的版片,在资产制作时可以切割版片,版片尽量不要跨多个人体分区 |
步骤3. 调整碰撞过滤器
1.检查碰撞关系
双击服装资产,进入服装界面:
服装界面中 属性栏
Collision Filter是全局的碰撞规则,规定了Body Cloth、 Left Arm Cloth、Right Arm Cloth、Left Leg Cloth、Right Leg Cloth 5个版片分组的碰撞关系
点击版片,查看单个版片的碰撞分组和碰撞关系
Collision Group 版片的所属的碰撞分组
下拉列表中
不带Cloth后缀的选项是人体碰撞分区,
以Cloth后缀结尾的选项为服装版片分组,
多出的body1、Left Arm 2等带数字的选项是备用分组,需要时可扩展使用
Collision Mask碰撞关系,勾选代表模拟时版片与该分组产生碰撞
2.模拟,验证碰撞过滤器
点击bind:
给角色挂载动作,在编辑器中运行(添加动画录缓存):
添加动画后,bind蒙皮的适配效果需在组件中取消开启预览,再勾选一下
评估碰撞过滤器效果:
模拟时不出现肢体穿插或过近导致的 服装穿模 或 粘连,即自动设置碰撞过滤器没问题
未添加碰撞过滤器 | 裤腿相互粘连、手勾衣服 | |
添加碰撞过滤器 | 裤腿没有粘连、手部不勾衣服 |
3.修改碰撞关系
场景中添加动画后,模拟时出现粘连问题的版片,需要修改碰撞过滤关系
服装面板,3D视口中点击产生粘连的版片,右侧Cloth Pieces碰撞过滤器中修改该版片的碰撞关系
常见问题
1.手动调整碰撞过滤器
当自动碰撞过滤器没有完全解决肢体穿插导致的问题,或者有特殊的碰撞设置需求时,可以手动设置。
1.为版片设置分组
点击选中版片,在Cloth Pieces 中设置Collison Group分组
对于像裙子等跨多个人体区域的版片,可多选对应的版片分组,如裙子同时勾选Left Leg Cloth 和 Right Leg Cloth
2.设置碰撞过滤器
Collision Filter中显示了版片分组、与之碰撞的人体分区和版片分组
勾选Isolate Collsion,可单独显示该分组的所有版片
一个版片同时归属多个分组时,每个分组对应的碰撞过滤器都对该版片生效
3.点击保存
设置完毕,点击保存,回到场景中模拟验证效果
2.刷完人体碰撞区域后Morgh失效问题
刷完人体碰撞后保存,骨骼网格体的BS变形控制会失效,需要手动在UE中重新生成
重新构建骨骼网格体后,修改变形控制器可验证是否生效
3.Metahuman人体碰撞绘制
metahuman角色自身使用了RGB通道,因此碰撞过滤器需在Alpha通道绘制
3.1 修改预设中mask颜色值
切换Colliosn Group预设
颜色值中RGB通道与普通角色绘制时一致,alpha通道值梯度变化区分
3.2 绘制角色mask
输入上表中的颜色值,依次绘制完四肢后保存
4.人体分组边界区穿模问题
肩膀处是人体分组的边界区域,在以下情况下会出现服装穿模问题:
如果动作中手与身体穿插,就需要手动修改碰撞过滤器,设置手臂版片不与Body碰撞。
此时手臂版片不与Body碰撞;Body版片不与手臂碰撞,运动中一旦版片运动超过边界区就会出现穿模。
可在边界新增过渡区,规避边界处穿模的问题:
1.Collision Group新增分组
Collision Group选Body1
设置Color,需其他分组颜色不同
2.使用上面的颜色,绘制边界处过渡Mask
5.Group自动分组,版片只能分到BodyCloth问题
人体绘制完后,Group、Save自动分组,手臂等部位的版片总是分到BodyCloth组
先确定版片覆盖的人体区域是否绘制到位
版片分组是按照覆盖人体区域的占比来分的,手臂区域占比不够时则可能分为BodyCloth
覆盖占比足够依然分错,再检查alpha通道是否匹配
自动分组要求人体RGBA通道数值与组件中定义的完全一致,定义的颜色之外的其他颜色区域,覆盖的服装在分组时都会被分到BodyCloth
Alpha通道数值有绘制时容易被遗漏,Style3D组件分组Alpha通道默认是1
注意RGB模式下绘制人体时,把影响范围中透明度通道也勾选上
6.关卡中绘制完人体碰撞分区后,在其他关卡中还需要重新绘制吗
角色碰撞分区数据保存在Asset中,其他关卡中的角色实例不需要重新绘制分区。
资产迁移、导出等操作,同样不需要重新绘制人体碰撞分区