Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转(根骨骼动画) 的问题
目录
Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转 的问题
一、简单介绍
Unity中的一些基础知识点。便于后期开发使用。
Unity动画系统,也称为“Mecanim”,提供了以下功能:
-
简单的工作流程,设置动画的所有元素,包括对象,角色和属性。
-
支持导入外部创建的动画片段和使用内置动画编辑器制作的动画片段。
-
人型动画重新定位,动画角色的运动控制可以被所有的角色模型共享,即角色的外观(SkinedMesh)和运动(Animator)是分离的,它们互相组合之后形成最终的动画。
-
用于编辑动画状态的的简化工作流程,即动画控制器。
-
方便预览动画片段,以及片段之间的插值过渡。 这使得动画师可以独立于程序员工作,在不运行游戏的情况下,可以对原型和预览动画进行预览。
-
管理动画与可视化编程工具之间的复杂交互。
-
不同的身体部位可以使用不同的动画逻辑控制。
-
动画的分层和掩蔽功能。
Unity默认情况下是使用了根骨骼动画的,在有些模型的动画在播放后发生了位移后旋转,在游戏循环播放动画后,累计了这些位移或旋转其效果可想而知,所以在这种情况下,需要关闭这些骨骼动画。
二、实现原理
1、把各个动画的 Root Transform xxxx 的 Bake Into Pose 选项勾选,就可以 解决动画自带的位置方向的偏移
2、当然也可在模型的 Animator 组件上 勾选 Apply Root Motion,也就更便捷的 解决动画自带的位置方向的偏移
三、效果预览
(男生是有动画带位置旋转偏移的,女生解决动画自带的位置方向的偏移的)
四、实现步骤
1、找到模型的 Animation,点击对应的动画,往下拉
2、勾选对应的动画中的 Root Transform xxxx 的 Bake Into Pose 选项,就可以 解决动画自带的位置方向的偏移
3、其实如果动画太多,一个一个修改太麻烦,可以直接在 模型的 Animator 组件上 勾选 Apply Root Motion,也就更便捷的 解决动画自带的位置方向的偏移
4、效果如上
(男生是有动画带位置旋转偏移的,女生解决动画自带的位置方向的偏移的)
5、反之,如果需要动画自带的旋转和位移,只要不勾选,就行了