【Unity】第10章 Mecanim动画系统
分类:Unity、C#、VS2015
创建日期:2016-05-02
一、简介
Unity提供了两种动画系统:一种是早期版本提供的旧版(Legacy)动画系统,旧版本(Legacy)以后将逐步被淘汰掉并在新版中不再支持。另一种是Mecanim动画系统,这是建议使用的新版动画系统。
如果你是初学者,就不要去学旧版(Legacy)动画了,直接学习Mecanim动画系统即可。
二、什么是Mecanim动画系统
Mecanim(肌肉线条)是Unity提供的新版动画系统,Unity计划将工作流完全并入Mecanim以后,就彻底淘汰旧版 (Legacy) 动画系统。或者说,以后直接使用Mecanim来实现动画处理就行了,特别是在使用类人动画时更是如此。
另外,在某些情况下,你可能仍然会偶尔使用类似旧版 (Legacy) 动画系统提供的功能。比如处理Unity 4.0 之前创建的旧版动画和相关代码,以及希望通过参数而不是通过时间来控制动画片段的场合(比如控制瞄准角度)。为了解决这些问题,Unity 5.x又在Mecanim中将动画进一步细分为“类人动画”和“通用动画”。
Mecanim动画系统主要提供了以下功能:
(1)针对人形角色(或者叫类人角色)的工作流。利用它可方便地创建动画。
(2)Retargeting(运动重定向或者动画重定位)。利用它可以把动画从一个角色模型应用到另一个角色模型上。
(3)针对Animation Clips(动画片段)的工作流。可针对动画片段以及他们之间的过渡和交互过程进行预览。该工作流可以使动画师在编写游戏逻辑代码之前即可预览动画效果,这样动画师就可以独立进行工作而不用过分地依赖于程序员。
(4)使用可视化编程工具(Visual Programming Tool)管理动画之间复杂的交互。
(5)可对身体的不同部位分别用脚本实现不同的逻辑进行动画控制。
三、Mecanim动画系统的基本处理流程
利用Mecanim制作动画时,一般分成三个大的步骤来实现:准备动画资源、创建动画角色、角色控制处理。
第1步—准备动画资源
创建动画资源主要通过其他的专业3D软件(例如 3ds Max 2015 或者 Maya)来完成,这一步的工作与Mecanim功能无关。实际的研发团队中一般由美工或动画设计师来专门完成它,当然,如果人手少,也可以由程序员直接用3ds Max 2015来完成。
动画资源准备好以后,将其导入到Unity中,然后就可以利用Mecanim制作动画了。
第2步—创建动画角色
创建动画角色的目的是为了通过脚本来控制动画,比如控制转身、甩胳膊、起跑、慢走、……等。
有两种创建动画角色的方式:类人角色和通用角色。
(1)类人角色
Mecanim 针对类人(人形)动画模型专门提供了一种特殊的工作流,该工作流使用扩展的GUI和动画重定向来共同实现游戏中需要的类人角色,包括创建 Avatar 以及定义对肌肉线条(Muscle Definitions)的调节等。
(2)通用角色
此方式专为创建非类人角色而提供,例如各种生物动画道具以及四足动物等。虽然通用角色并不适用于动画重定位,但仍可以利用Mecanim实现非类人角色需要的的其他功能,比如控制枪支的瞄准角度等。
第3步--角色控制处理
角色的动画控制处理就是能让玩家通过键盘、鼠标或游戏杆等其他设备让角色像活人或者动物一样“动”起来,也叫“赋予角色生命”,例如让玩家通过左右箭头键或者鼠标左键控制人的转弯、通过上下箭头键后者鼠标右键控制人的起跑或停止、……等。
这一步涉及的内容包括设置动画片段以及动画片段之间的交互,设置状态机和混合树,列出动画参数,以及通过C#脚本代码控制动画的行为。
【Unity】第10章 Mecanim动画系统的更多相关文章
- 【Unity笔记】一些Mecanim动画系统、状态机的参数细节
动画混合树Blend Tree调整动画片段的播放速度: 0 动画不播放 -1 动画倒着播放:如果只有“往前走”的动画,可以变成“往后走”动画 勾选动画是否镜像: 左右颠倒(挥左手变成挥右手) 过度条件 ...
- Spine学习七 - spine动画资源+ Unity Mecanim动画系统
前面已经讲过 Spine自己动画状态机的动画融合,但是万一有哥们就是想要使用Unity的动画系统,那有没有办法呢?答案是肯定的,接下来,就说说如何实现: 1. 在project面板找打你导入的Spin ...
- Unity3D Mecanim 动画系统骨骼动画问题解决方法
http://7dot9.com/2014/08/16/unity3d-mecanim%E5%8A%A8%E7%94%BB%E7%B3%BB%E7%BB%9F%E9%AA%A8%E9%AA%BC%E5 ...
- Unity3D之Mecanim动画系统学习笔记(一):认识Mecanim动画系统
Mecanim简介 Mecanim动画系统是Unity3D4.0开始引入的一套全新的动画系统,主要提供了下面4个方面的功能: 针对人形角色提供一套特殊的工作流. 动画重定向的能力,可以非常方便的把动画 ...
- [Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合
大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 这段时间博主将大部分的精力都放在了研究官方演示样例项目上,主要是希望能够从中挖掘出有价值的东 ...
- [Unity3D]Unity3D圣骑士当游戏开发商遭遇Mecanim动画系统
大家好.我是秦培.欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 博主总算赶在这个月底写出了这篇文章.这个月由于期末考试一直没时间研究太多关于技术方面 ...
- Mecanim动画系统 - 在角色上使用Mask 叠加动画层
http://www.narkii.com/club/thread-305706-1.html 2013-10-9 01:15 上传 下载附件 (78.65 KB) 导读:五分钟了解Mecanim角色 ...
- Unity3D之Mecanim动画系统学习笔记(九):Blend Tree(混合树)
认识Blend Tree 我们在Animator Controller中除了可以创建一个State外还可以创建一个Blend Tree,如下: 那么我们看下新创建的Blend Tree和State有什 ...
- Mecanim动画系统
序言:Mecanim动画系统是Unity4.0之后退出的新版动画系统,非常适合人类动画系统.本文是作为自己的学习来讲解的, 可能会有些啰嗦,但尽量把自己的坑都为大家列出来,让大家理解透彻. 一.文件的 ...
随机推荐
- 怎样解决WampServer #1405 - Access denied for user 'root'@'localhost' (using password: NO)
转载请注明出处:http://blog.csdn.net/xingjiarong/article/details/47903227 之前一直在用wampserver,然后环境配置也是正确的,可是过了一 ...
- 完美解决office2013 错误1402
遇到1402问题 按照网络上的帖子都无法解决,老提示无权限更改,原来只是少了一个步骤而已!经本人多次试验,已经完美解决,现在上图! 步骤 肯定是得先出现错误,找到注册表所在项! 这个就不赘述,通过 ...
- Sublime Text 使用方法
1. 官网下载安装 http://www.sublimetext.com/ 2.安装 Package Control 1)ctrl+~ : 呼出控制台 2)在控制台输入一下代码: import url ...
- JavaScript callback function 回调函数的理解
来源于:http://mao.li/javascript/javascript-callback-function/ 看到segmentfault上的这个问题 JavaScript 回调函数怎么理解, ...
- Linux-socket的close和shutdown区别及应用场景
shutdown的定义 #include<sys/socket.h> int shutdown(int sockfd,int how); how的方式有三种分别是: SHUT_RD(0): ...
- 请问实现MVC的框架有哪些,实现持久化操作的框架有哪些,还有类似于spring整合的框架又有哪些
2011-04-10 我知道MVC框架有struts.webWork; 持久化的有hibernate.ibatis,而进行整合的我只知道spring了 ------------------- 表示层框 ...
- iOS App转让流程详情教程篇
最近对公司旗下两款app进行转让,正好记一下操作流程: 1.登录iTunes发布网站,找到app,查看App信息下方有个[转让 App] 按钮. 2.点进去,是如下界面,里面包含是否满足转让条件,理论 ...
- webservice(草稿)
1. 概述 WebService是一种跨编程语言和跨操作系统平台的远程调用技术. Webservice是被定义用来使不同应用之间通过网络传输数据的一种标准,此标准和具体的语言无关,至于哪种语言提供接 ...
- 设置树莓派SSH连接因超时闲置断开(转)
设置树莓派SSH连接因超时闲置断开 转自:http://shumeipai.nxez.com/2013/12/06/set-ssh-connection-is-disconnected-due-to- ...
- Socket编程:之双机通信
服务端: #include<sys/socket.h> #include<sys/types.h> #include<stdio.h> #include<un ...