Blender导出带毛发角色到Unity后触发动画时毛发穿模问题求解
Blender内正常动画效果参考:
Unity中同一段动画的异常穿模效果参考:
解决方案
1 Blender端导出配置校验
- 不要直接导出Blender原生粒子毛发,Unity不支持该类资产的绑定、碰撞规则导入,先将粒子毛发通过修改器转换为几何网格后,重新绑定对应骨骼权重,确认毛发网格的顶点权重和身体权重逻辑一致后再导出
- 导出FBX时必须勾选
形变、骨骼、蒙皮权重三个选项,导出前先应用所有缩放、旋转、位移变换,避免不同软件的坐标系、缩放系数差异导致毛发和身体的相对位置偏移 - 清空毛发网格的修改器栈,所有骨架修改器、形变修改器都要应用,确保权重数据已经完全烘焙到毛发顶点
2 Unity端导入配置校验
- 选中导入的FBX文件,在Inspector面板Rig标签下,关闭
Optimize Game Objects选项,该选项会自动隐藏未绑定到身体的多余骨骼节点,导致绑定到这些节点的毛发权重失效 - 在Model标签下,将Mesh Compression设置为低或关闭,过高的网格压缩会丢失毛发顶点的细微权重偏移,导致毛发直接贴附到身体网格上
- 在Animation标签下,将动画压缩模式设置为关键帧精简,不要选择最优压缩,避免动画压缩时剔除毛发运动的细微关键帧,导致运动过程中穿模
3 运行时补全碰撞规则
- 确认毛发网格和身体网格都添加了对应碰撞体,毛发可使用胶囊碰撞体简化计算,开启碰撞检测避免动画运动时毛发直接穿插身体
- 如果你使用的是URP/HDRP管线自带的毛发系统,确认毛发材质的长度、根部偏移参数和Blender内配置一致,适当调高音发动力学的刚度参数,降低运动时的惯性偏移,减少穿模概率
内容的提问来源于stack exchange,提问作者Isabella Faye
相关产品推荐
相关产品推荐

