http://www.narkii.com/club/thread-305414-1.html
Unity 4.0推出的Mecanim动画系统已经有一段时间,不过据了解很多的朋友仍然在使用原来的角色动作导入流程,似乎对这个新的动画系统不是很适应,有鉴于此,我们希望通过这次的教程来让更多的朋友快速的上手Mecanim动画系统。
首先导入本教程附件的Original_Character.unitypackage资源包,然后选择目录下的swat,这是一个特警的模型并以T字形态站立,我们将使用此模型作为Mecanim的联系对象。
将Rig模式更换为Humanoid,在Humanoid这个模式下才能完全的发挥出Mecanim的强大优势,然后在Avatar Definition 选项里面选择Create From This Model,表示此模型的骨架结构是按照目前的角色来设置,勾选Keep Additional Bones,按下Apply,再按Configure进入骨架设置面板。
如图所示,在Configure面板里面可进行骨架的结构查看,也可进行骨架位置的重新设置,在这个案例中,我们导入的模型骨架没有任何的问题,所以直接按下Done完成确认即可。
在Project目录下选择rifle_aiming_idle动作文件,在Rig的选项里面仍然指定Humanoid模式,唯一的不同就是将Avatar Definition更换为CopyFromOtherAvatar, 然后将swatAvatar添加到Source的栏位,按下Apply完成设置。
接下来是对rifle_aiming_idle动作文件进行Animations的设置,勾选Loop Pose, Root Transform Rotation > Bake into Pose, Root Transform Position(Y) > Bake into Pose与Root Transform Position(XZ) > Bake into Pose,其他的部分保存默认的设置即可,最后按下Clamp Range将动作文件的帧数分割出来,按下Apply完成动作的设置。
在Project里面按右键新增一个Animator Controller,将其更名为swatController,双击此文件打开动画控制器的专用窗口。
在窗口的空白处按下右键选择Empty > Create State生成一个新的状态,如图所示:
将这个State名称更换为Idle,然后将刚才设置好的rifle_aiming_idle动作文件添加到Motion的栏位。
到目前为止已经对swat角色完成了基本的Mecanim的设置,接着我们需要的工作是将swat模型添加到场景内进行效果的测试。
如图所示,在Project面板内将swat模型添加到Hierarchy,或是直接拖曳到游戏的场景内。
如果这时按下Play进行测试,会发现swat并没有任何的动作,原因是swatController还没指定到swat模型的动画控制选项,那么要如何进行这个设置呢?很简单,选择swat模型,然后将swatController添加到Animator > Controller的栏位即可。
现在按下Play测试,swat模型就会做出Idle的循环动作。
另外一个设置是对于动作复制的功能,也就是将swat模型现在的动作复制(Retarget)到另外一个角色上面,这个问题也是很多朋友想知道的部分,现在我们看看是如何做到的,安装附件提供的Soldier Character Pack后,在Project目录里面选择soldier模型,将Rig模式仍然更换为Humanoid,然后在Avatar Definition 选项里面选择Create From This Model,再按下Apply即可完成设置。
如果模型需要进行骨架的确认与更多细节的调整,可以按下Configure或是在之后进行骨架的修改即可。
完成设置后将soldier模型添加到场景内,如图所示,现在我们要做的部分是将swat的Idle动作复制到soldier上面。
确认soldier在选择的状态下,将swatController添加到Controller的栏位,注意Avatar里面的物件仍然是soldierAvatar即可。
进行测试,现在我们看到soldier与swat做出了相同的动作。
以此类推,如果是其他形态的角色模型也能复制出动作吗?Yes,如图图示里面的卡通模型一样,只要在任何模型的Controller里面的添加相同的文件即可完成动作复制!
更多的Unity技术交流与分享请加入:纳金网Unity论坛专属交流群 - 218689657