##1、Mecanim动画系统
++++1、Macanim功能强大的动画系统
++++2、方便的实现人型动画的设置和重用
++++3、方便的实现动画剪辑的设置
++++4、可视化的动画控制界面
++++5、对动画播放的精确控制
++++1、Mecanim工作流程
++++2、动画类型
++++3、人型动画设置
++++4、设置Avator
++++5、设置动画剪辑
++++6、Animator组件
++++7、Animator控制器啊
++1.1、Mecanim工作流程
++++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、完成匹配
++++Avatar是Mecanim系统中极为重要的模块,因此为模型资源正确的设置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.6、Animator组件
++++控制器: 添加在角色身上的Animator控制器用来设置角色身上的行为,包括状态机、融合树和通过脚本控制的事件。
++++Avatar :当前角色的Avatar系统。
++++应用根动作: 使用角色自身动画的运动属性移动角色位置,还是使用脚本来实现。
++++更新模式:
--1、Update更新;
--2、基于物理更新;
--3、能够不依赖Time.timeScale更新动画系统。
++++剔除模式: 动画的剔除模式。
++1.7、Animator控制器
++++1、创建动画控制器: 在Project视图中点击Create,然后选择Animator Controller;
++++2、重命名后,双击创建的 Animator Controller可以打开Animator视图。
++++3、只需要把动画剪辑拖入Animator视图即可。
--第一个加入的动画会设为默认状态,如果需要更改默认状态,需要在状态上单击右键选择设为默认。
##2、State Machine状态机
++2.1、状态机
++++将动画加入状态机后,我们需要实现动画间的过渡。
++++动画间的过渡需要使用状态机和状态参数实现,目前支持的参数类型有4种。
++2.2、设置动画状态
++++1、状态名
++++2、Tag:状态标签
++++3、Speed:动画默认速度
++++4、Motion:动作对应的动画剪辑
++++5、Foot IK:脚部动画约束
++++6、Mirror:镜像动画
++++7、Transitions:从这个状态产生的动画过渡
++2.3、设置过渡条件
++++1、Has Exit Time:勾选时,过渡不可被中断
++++2、Settings:状态切换融合设置
++++3、Conditions:设置过渡条件
++2.4、Animator类
++++常用方法
--SetFloat/GetFloat :设置/获取float类型参数的值。
--SetTrigger :设置一次触发。
--GetCurrentAnimatorStateInfo :获取某一层的状态机信息。
--IsInTransition :判断是否在执行动画过渡。
--StringToHash :返回状态机所代表的Hash值。
++2.5、使用代码控制状态机
++++首先,需要得到状态参数的散列表ID和Animator组件。
--获取状态参数的散列表ID
int speedFloat = Animator.stringToHash(“Speed”);
int deadBool = Animator.stringToHash(“Dead”);
++++然后,通过SetXxxxx函数改变状态参数的值
--改变Float类型状态参数的值:
animator.SetFloat(speedFloat, 2.0f);
--改变Bool类型状态参数的值:
animator.SetFloat(deadBool, true);
##3、BlendTree融合树
++3.1、BlendTree融合树
++++融合树的功能是将两个或多个相似的动作进行融合。
++++将走路和奔跑动画融合在一起。
++3.2、动画融合
++++使用一个参数控制融合状态。
++++动画融合
--双击融合树后进入融合树界面;
--融合树名字;
--Blend Type :融合类型;
---1D ,使用一个参数进行融合;
---2D简单定向, 所有动作都是不同方向时使用的简单融合。
---2D自由定向, 也用于混合朝向不同的动作,但它有一个原点动作。
---2D自由笛卡尔坐标, 可以在X和Y轴使用不同的定义,自由定义动作。
--Parameter :参数
--动作示意区
--Motion :动画剪辑
--Thresl :临界值
--时间缩放
--镜像
--添加删除
--Automate Thresholds :自动设置临界值
--Adjust Time Scale :调整时间缩放
#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++立钻哥哥推荐的拓展学习链接(Link_Url):
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++Unity引擎基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78881685
++++Unity面向组件开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78881752
++++Unity物理系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78881879
++++Unity2D平台开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78882034
++++UGUI基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78884693
++++UGUI进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78884882
++++UGUI综合:https://blog.csdn.net/vrunsoftyanlz/article/details/78885013
++++Unity动画系统基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78886068
++++Unity动画系统进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78886198
++++Navigation导航系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:https://blog.csdn.net/vrunsoftyanlz/article/details/78886403
++++Unity数据存储:https://blog.csdn.net/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite数据库:https://blog.csdn.net/vrunsoftyanlz/article/details/79254162
++++WWW类和协程:https://blog.csdn.net/vrunsoftyanlz/article/details/79254559
++++Unity网络:https://blog.csdn.net/vrunsoftyanlz/article/details/79254902
++++C#事件:https://blog.csdn.net/vrunsoftyanlz/article/details/78631267
++++C#委托:https://blog.csdn.net/vrunsoftyanlz/article/details/78631183
++++C#集合:https://blog.csdn.net/vrunsoftyanlz/article/details/78631175
++++C#泛型:https://blog.csdn.net/vrunsoftyanlz/article/details/78631141
++++C#接口:https://blog.csdn.net/vrunsoftyanlz/article/details/78631122
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630945
++++C#数据类型:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity3D默认的快捷键:https://blog.csdn.net/vrunsoftyanlz/article/details/78630838
++++游戏相关缩写:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++设计模式简单整理:https://blog.csdn.net/vrunsoftyanlz/article/details/79839641
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++UML类图:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++Unity知识点0001:https://blog.csdn.net/vrunsoftyanlz/article/details/80302012
++++U3D_Shader编程(第一篇:快速入门篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372071
++++U3D_Shader编程(第二篇:基础夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372628
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft : lovezuanzuan--_--