zoukankan      html  css  js  c++  java
  • 五分钟了解Mecanim角色动画系统

    http://www.narkii.com/club/thread-305414-1.html

    Unity 4.0推出的Mecanim动画系统已经有一段时间,不过据了解很多的朋友仍然在使用原来的角色动作导入流程,似乎对这个新的动画系统不是很适应,有鉴于此,我们希望通过这次的教程来让更多的朋友快速的上手Mecanim动画系统。



    2013-9-29 03:42 上传
    下载附件 (115.91 KB)


    首先导入本教程附件的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 
  • 相关阅读:
    深度优先搜索和广度优先搜索的比较与分析
    BFS() DFS() 模板
    jQuery EasyUI1.2.4发布了
    深入理解dispatcher和redirect的区别
    分享一份jquery easyui的培训文档
    生活中的十悟
    CSS Hack的基本原理
    推荐11款jQuery开发的复选框和单选框美化插件
    NodeJS初探之三——新星的力量
    由浅到深的分析Javascript OO之写类方式之一:构造函数
  • 原文地址:https://www.cnblogs.com/nafio/p/9137562.html
Copyright © 2011-2022 走看看