Contents

动画分层和遮罩

动画分层的作用

  • 两套不同层动作的切换
  • 结合动画遮罩让两个动画叠加在一起播放
  • 提升动画多样性,节约资源
  • 利用动画分层我们可以做到
    1. 上下半身播放两个动画进行组合,比如上半身扔炸弹,下半身待机移动蹲下
    2. 快速制作正常状态和受伤状态的动作切换

如何使用动画分层

  1. 新建一个动画层
  2. 设置动画层参数
  3. 在该层中设置状态机(注意:结合遮罩使用时默认状态一般为Null状态)
  4. 根据需求创建动画遮罩

代码设置动画层

animator = this.GetComponent<Animator>();
animator.SetLayerWeight(animator.GetLayerIndex("MyLayer2"), 1);

动画层参数设置

/usr/uploads/2024/07/image-20240701132323264.png

  • Weight

    权重

    当动画同时播放时,如果选择的是叠加方式,会根据权重决定叠加的比例

  • Mask

    动画遮罩

    该层动画全部都会受到该遮罩的影响

  • Blending

    混合方式

    • Override:覆盖方式,播放该层动画时忽略其他层的信息
    • Additive:叠加方式,回合其他层动画叠加播放
  • Sync

    是否同步其他层

    主要用于直接从另一个层复制状态过来,在该层中进行修改

    适用于比如正常状态下有待机走路跑步等等动作,但是受伤状态下动作会改变,可以利用同步层方便我们进行编辑

    选择后会多一个SourceLayer表示你要复制哪一层的状态

  • Timing

    当选中Sync同步其他层时,该参数激活选中,会采用折中方案调整同步层上的动画时长(基于权重计算)

    不选中动画时长会使用原始层作为模板

  • IK Pass

    反向动力学