刚刚在草稿箱里发现一堆草稿。。。修改一下赶紧发出来。。。

名词解释

什么是animation

本质上讲,动画就是以时间帧的方式记录物体某一时刻的状态,然后按一定顺序与时间间隔进行切换。所有软件的动画原理都是如此。

什么是Animator

animator,就是unity 用于管理多个动画播放状态的管理器,它允许你通过拖拽的方式管理你的动画顺序与触发条件。从而实现复杂的动画或交互效果。

然而,animator最最有魅力的地方,在于它对动画的融合、过度处理。这一点会在稍后讲到。

Animator界面简介

打开方式: unity 上方工具栏 > Window > Animation > Animator

这个就是默认的界面了。主要包含3部分。即图层区、参数区、动画控制区

1,Layers 图层区


点击Layers标签即可切换到图层区。图层用于动画重叠或隔离。这和photoshop的图层概念差不多。
动画隔离是你可以通过权重或判断图层动画运行状态,来指定播放某图层中的动画来实现隔离效果。
动画重叠则是最重要的部分,让不同的动画同时运行。比如在移动中的动画添加出拳攻击动作,就属于手脚动画的融合。

添加、删除图层

左键点击图层右边加号可以添加图层,右键点击图层,然后选择Delete就可以删除图层。

设置图层

左键拖拽图层最前面的按钮可以修改图层的顺序。左键点击涂岑右边的齿轮按钮,可以进入图层的设置页。双击图册图层名即可设置图层名称
Weight:权重,用于调整当前图层中动画对目标物体的影响程度。0是毫无影响,1是完全影响。如果多个图层都为1,那么就会进自动行动画平均融合
Mask:设置骨骼遮罩。设置当前图层对对象的哪部分起作用
sync :快速创建一个与原动画相同的状态
IK Pass:是否使用反最用力。力反馈系统

2参数区


点击Parameters进入参数区。
Animator的参数主要用于动画控制。比如动画的播放状态。
点击右边的加号即可添加参数。参数类型分为浮点、整形、布尔、触发四种类型。其中比较特殊的就是Trigger参数。每次使用脚本调用该参数时,就会触发一次相关动作。

游戏中的移动、攻击、施法等动作的触发条件都是在这里设置的。比较值得注意的就是输入时如果使用的时Aix方式,即递增衰减输入法。 那么在离开按键的时候,按键值可能不为0,这样如果在动作判定的范围内时,会多次触发。所以这里记得要处理一下。

3 动画控制区


动画控制区以功能模块的形式管理动画的运行逻辑。即一个模块代表一个动画或是一个状态。通过设置模块间的连接来实现设置动画的状态。

动画生命周期模块

动画的生命周期用于控制动画的启动和退出状态。当控制器到达某种状态时,就会启动相应的模块。
Any State:无论动画启动还是结束都会触发这个模块
Entry:动画启动时会运行该模块
Exit:动画结束时会运行该模块

动画控制器
创建控制器菜单

在空白处点击右键 >

几个按钮的功能分别是:
Create State: 创建动画控制器。用于指定动画
Empty:创建一个空的动画控制器。用于设置单个动画
FromSelected clip:从已选择的动画创建新的模块
From New Blend Tree: 创建动画混合树。用于设置需要线性过度的多个动画混合器。
Create Sub-State Machine:创建动画集 。动画集就是一个容器。包含一个逻辑画布。
Copy current StateMachine:将当前所在的动画集,复制在剪切板中
Paste:从剪辑板粘贴动画集或动画控制器到画布中
值得一提的是,当我们单击任何一个模块,按ctrl+c ctrl+v都可以实现复制粘贴的功能。

比较关键的功能就创建空动画控制器Empty、动画混合树Blend Tree、以及动画集合Sub-State Machine。

标准动画控制器Empty

创建好一个动画模块后,点击这个模块Inspector中就会显示相关的设置
Motion:动画文件或指定的动画状态机
Speed:动画播放速度
MotionTime:动画时间
Mirror:勾选后会镜像播放。比如你
Foot IK:勾选后开启足部IK。脚部会跟随地面角度而产生变化
Transition:在这个列表中,显示所有与此模块有关系的父或子模块。点击列表中的某项,就会显示两个模块的过渡设置

红框部分:是连接关系选择列表。
蓝框部分:是两个动画模块间的过渡设置。所有的改变都会直接在下方的时间轴显示。
红框内是当前帧的位置。preview中会显示当前的动作。
蓝框所在就是动画时间。下方相同的块,就是另一段动画的时间轴位置
拖拽紫色部分,用于设置两个动画切换时的过度。这个范围越大,两段动画就会被融合的越平滑。黄框内的灰色的部分,是不会播放的部分。也就是说,也可以通过设置这个,来达到剪切动画头尾的效果。你有可能会问,如果你想去掉动画中间的某个部分怎么办。。。组合使用就好了啊

紫框部分:是参数设置。如果当前动画是动画混合树(Blend tree),那么这里就会显示混合树的参数。
下方是动画的启动条件设置。相关参数实在参数区实现设置好的。

动画模块连接


右键某个模块即可弹出连接菜单。
Set Statemachine Default State:这个是Entry模块专有设置。他决定一个动画集,启动时,默认播放的模块。一个动画集必须有一个default statie连接。
Make Transition: 点击该项后,再点击目标模块即可完成两个模块间的连接。

