1、针对Unity中实现正确动画效果的角色,首先需要在3D建模软件中实现骨骼化操作。
骨骼化是指底层骨骼结构添加至设计师创建的模型中,且各快骨骼与网格顶点间实现了加权操作
可使用MakeHuman软件快速生成骨骼化角色
2、① 导入骨骼化角色,定义缩放因子
② 切换到Object Inspector中的Rig选项卡,在Animation Type下拉框选择Humanoid
默认时,如果网格包含骨骼化信息,该值为Generic;否则,该值表示None
Generic用于骨骼化非人物角色网格,如动物、起重机等
③ Apply后,一个勾选符号将显示在Object Inspector中Configure按钮一侧
表明Mecanim是否可在网格文件中成功地识别人物角色的骨骼信息,也可通过人工方式进行配置
3、Avatar和重定位
人工配置Avatar网格,单击Configure按钮并显示Avatar编辑器
利用Mapping和Muscles&Settings进行调整和设置
4、动画的重定位操作
可根据不同的角色或文件获取动画数据,并将其应用于包含正确配置的Avatar的其他角色上
可导入游戏角色资源包 Assets | Import Package | Characters
包含了第一人称和第三人称控制器,以及行走和跑动循环的角色动画
将角色网格从Project面板中拖拽至场景中,Unity会自动添加Animator组件
将系统自带的行走动画赋给角色,Unity会自动配置Animation Controller
5、根节点运动
根运动:应用于网格层次结构最上方(根)对象的位置和旋转
针对骨骼和各部件,导入的角色网格包含了多个子对象
然而,作用于最上层对象的动画视为根运动,默认情况下启动根运动
如角色处于运动状态行走,而不是原地踏步
可取消选中 Object Inspector 的 Animator 组件的 Apply Root Motion 复选框
根运动使得角色运动更具有真实感,该过程访问了动画曲线数据,对应角色运动方式通过插值计算高效实现
禁用根运动则会生成快速、灵活的运动行为,适用于街机和动作类游戏
6、修复运动偏移
偏移的原因在于,存在某一偏差使得一段时间内角色偏移路径,主要存在于动画的根运动中,与场景和角色无关
在 Project 面板的 Animation 选项卡查看文件的动画数据
偏差的问题主要源于角速度,在Average Velocity向量表示角色在其动画生命周期内的方向和朝向
解决:选中Root Transform Rotation 的 Bake Into Pose 复选框,调整Offset字段,直至Average Velocity值为0
另外,如果角色在地面行走实际位置高于或低于中心位置,将Root Transform Position(Y)中
Based Upon(at Start)字段调整为Feet