zoukankan      html  css  js  c++  java
  • Unity 4.0 中的新动画系统——MecAnim

      分享一个文档资料,关于动画系统的,版本应该很老了,但是有借鉴意义的;  

      Unity 4.0 已于 2012 年 11 月 15 日正式发布,Unity 每一次版本的提升,都给游戏开发者带来惊喜,这一次也不例外,该版本最大变化之一就是引入了新动画系统——MecAnim,通过 MecAnim 新的动画系统,开发者在 Unity 中可以非常方便地实现角色动画。所以 Unity 4.0 的启动画面都突出了新的动画系统这一最新功能  。

          这里需要说明的是,在 Unity 4.0 中,开发者还是可以使用原有的动画系统的,也就是说使用原有的非角色动画系统, 具体步骤这里不再详细叙述 。 

    在新的 MecAnim 角色动画系统中,我们需要通过以下步骤实现 Unity 中的角色动画: 

      1. 导入角色动画 

      2. 创建角色动画 Avatar 

      3. 添加角色动画控制器、设置状态机、设置混合树、实现编码等控制角色动画 

    在导入角色动画过程中,与原有的动画系统类似,如果角色动画模型已经包括相关的动画,则在 Animation 选项卡中,可以自动导入相关的动画,如图 2 所示。

                                        

                                  图 2 动画设置界面

     

      在图 2 中,导入角色动画时,原有模型所设置的动画被 Unity 很好地识别,被划分成许多动画片段,此时开发者还可以调整每个动画的起始帧和结束帧。如图所示的 Idle 动画片段,是从 0 到 245 帧。 

      当然,还可以手动设置动画片段,这与原有的动画系统基本一样,这里不再重复,如图

    3  所示。

     

               

                    3 手动设置动画片段 

      实际上,通过角色动画导入,与原有的 Unity 并没有什么不同,只是在 Unity 内部转换、识别相关的模型和动画片段而也,这个步骤与原有的动画系统是完全一样的。 

      在创建角色动画 Avatar 过程中,该步骤则是新的 Unity 4.0 所必须添加的一个步骤,新的 Unity 4.0 是通过 Avatar 这个代理来实现设置角色动画中的骨架和蒙皮的。

      在图 4 中,单击 Rig 选项卡中的“Configure”按钮,为当前导入的模型创建一个 Avatar,此时会打开如图 5 所示的界面。

       

            图 4   创建 Avatar 

      通过创建 Avatar 中的 Mapping 选项卡,实现角色动画中的骨架到 Unity 的映射,也就是说,通过该映射,Unity 可以设置角色中的骨架信息,如图 5 所示。 

      通过创建 Avatar 中的 Muscles 选项卡,实现角色动画中蒙皮到 Unity 的映射,也就是说,通过该映射,Unity 可以设置角色中的蒙皮信息,如图 6 所示。 

      通过创建角色动画 Avatar,在新的动画系统 MecAnim 中,Unity 就设置了角色动画的骨架和蒙皮信息,从而就可以在 Unity 中实现角色动画了。 

      通过上面的 2 个步骤,角色动画在 Unity 中已经被导入,Unity 已经具有识别角色动画的骨架和蒙皮功能,下面开发者就可以使用新的相关界面、相关功能来开发角色动画。

      特别令人兴奋的是:在新的 Unity 4.0 新的动画系统中,开发者可以利用角色动画的重定向功能,将其他的任意动画动作绑定到开发者所需要指定的任何角色模型上,使得被绑定的角色也具有指定的动画功能,实现动画动作的可重复利用,这样有可能将美工人员与开发人员的工作彻底分隔开来,极大提高游戏的开发效率;同时可以预见的是,今后 Unity 中的角色动画不再神秘,将会有许多动画动作库可以供开发者使用;当然这对美工来说,是一个不幸的消息,由于动作库的可重复利用,美工的任务相对减少,因此美工的竞争在 Unity 领域将会加大。

                

            图 5  设置映射获得骨架信息                                               图 6   设置肌肉获得蒙皮信息 

      将创建了 Avater 的角色模型拖放到游戏场景中,将打开如图 7 所示的 Animator 组件界面。

         

        图 7   Animator 组件  

      在图 7 所示的 Animator 组件界面中,开发者首先需要创建一个 Animator Controller,单击菜单 Asset——Create,在打开的菜单中选择 Animator Controller 命令,如图 8 所示,即可在 Project 窗格中创建一个新的 New Animator Controller。

      

        图 8   创建 Animator Controller 

    双击这个 New Animator Controller,即可在左边的窗格中打开 Animator 状态机设置界面,如图 9 所示。 

       

    图 9   Animator 状态机设置界面  

    在图 10 所示的界面中,找到人物挥手的动画,将其拖放到 Animator 状态机中,出现如图 11 所示的界面。

        

                  图 10        选择挥手动画 

    在图 11 中,黄色的矩形 Wave 表示人物处于默认状态。

         

             图 11   拖放挥手动画到 Animator 窗口中  

      在图 12 中,选择场景中的机器人,将 New Animator Controller 拖放到机器人的 Controller 变量之中。这样就将原有的 Dude 动画的挥手动作,绑定到机器人之中,使得机器人也具有挥手的动作。

           

                                  图 12        绑定动画 

    重复上述步骤,绑定其他的 3 个角色,使得他们也具有挥手的动作。运行游戏,4 个角色就会全部具有挥手的动作,如图 13 所示。

        

                图 13        实现挥手动画 

    以上简单讲解了如何利用重定向功能,设置角色动画的基本过程。 

    关于新的 Unity 4.0 中的新动画系统——MecAnim,这里只是一个简单介绍,由于文字难于表达这些操作过程,本人将尽快制作一个中文视频讲座,专门介绍 Unity 4.0 中的新动画系统——MecAnim。 

     Unity 4.0 中的新动画系统——MecAnim,中文视频讲座一旦制作完毕,将存放在优酷视频网上,存放地址如下:http://i.youku.com/Unity3DGAME

    贴一个操作代码:

    m_animator = xingkong.GetComponent<Animator>();
    m_animator.SetBool("UpSpeed", true);

  • 相关阅读:
    《我是一只IT小小鸟》
    实现对字符串的反转输出与句子的反转输出
    7.13学习记录
    CentOS 7 不能连接网路的解决方法
    Xshell连接linux服务器不成功的乌龙问题
    Python基础(二)数据类型
    Python基础(一)
    UML精粹3
    UML精粹2
    UML精粹1
  • 原文地址:https://www.cnblogs.com/allyh/p/9244791.html
Copyright © 2011-2022 走看看