[教程] 五分钟了解Mecanim角色动画系统

来源:互联网 发布:域名交易骗局 编辑:程序博客网 时间:2024/05/04 03:31
Unity 4.0推出的Mecanim动画系统已经有一段时间,不过据了解很多的朋友仍然在使用原来的角色动作导入流程,似乎对这个新的动画系统不是很适应,有鉴于此,我们希望通过这次的教程来让更多的朋友快速的上手Mecanim动画系统。

mecanim.jpg 

首先导入本教程附件的Original_Character.unitypackage资源包,然后选择目录下的swat,这是一个特警的模型并以T字形态站立,我们将使用此模型作为Mecanim的联系对象。

1.jpg 

将Rig模式更换为Humanoid,在Humanoid这个模式下才能完全的发挥出Mecanim的强大优势,然后在Avatar Definition 选项里面选择Create From This Model,表示此模型的骨架结构是按照目前的角色来设置,勾选Keep Additional Bones,按下Apply,再按Configure进入骨架设置面板。

2.jpg 

如图所示,在Configure面板里面可进行骨架的结构查看,也可进行骨架位置的重新设置,在这个案例中,我们导入的模型骨架没有任何的问题,所以直接按下Done完成确认即可。

3.jpg 

在Project目录下选择rifle_aiming_idle动作文件,在Rig的选项里面仍然指定Humanoid模式,唯一的不同就是将Avatar Definition更换为CopyFromOtherAvatar, 然后将swatAvatar添加到Source的栏位,按下Apply完成设置。

4.jpg 5.jpg 

接下来是对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完成动作的设置。

6.jpg 

在Project里面按右键新增一个Animator Controller,将其更名为swatController,双击此文件打开动画控制器的专用窗口。
在窗口的空白处按下右键选择Empty > Create State生成一个新的状态,如图所示:

7.jpg8.jpg 

将这个State名称更换为Idle,然后将刚才设置好的rifle_aiming_idle动作文件添加到Motion的栏位。

9.jpg10.jpg 

到目前为止已经对swat角色完成了基本的Mecanim的设置,接着我们需要的工作是将swat模型添加到场景内进行效果的测试。

如图所示,在Project面板内将swat模型添加到Hierarchy,或是直接拖曳到游戏的场景内。

12.jpg 

如果这时按下Play进行测试,会发现swat并没有任何的动作,原因是swatController还没指定到swat模型的动画控制选项,那么要如何进行这个设置呢?很简单,选择swat模型,然后将swatController添加到Animator > Controller的栏位即可。

13.jpg 

现在按下Play测试,swat模型就会做出Idle的循环动作。

14.jpg 

另外一个设置是对于动作复制的功能,也就是将swat模型现在的动作复制(Retarget)到另外一个角色上面,这个问题也是很多朋友想知道的部分,现在我们看看是如何做到的,安装附件提供的Soldier Character Pack后,在Project目录里面选择soldier模型,将Rig模式仍然更换为Humanoid,然后在Avatar Definition 选项里面选择Create From This Model,再按下Apply即可完成设置。

15.jpg 

如果模型需要进行骨架的确认与更多细节的调整,可以按下Configure或是在之后进行骨架的修改即可。

16.jpg 

完成设置后将soldier模型添加到场景内,如图所示,现在我们要做的部分是将swat的Idle动作复制到soldier上面。

18.jpg 

确认soldier在选择的状态下,将swatController添加到Controller的栏位,注意Avatar里面的物件仍然是soldierAvatar即可。

19.jpg 

进行测试,现在我们看到soldier与swat做出了相同的动作。

20.jpg 

以此类推,如果是其他形态的角色模型也能复制出动作吗?Yes,如图图示里面的卡通模型一样,只要在任何模型的Controller里面的添加相同的文件即可完成动作复制!

21.jpg 
原创粉丝点击