Unity动画系统基础

Unity动画系统基础

##1Mecanim动画系统数据库

++++1Macanim功能强大的动画系统编程

++++2、方便的实现人型动画的设置和重用设计模式

++++3、方便的实现动画剪辑的设置网络

++++4、可视化的动画控制界面函数

++++5、对动画播放的精确控制工具


++++1Mecanim工做流程oop

++++2、动画类型学习

++++3、人型动画设置动画

++++4、设置Avatorspa

++++5、设置动画剪辑

++++6Animator组件

++++7Animator控制器啊

++1.1Mecanim工做流程

++++1、资源导入,这一阶段由美术师或动画师经过三维工具来完成。

++++2、角色的创建,主要分为如下两种方式。

--第一种:人形角色的创建,Mecanim经过扩展的图形操做界面和动画重定向功能,为人物模型提供了一种特殊的工做流,它包括Avator的建立和对肌肉定义(Musicle Definitions)的调节。

--第二种:通常角色的创建,通常为运动物体和四足动物而设定,动画重定向对此不适用。

++++3、角色的运动,包括设定动画片断以及其相互间的交互做用,也包括创建状态机和混合树、调整动画参数以及经过代码控制动画等。

++1.2、动画类型

++++动画类型分为四种:

--None :无任何动画

--Legacy :旧版Animation动画

--Generic :通常动画(非人形动画)

--Humanoid :人形动画


++1.3、人型动画设置

++++1、选择骨骼建立方式

++++2、配置骨骼Avatar

++++3、检测骨骼是否匹配


++1.4、设置Avatar

++++1、必须匹配的骨骼(实心圆圈)

++++2、可选匹配的骨骼(虚心圆圈)

++++3、选择配置部位

++++4、选择具体骨骼

++++5、完成匹配


++++AvatarMecanim系统中极为重要的模块,所以为模型资源正确的设置Avatar也相当重要,无论Avatar自动建立过程是否成功,用户都须要进入【Configure ... Avatar】界面中确认Avatar的有效性,即确认用户提供的骨骼结构与Mecanim系统预约义的骨骼结构是否正确的关联起来,而且模型处于T形姿态。


++++Mecanim使用肌肉(Muscle)来限制不一样骨骼的运动范围,一旦Avatar配置完成,Mecanim就能解析其骨骼结构,进而用户就能够在Muscles选项卡中调节相关参数。在此可很是容易的调节角色的运动范围,确保看起来真实天然。

++++用户能够在视图上方使用预先定义的变形方法对几根骨骼同时进行调整,也可在视图下方对身体上单根骨骼进行调整。


++1.5、设置动画剪辑

++++1、选择动画选择卡

++++2、导入动画

++++3、动画压缩,能够进行关键帧压缩

++++4、用来设置动画曲线的精确程度

++++5、模型中所包含的动画剪辑

++++6、能够增长或者删除动画剪辑


++++7、动画剪辑起始帧和结束帧

++++8、动画循环

++++9、镜像

++++10、根动做设置:包括旋转、Y轴水平位置和XZ平面位置

--Bake Into Pose :烘焙进姿态

--loop match :当须要让一个动做重复时,后面的圆点颜色就表明重复质量。

  ---绿色表示该动画的第一帧和最后一帧角色的姿态类似,黄色次之,红色质量最差。

--Based Upon :定根动做的参考点。

--Offset :偏移量用来设置指定根动做,在运动时的偏移量。


++1.6Animator组件

++++控制器: 添加在角色身上的Animator控制器用来设置角色身上的行为,包括状态机、融合树和经过脚本控制的事件。

++++Avatar :当前角色的Avatar系统。

++++应用根动做: 使用角色自身动画的运动属性移动角色位置,仍是使用脚原本实现。

++++更新模式:

--1Update更新;

--2、基于物理更新;

--3、可以不依赖Time.timeScale更新动画系统。

++++剔除模式: 动画的剔除模式。


++1.7Animator控制器

++++1、建立动画控制器: 在Project视图中点击Create,而后选择Animator Controller

++++2、重命名后,双击建立的 Animator Controller能够打开Animator视图。

++++3、只须要把动画剪辑拖入Animator视图便可。

--第一个加入的动画会设为默认状态,若是须要更改默认状态,须要在状态上单击右键选择设为默认。


##2State Machine状态机

++2.1、状态机

++++将动画加入状态机后,咱们须要实现动画间的过渡。


++++动画间的过渡须要使用状态机和状态参数实现,目前支持的参数类型有4种。


++2.2、设置动画状态

++++1、状态名

++++2Tag:状态标签

++++3Speed:动画默认速度

++++4Motion:动做对应的动画剪辑

++++5Foot IK:脚部动画约束

++++6Mirror:镜像动画

++++7Transitions:从这个状态产生的动画过渡


