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);
Unity 4.0 中的新动画系统——MecAnim的更多相关文章
- (数据科学学习手札73)盘点pandas 1.0.0中的新特性
本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 毫无疑问pandas已经成为基于Pytho ...
- [Unity3D]Unity4全新的动画系统Mecanim
Unity4.X添加一个新的动画系统,以取代原有的3.X旧的动画系统,全新的动画系统Mecanim是官方推荐,它使我们能够写更少的代码实现连续动画. 效果图 Unity3.X中动画系统播放动画 使用播 ...
- 关于Unity中旧版动画系统的使用
Unity在5.X以后,有一个旧版的动画系统和新版的动画系统. 新版的动画系统是使用Unity动画编辑器来调的,调动画和控制动画 旧版的动画系统是用其他的第三方软件调好后导出到一个FBX文件里面,就是 ...
- Unity笔记 英保通 Unity新的动画系统Mecanim
Mecanim动画系统是Unity独一无二.强大灵活的人物动画系统.该系统赋予您的人类和非人类人物令人难以置信的自然流畅的动作,使它们栩栩如生.游戏中角色设计提高到了新的层次,在处理人类动画角色中可以 ...
- 【译】.NET Core 3.0 中的新变化
.NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...
- [转]【译】.NET Core 3.0 中的新变化
.NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...
- xcode 5.0中,新的开发者证书加载方式
按照先前从网上看到的参考,开通了开发者账号之后,要先在本地生成一个request文件,然后上传苹果开发者网站,然后在官网上生成一个证书.cer文件,拿这个文件在本地生成p12文件,然后就是一堆鸡零狗碎 ...
- C# 6.0中你不知道的新特性
为什么写? 今天去上班的公交上,有朋友在张队(张善友)的微信群里,发了一个介绍C# 6.0新特性的视频,视频7分钟,加上本人英语实在太low,整体看下来是一脸懵逼的. 下班回到家里,打开这个视频,把视 ...
- 学习使用ExpressJS 4.0中的新Router
概述 ExpressJS 4.0中提出了新的路由Router.Router好比是一个"迷你版"的express应用,它没有引入views或者settings,但是提供了路由应有的A ...
随机推荐
- 如何用enable_shared_from_this 来得到指向自身的shared_ptr 及对enable_shared_from_this 的理解
在看<Linux多线程服务端编程:使用muduo C++网络库> 的时候,在说到如何防止在将对象的 this 指针作为返回值返回给了调用者时可能会造成的 core dump.需使用 ena ...
- pl sql 记住用户名密码
tools--Preferences--Logon History 选择 “Store history”是默认勾选的,勾上“Store with password” 登录时从下拉框选择用户名则自动登 ...
- CAP理论介绍
经典CAP图 分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳: ●一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ...
- linux POSIX 信号量介绍
信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)使用.多线程可以同时运行多个线程函数完成功能,但是对于共享数据如果不加以锁定,随意改变共享数据的值会发生 ...
- 2017-05~06 温故而知新--NodeJs书摘(一)
前言: 毕业到入职腾讯已经差不多一年的时光了,接触了很多项目,也积累了很多实践经验,在处理问题的方式方法上有很大的提升.随着时间的增加,愈加发现基础知识的重要性,很多开发过程中遇到的问题都是由最基础的 ...
- Innodb引擎下mysql自身配置优化
1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...
- django----文件配置
静态路径配置 STATIC_URL = '/static/' #这个配置就相当于下面配置的别名,如果这里的名字修改了就按照这里的名字去导入 STATICFILES_DIRS = [ os.path.j ...
- 步步为营-17-FileStream-文件加密/解密
以前使用的File是操作小的文本文件,用的并不常见,FileStream(操作字节),可以操作所有格式的文件,用途较广泛 下面做一个通过文件流给文件加密解密的小软件. using System; us ...
- 《LINQ技术详解C#》-2.查询表达式翻译为标准查询操作符
(1)透明标识符 有些翻译步骤要使用透明标识符(*)插入枚举变量. 透明标识符只在翻译过程中存在,翻译结束将不再出现. (2)翻译步骤 ①带有into连续语句的Select和Group语句 from. ...
- AOJ 2224 Save your cats (Kruskal)
题意:给出一个图,去除每条边的花费为边的长度,求用最少的花费去除部分边使得图中无圈. 思路:先将所有的边长加起来,然后减去最大生成树,即得出最小需要破坏的篱笆长度. #include <cstd ...