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 ...
随机推荐
- mysql重置登录密码
1.停止mysql服务. services.msc进入服务界面 停止mysql服务 2.打开一个cmd窗口. 输入mysqld --skip-grant-tables 启动了一个新的mysql服务 跳 ...
- java中集合的组成及特点
1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程 ...
- SKlearn库学习曲线
思想: # 1.现将所有样本用交叉验证方法或者(随机抽样方法) 得到 K对 训练集-验证集# 2.依次对K个训练集,拿出数量不断增加的子集如m个,并在这些K*m个子集上训练模型.# 3.依次在对应训练 ...
- Python-HTML 最强标签分类
编程: 使用(展示)数据 存储数据 处理数据 前端 1. 前端是做什么的? 2. 我们为什么要学前端? 3. 前端都有哪些内容? 1. HTML 2. CSS 3. JavaScript 4.jQue ...
- OCM_第七天课程:Section3 —》数据库可用性
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- selenium webdriver+python基本操作
# -*- coding:utf-8 -*-#导入模块from selenium import webdriver from selenium.common.exceptions import NoS ...
- ECLIPSE 导入外部文件或源码包
步骤: 点击Project->Properties->Libraries->Add External Class Folder.. ->选择你的文件路径->确定 注:如果 ...
- CSS----布局注意事项
1.当div标签中含有子标签,如果div标签的大小是被div中的子标签撑起来的,那么可能布局(之后)可能就会出现问题(if 父级div中没有border,padding,inlinecontent,子 ...
- python 全栈开发,Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)
一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,“无序列表”的意思. li:lis ...
- 一个判断男女性别的JS脚本
var xb= "男" if(xb=="男"){ document.write("你是男生") }else{ document.write( ...