++2.3、设置过渡条件

++++1Has Exit Time:勾选时,过渡不可被中断

++++2Settings:状态切换融合设置

++++3Conditions:设置过渡条件


++2.4Animator

++++经常使用方法

--SetFloat/GetFloat :设置/获取float类型参数的值。

--SetTrigger :设置一次触发。

--GetCurrentAnimatorStateInfo :获取某一层的状态机信息。

--IsInTransition :判断是否在执行动画过渡。

--StringToHash :返回状态机所表明的Hash值。


++2.5、使用代码控制状态机

++++首先,须要获得状态参数的散列表IDAnimator组件。

--获取状态参数的散列表ID

int speedFloat = Animator.stringToHash(“Speed”);

int deadBool = Animator.stringToHash(“Dead”);

++++而后,经过SetXxxxx函数改变状态参数的值

--改变Float类型状态参数的值:

animator.SetFloat(speedFloat, 2.0f);

--改变Bool类型状态参数的值:

animator.SetFloat(deadBool, true);


##3BlendTree融合树

++3.1BlendTree融合树

++++融合树的功能是将两个或多个类似的动做进行融合。

++++将走路和奔跑动画融合在一块儿。

++3.2、动画融合

++++使用一个参数控制融合状态。


++++动画融合

--双击融合树后进入融合树界面;

--融合树名字;

--Blend Type :融合类型;

  ---1D ,使用一个参数进行融合;

  ---2D简单定向, 全部动做都是不一样方向时使用的简单融合。

  ---2D自由定向, 也用于混合朝向不一样的动做,但它有一个原点动做。

  ---2D自由笛卡尔坐标, 能够在XY轴使用不一样的定义,自由定义动做。

--Parameter :参数

--动做示意区

--Motion :动画剪辑

--Thresl :临界值

--时间缩放

--镜像

--添加删除

--Automate Thresholds :自动设置临界值

--Adjust Time Scale :调整时间缩放




#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++立钻哥哥推荐的拓展学习连接(Link_Url

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++Unity引擎基础http://www.noobyard.com/article/p-ggcuedyq-ka.html

++++Unity面向组件开发http://www.noobyard.com/article/p-eiunlkzw-dt.html

++++Unity物理系统http://www.noobyard.com/article/p-mcqnwufb-kd.html

++++Unity2D平台开发http://www.noobyard.com/article/p-brjbvtac-hs.html

++++UGUI基础http://www.noobyard.com/article/p-nvzrvath-mc.html

++++UGUI进阶http://www.noobyard.com/article/p-tpspjolu-gt.html

++++UGUI综合http://www.noobyard.com/article/p-nfgrebqx-gg.html

++++Unity动画系统基础http://www.noobyard.com/article/p-otjpnbzz-dq.html

++++Unity动画系统进阶http://www.noobyard.com/article/p-hxghrtgb-bp.html

++++Navigation导航系统http://www.noobyard.com/article/p-skpvrobt-t.html

++++Unity特效渲染http://www.noobyard.com/article/p-sudpqrhk-bp.html

++++Unity数据存储http://www.noobyard.com/article/p-ybvcceul-m.html

++++Unity中Sqlite数据库http://www.noobyard.com/article/p-vxpuqxev-ca.html

++++WWW类和协程http://www.noobyard.com/article/p-alggjlwu-cy.html

++++Unity网络http://www.noobyard.com/article/p-bjvfgzwg-dw.html

++++C#事件http://www.noobyard.com/article/p-dietpjzv-gm.html

++++C#委托http://www.noobyard.com/article/p-oiohmxtc-gh.html

++++C#集合http://www.noobyard.com/article/p-vdfpislb-ex.html

++++C#泛型http://www.noobyard.com/article/p-vujvnprk-ee.html

++++C#接口http://www.noobyard.com/article/p-emexlwmu-dm.html

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类http://www.noobyard.com/article/p-uchiaxzw-cq.html

++++C#数据类型http://www.noobyard.com/article/p-kqtbvoyq-ba.html

++++Unity3D默认的快捷键http://www.noobyard.com/article/p-gbllyjbs-s.html

++++游戏相关缩写http://www.noobyard.com/article/p-pzpxsztf-gm.html

++++设计模式简单整理http://www.noobyard.com/article/p-scmbzocc-hg.html

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++UML类图http://www.noobyard.com/article/p-aakurcwi-bm.html

++++Unity知识点0001http://www.noobyard.com/article/p-bqmetnys-ep.html

++++U3D_Shader编程(第一篇:快速入门篇)http://www.noobyard.com/article/p-ptwlpwbc-gz.html

++++U3D_Shader编程(第二篇:基础夯实篇)http://www.noobyard.com/article/p-dadqpvvp-hv.html

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/


--_--VRunSoft : lovezuanzuan--_--