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

  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);

Unity 4.0 中的新动画系统——MecAnim的更多相关文章

  1. (数据科学学习手札73)盘点pandas 1.0.0中的新特性

    本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 毫无疑问pandas已经成为基于Pytho ...

  2. [Unity3D]Unity4全新的动画系统Mecanim

    Unity4.X添加一个新的动画系统,以取代原有的3.X旧的动画系统,全新的动画系统Mecanim是官方推荐,它使我们能够写更少的代码实现连续动画. 效果图 Unity3.X中动画系统播放动画 使用播 ...

  3. 关于Unity中旧版动画系统的使用

    Unity在5.X以后,有一个旧版的动画系统和新版的动画系统. 新版的动画系统是使用Unity动画编辑器来调的,调动画和控制动画 旧版的动画系统是用其他的第三方软件调好后导出到一个FBX文件里面,就是 ...

  4. Unity笔记 英保通 Unity新的动画系统Mecanim

    Mecanim动画系统是Unity独一无二.强大灵活的人物动画系统.该系统赋予您的人类和非人类人物令人难以置信的自然流畅的动作,使它们栩栩如生.游戏中角色设计提高到了新的层次,在处理人类动画角色中可以 ...

  5. 【译】.NET Core 3.0 中的新变化

    .NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...

  6. [转]【译】.NET Core 3.0 中的新变化

    .NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...

  7. xcode 5.0中,新的开发者证书加载方式

    按照先前从网上看到的参考,开通了开发者账号之后,要先在本地生成一个request文件,然后上传苹果开发者网站,然后在官网上生成一个证书.cer文件,拿这个文件在本地生成p12文件,然后就是一堆鸡零狗碎 ...

  8. C# 6.0中你不知道的新特性

    为什么写? 今天去上班的公交上,有朋友在张队(张善友)的微信群里,发了一个介绍C# 6.0新特性的视频,视频7分钟,加上本人英语实在太low,整体看下来是一脸懵逼的. 下班回到家里,打开这个视频,把视 ...

  9. 学习使用ExpressJS 4.0中的新Router

    概述 ExpressJS 4.0中提出了新的路由Router.Router好比是一个"迷你版"的express应用,它没有引入views或者settings,但是提供了路由应有的A ...

随机推荐

  1. plsql developer无法识别32位oracle问题如何解决?

    1.登录PL/SQL Developer这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files ...

  2. html dom之iframe对象

    当从父页面中需要获取使用iframe嵌入的内容时,可以使用图中后面的两个属性 var sonDocument = document.getElementById('iframe_id').conten ...

  3. Python-HTML CSS 练习

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. OCM_第六天课程:Section3 —》数据库可用性

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. Java String str = new String(value)和String str = value区别

    示例代码: public class StringDemo2 { public static void main(String[] args) { String s1 = new String(&qu ...

  6. 一个判断男女性别的JS脚本

    var xb= "男" if(xb=="男"){ document.write("你是男生") }else{ document.write( ...

  7. jquery的clone方法应用于textarea和select的bug修复不能copy值,clone id重复的解决

    textarea和select的值clone的时候会丢掉,在clone的时候将val再重新赋值一下,如果知道这个了就简单了, 测试发现,textarea和select的jquery的clone方法有问 ...

  8. 深度优先搜索(DFS)和广度优先搜索(BFS)

    深度优先搜索(DFS) 广度优先搜索(BFS) 1.介绍 广度优先搜索(BFS)是图的另一种遍历方式,与DFS相对,是以广度优先进行搜索.简言之就是先访问图的顶点,然后广度优先访问其邻接点,然后再依次 ...

  9. 阿里巴巴的26款超神Java开源项目

    目录 1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba 2. JDBC 连接池.监控组件 Druid 3. Java 的 JSON 处理器 fastjson 4. 服务 ...

  10. 利用mysqldump 实现每天备份方案

    1.创建单独的导出导入数据库帐号 grant SELECT, RELOAD, SHOW DATABASES, LOCK TABLES on game to jackluo@localhost iden ...