【Unity】第10章 Mecanim动画系统
分类:Unity、C#、VS2015
创建日期:2016-05-02
一、简介
Unity提供了两种动画系统:一种是早期版本提供的旧版(Legacy)动画系统,旧版本(Legacy)以后将逐步被淘汰掉并在新版中不再支持。另一种是Mecanim动画系统,这是建议使用的新版动画系统。
如果你是初学者,就不要去学旧版(Legacy)动画了,直接学习Mecanim动画系统即可。
二、什么是Mecanim动画系统
Mecanim(肌肉线条)是Unity提供的新版动画系统,Unity计划将工作流完全并入Mecanim以后,就彻底淘汰旧版 (Legacy) 动画系统。或者说,以后直接使用Mecanim来实现动画处理就行了,特别是在使用类人动画时更是如此。
另外,在某些情况下,你可能仍然会偶尔使用类似旧版 (Legacy) 动画系统提供的功能。比如处理Unity 4.0 之前创建的旧版动画和相关代码,以及希望通过参数而不是通过时间来控制动画片段的场合(比如控制瞄准角度)。为了解决这些问题,Unity 5.x又在Mecanim中将动画进一步细分为“类人动画”和“通用动画”。
Mecanim动画系统主要提供了以下功能:
(1)针对人形角色(或者叫类人角色)的工作流。利用它可方便地创建动画。
(2)Retargeting(运动重定向或者动画重定位)。利用它可以把动画从一个角色模型应用到另一个角色模型上。
(3)针对Animation Clips(动画片段)的工作流。可针对动画片段以及他们之间的过渡和交互过程进行预览。该工作流可以使动画师在编写游戏逻辑代码之前即可预览动画效果,这样动画师就可以独立进行工作而不用过分地依赖于程序员。
(4)使用可视化编程工具(Visual Programming Tool)管理动画之间复杂的交互。
(5)可对身体的不同部位分别用脚本实现不同的逻辑进行动画控制。
三、Mecanim动画系统的基本处理流程
利用Mecanim制作动画时,一般分成三个大的步骤来实现:准备动画资源、创建动画角色、角色控制处理。
第1步—准备动画资源
创建动画资源主要通过其他的专业3D软件(例如 3ds Max 2015 或者 Maya)来完成,这一步的工作与Mecanim功能无关。实际的研发团队中一般由美工或动画设计师来专门完成它,当然,如果人手少,也可以由程序员直接用3ds Max 2015来完成。
动画资源准备好以后,将其导入到Unity中,然后就可以利用Mecanim制作动画了。
第2步—创建动画角色
创建动画角色的目的是为了通过脚本来控制动画,比如控制转身、甩胳膊、起跑、慢走、……等。
有两种创建动画角色的方式:类人角色和通用角色。
(1)类人角色
Mecanim 针对类人(人形)动画模型专门提供了一种特殊的工作流,该工作流使用扩展的GUI和动画重定向来共同实现游戏中需要的类人角色,包括创建 Avatar 以及定义对肌肉线条(Muscle Definitions)的调节等。
(2)通用角色
此方式专为创建非类人角色而提供,例如各种生物动画道具以及四足动物等。虽然通用角色并不适用于动画重定位,但仍可以利用Mecanim实现非类人角色需要的的其他功能,比如控制枪支的瞄准角度等。
第3步--角色控制处理
角色的动画控制处理就是能让玩家通过键盘、鼠标或游戏杆等其他设备让角色像活人或者动物一样“动”起来,也叫“赋予角色生命”,例如让玩家通过左右箭头键或者鼠标左键控制人的转弯、通过上下箭头键后者鼠标右键控制人的起跑或停止、……等。
这一步涉及的内容包括设置动画片段以及动画片段之间的交互,设置状态机和混合树,列出动画参数,以及通过C#脚本代码控制动画的行为。