Unity3D--Mecanim动画系统之动画分层(Layers)

Unity3D--Mecanim动画系统之动画分层(Layers)

为什么动画中会有层的概念

就目前来说:使用状态机的单一层动画就已经可以满足日常开发需要。那么为什么出现层的概念呢?
先来几张图,对比一下,你就会发现哪里好。
其实我们已经可以发现这种好处了,类似项目管理
第一:分离动画组
第二:规范动画制作
第三:提供更丰富的动画制作
Ps:其实跟我们的动画融合树差不多。。。

如何使用层动画?

  1. 添加动画层
    添加层

注意:同一时刻我们只能执行一个层的动画片段。

  1. 添加参数

注意:参数是执行动画的触发条件

  1. 给第二层的触发线绑定参数

    绑定的过程中,其实我们会发现New State就代指第一层动画组,而参数帮助我们过渡了层。当然动画是显示不出来的,但是动画片段确实执行了。
  2. 新建一个 AvatarMask,新层的 Mask 的位置,设置上这个 AvatarMask;

注意点

在动画层之间切换的过程中,其实主要是通过参数的满足与否来进行层动画执行操作,但是有一个前提就是层的权重,如下图:
权重问题决定动画能不能显示出来
如果不设置权重,你会发现即便分好层,而且在状态机中发现动画执行了,但是界面的角色并没有显示出来。
前面的分享已经提到过使用代码控制动画的参数,这里如何通过代码设置权重呢?

    [SerializeField]
    private Animator ani;
    void Start () {
        // 表示设置动画第二层的权重为1
        ani.SetLayerWeight(1, 1);
    }

为了让融合之后的动作互不干扰,上方播放挥手动作,下身播放行走动作。还必须对新建立的Avatar Mask文件进行设置,如下图。

参考链接

  1. https://www.jianshu.com/p/77ee1f00b538
  2. https://blog.csdn.net/qq_34078945/article/details/62238288
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天富儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值