unity动画机制研究
【unity动画机制研究】感觉课堂上讲的不够系统,翻了一下官方教程深入研究一下
- 节点表示状态,箭头表示状态过渡。状态机的意义在于得以以很少的代码对状态机进行设计和迭代。
- 动画状态机包括动画状态、动画过渡和动画事件;而复杂的状态机还可以包括简单的子状态机。
- 动画状态(animation states)是动画状态机的基本模块。包含一个动画序列(或者是混合树)。当游戏事件触发了一个动画切换的时候,游戏角色进入到一个新的动画状态中。其中,
- 黄色的状态是默认状态,是该状态机被首次激活所进入的状态。如果希望改变默认状态,可以在状态上右键选择Set as layer default state
- Any state 是一个始终存在的特殊状态:不管角色当前处于任何状态,只要它想进入下一个状态,都可以从Any State 状态迁出一条转换出来。但是,Any State 不能作为目标状态。
- Transition:状态过渡时发生的行为事件。在同一时刻,只能存在一个过渡。Atomic:原子性,当前动画过渡时过渡原子,不能被中断。Conditions:决定该动画过渡在何时被触发:包括参数、表达式
- 参数包括:Float 、Int、Bool、Trigger 。脚本中使用Animator类函数来赋值,包括SetTrigger、SetFloat、SetInteger、SetBool
- 混合树:对两个动画进行混合,比如根据移动速度对跑步和走路进行混合,或者左转弯和右转弯。创建方法:Animator Controller视图中右键空白区域;弹出的快捷菜单中选择Create State-From New Blend Tree; 双击混合树,进入混合树视图
- 动画过渡和动画混合的区别:由一个状态转向另外一个状态时的平滑过渡;通过插值技术实现对几个动画片段的混合;threshold=临界点
- 1D混合:通过唯一参数来控制子动画的混合。Blend Node上方图形表示了混合参数变化时每个子动画的影响。
- 2D混合:两个参数来控制,分为简单定向模式、自由定向模式、自由笛卡尔模式;
- 简单定向:适用于所有动画都有一定的运动方向、其中任何两段动画的运动方向都不相同的情形
- 自由定向:所有运动都有一定运动方向、但在一个方向上可以同时存在多段动画,比如向前走和向前跑
- 自由笛卡尔模式: 适用于动画不具有确定的运动方向的情形,比如前走后右转,前跑后右转
- 直接模式:直接让用户控制节点权重,适用于面部形状和随机Idle的动画混合。
推荐阅读
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- Unity和Android通信系列文章2——扩展UnityPlayerActivity
- 2018-04-16动画练习作业
- unity探究UGUI的Image中sprite和overrideSprite的区别
- 好看的动画都有一只有趣的动物,CoCo也不例外
- vue|vue canvas 手绘进度条动画
- unity|unity 在iOS平台跳转appstore
- 轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
- Java中的反射
- k8s|k8s(六)(配置管理与集群安全机制)