Unity动画分层解析
发表于2018-02-28
动作可以是单独的一个,进行播放,也可以是融合得到的动画。这时我们就需要不止一个动画层,比如我可以有走的动作,也可以在走的同时播放挥手的动作。
层的索引值是从上往下递增的,base层索引为0。选中了Override可以使其优先权提高。 Additive是指把当前层中动画叠加到上一层中,weight属性是权重,0表示层关闭,逐渐加大的过程中,逐渐表现该层效果。
一、操作步骤如下:
- 首先在 Animator 面板的 Layers 中添加一个新的层,并重新命名;
- 在面板上创建一个空的状态,Entry 和该空状态之间建立过渡线,也就是说当动画开始播放的时候,该层播放的是一个空动画;
- 将 bow shoot 动画拖拽过来与空动画建立过渡线,并设置 Trigger 类型的过渡条件,并编写代码实现过渡条件的赋值;
- 将新的动作层的 weight(权重)设置为1。
- 新建一个 AvatarMask,新层的 Mask 的位置,设置上这个 AvatarMask;
二、操作如下图所示:

第二层的idle是一个空动画,然后与bow shoot连接,如下图。

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

来自:http://blog.csdn.net/qq_34078945/article/details/62238288