点击连线中间的三角按钮,Inspector面板上就会出现从一个模块到另一个模块的触发条件等设置。相关设置参数含义在上方已经有所介绍了

blend tree

行为混合树,用于混合多个动作,制作过度。特别适合连贯的动作。比如移动切换。
blend tree里面比较重要的一个设置就是 blend type

blend type:
1D:适合a->b->c …的相邻的两个动作过度。无法从a过度到c。用这个来实现前后左右的移动,相邻的两个方向都可以过度比如向左向前,但相反方向的是无法过度的。比如向前向后。

2D simple Directional:在平面直角坐标系中输入xy两个参数,来决定任意两个方向上的动作融合。可以a>b,a>c。可以实现前后左右移动的无缝过度。但无法实现在同一方向上的多个动作点过度。

2D freeform directional:相比上一个可以实现更复杂的动画过度了。支持任意方向的多个动作过度。

Animation Event

animation event 是animator所控制的动画animation中的事件帧。
AnimationEvent相关的使用方法可以参见这篇教程https://blog.csdn.net/lengyoumo/article/details/110957550

Unity Animator Animation详解及应用实例教程相关推荐

  1. Unity中的Animator动画详解

    Unity中的Animator动画详解 Animator动画导入 Animator动画详解 动画类型选择 Rig面板属性 Mode面板属性 Animation面板属性 动画片段 控制使用 Animat ...

  2. Unity动画系统详解7:Layer是什么?

    摘要:使用Layer可以用来管理角色的不同身体部位.比如下半身用于行走或跑步,上半身用于射击或投掷物体. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu) ...

  3. Unity动画系统详解5:BlendTree混合树是什么?

    摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...

  4. Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

  5. Unity动画系统详解8:IK是什么?

    摘要:IK是Inverse Kinematic的缩写,也就是反向动力学.是根据骨骼的终节点来推算其他父节点的位置的一种方法.比如通过手的位置推算手腕.胳膊肘的骨骼的位置. 洪流学堂,让你快人几步.你好 ...

  6. Unity动画系统详解6:如何做好角色的移动动画?(Root Motion详解)

    摘要:Root Transform是body transform在Y平面上的投影,并且是运行时计算的.每一帧Root Transform的变化实时计算.然后Transform的变化会被应用到GameO ...

  7. Unity动画系统详解3:如何播放、切换动画?

    摘要:[长文预警,建议先收藏]有了模型和多个动画以后,在Unity中如何控制它们的播放和切换呢?本文带你一站式解析Unity的Animator模块. 洪流学堂,让你快人几步.你好,我是跟着大智学Uni ...

  8. Unity动画系统详解10:子状态机是什么?

    摘要:除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这是复(yu)习( ...

  9. Unity动画系统详解9:Target Matching是什么?

    摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...

  10. 零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏

    零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏 六大推荐理由 理由一:系统 理由二:详细 理由三:专业 理由四:图解 理由五:深度 理由六:实例 一键直达:<UGUI 控件详解 ...

最新文章

  1. 阿里开源MNNKit:基于MNN的移动端深度学习SDK,支持安卓和iOS
  2. JAVA基础知识之Set集合
  3. oracle Hash Join及三种连接方式
  4. 认识学习网络布线与数制转换
  5. 苹果下半年推出M2芯片MacBook Air 配色更多更轻薄
  6. Linux学习之linux下文件目录的了解及总结
  7. 吴恩达神经网络和深度学习-学习笔记-5-参数和超参数
  8. [译] 在Web API 2 中实现带JSON的Patch请求
  9. SVN下载、拉取远程库、上传代码及注意问题
  10. java程序输入二叉树,JAVA 二叉树代写、代写java二叉树编程作业
  11. 解决安装office2007的各种工具时提示“安装程序找不到office.zh-cn/*”的问题
  12. 图片中画框(C语言实现)
  13. HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)...
  14. 2020年10月 Hacktoberfest 纪念版T恤还是种树
  15. php 风水起名网站源代码_202002年PHP开运网运势测算网站源码 鼠年风水起名/八字算命/算财运姻缘/易经周易/占卜+安装说明...
  16. 如何区分芯片原装、散新、翻新,减少器件的不良率?
  17. 深度学习基础知识整理
  18. python 2.7上安装pymssql和pymysql
  19. 想抵御“黑客”和“黑产”,智能 + 安全能不能有高招?
  20. dplyr处理关系数据

热门文章

  1. 金蝶BOS 插件数据填充
  2. excel 宏把多个工作表合并成一个工作表
  3. 【GPU精粹与Shader编程】(二) 《GPU Gems 1》全书核心内容提炼总结 · 上篇
  4. RN项目集成react-native-code-push(四)-- ReactNative项目集成react-native-code-push
  5. h5 input 阴影_CSS3文本阴影 text-shadow
  6. Win7下使用建行捷德U盾支付
  7. Towards Playing Full MOBA Games with Deep Reinforcement Learning翻译
  8. 扩增子分析流程 —— 数据处理(vsearch)
  9. 图片如何转化为pdf格式?
  10. 芯力特SIT1043Q完全替代恩智浦TJA1043