unity动画机制研究

【unity动画机制研究】感觉课堂上讲的不够系统,翻了一下官方教程深入研究一下

  1. 节点表示状态,箭头表示状态过渡。状态机的意义在于得以以很少的代码对状态机进行设计和迭代。
  2. 动画状态机包括动画状态、动画过渡和动画事件;而复杂的状态机还可以包括简单的子状态机。
  3. 动画状态(animation states)是动画状态机的基本模块。包含一个动画序列(或者是混合树)。当游戏事件触发了一个动画切换的时候,游戏角色进入到一个新的动画状态中。其中,
  4. 黄色的状态是默认状态,是该状态机被首次激活所进入的状态。如果希望改变默认状态,可以在状态上右键选择Set as layer default state
  5. Any state 是一个始终存在的特殊状态:不管角色当前处于任何状态,只要它想进入下一个状态,都可以从Any State 状态迁出一条转换出来。但是,Any State 不能作为目标状态。
  6. Transition:状态过渡时发生的行为事件。在同一时刻,只能存在一个过渡。Atomic:原子性,当前动画过渡时过渡原子,不能被中断。Conditions:决定该动画过渡在何时被触发:包括参数、表达式
  7. 参数包括:Float 、Int、Bool、Trigger 。脚本中使用Animator类函数来赋值,包括SetTrigger、SetFloat、SetInteger、SetBool
  8. 混合树:对两个动画进行混合,比如根据移动速度对跑步和走路进行混合,或者左转弯和右转弯。创建方法:Animator Controller视图中右键空白区域;弹出的快捷菜单中选择Create State-From New Blend Tree; 双击混合树,进入混合树视图
  9. 动画过渡和动画混合的区别:由一个状态转向另外一个状态时的平滑过渡;通过插值技术实现对几个动画片段的混合;threshold=临界点
  10. 1D混合:通过唯一参数来控制子动画的混合。Blend Node上方图形表示了混合参数变化时每个子动画的影响。
  11. 2D混合:两个参数来控制,分为简单定向模式、自由定向模式、自由笛卡尔模式;
  12. 简单定向:适用于所有动画都有一定的运动方向、其中任何两段动画的运动方向都不相同的情形
  13. 自由定向:所有运动都有一定运动方向、但在一个方向上可以同时存在多段动画,比如向前走和向前跑
  14. 自由笛卡尔模式: 适用于动画不具有确定的运动方向的情形,比如前走后右转,前跑后右转
  15. 直接模式:直接让用户控制节点权重,适用于面部形状和随机Idle的动画混合。

    推荐阅读