U3L14-2——Animator Controller动画控制器(状态机)

创建动画状态机

  1. 通过为场景中物体创建动画时自动创建
  2. 手动创建动画状态机文件

基础使用——初识动画状态机窗口

左侧面板

image

  • Layers:动画层级页签,为动画添加更多的层级,层级权重高的动画播放会覆盖层级权重低的
  • Parameters:参数页签,为动画状态机添加控制状态切换的参数
  • 眼睛图标:显隐左侧面板

右侧面板

image

  • 网格化布局区域: 主要用于编辑状态之前的切换关系

    • 1.窗口中的每一个矩形表示一个状态
    • 2.窗口中的每一个箭头表示一个切换条件
  • 矩形说明:

    • 默认三大矩形:

      • 绿色Entry矩形:进入状态机流程
      • 红色Exit矩形:退出状态机流程
      • Any State:任意状态,代表状态机中的任意状态
  • 人为添加矩形:

    • 橙色矩形:一开始的默认状态动画,和Entry相连
      表示一开始播放的动画
    • 灰色矩形:自己添加的某一种动作状态

基础使用——添加动画

  1. 自动添加——为对象创建动画后会自动将动画添加到状态机中
  2. 手动添加1——将动画文件拖入到状态机中 (注意:老动画拖入会有警告)
  3. 手动添加2——右键创建状态,再关联动画

基础使用——添加 切换连线

切换连线 就是 表示一个状态切换到另一个状态的方向

对 状态 右键并点击 Make Transition,并连接到 要连接的状态上,两个状态就会出现切换连线
删除切换连线只需要点击切换连线再按Delete即可

基础使用——添加 切换条件

  1. 在左侧面板点击参数页签
    可以在这里添加四种类型的切换条件

    image

  2. 左侧的值可以改变,也可以通过代码设置
    这里的值将用于切换连线的条件判断

    image

基础使用——设置动画间切换条件

  1. 添加切换条件后
    选择一条切换连线,将添加好的条件加入到其条件列表内
    在这里设置当该切换条件 满足什么条件时 就切换(根据切换条件类型选择)如果有多个切换条件,则都满足时才能切换

    image​​​

  2. float类型切换条件 可选 大于、小于 某个值
    int类型切换条件 可选 大于、小于、等于、不等于 某个值
    bool类型切换条件 可选 true、false
    trigger类型切换条件 较为特殊:当trigger激活(即选中了trigger),且其他条件满足时,就执行切换,
    切换后该trigger失活(即自动取消trigger的选中)

补充:关于动画切换的延时切换

有时修改状态机条件使一个动画切换到另一个动画时,会有延迟(先等前一个动画执行完毕)
如果不想要这种延时,在该切换对应的 切换连线中 关闭Has Exit Time即可

image

补充:关于Animation窗口内各状态和连线的参数

一般状态相关

连线相关

混合树和子状态机相关可以直接在3D动画相关内查找