Mecanim 动画系统(九)动画层与Mask

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010848412/article/details/79291449

在Unity中,动作层的主要作用是管理不同身体部位不同行为的复杂状态。

如,某个角色下半身可能是stand(站立)、walk(走路)、run(跑步)。上半身可能在shot(射击)、run(摆手)、cast(投掷)等。如果为每一种情况增加一种动画片段,需要比较大的资源,管理也不方便,动画层可以解决这个弊端。

建立Animator Controller 动画控制器 后,可以在对应界面的左上角管理动画层。

初始有一个Base Layer。如下图所示:

初始的层有两个参数,分别是Name(层的名称)和IK Pass(开启IK),层的索引id为0。

后续新增的层有额外的参数,如下图

Weight,权重,用于控制该层动画权重大小。默认的Base Layer 必须为1。其他层的数值在0到1之间。

Mask,是一种资源,我们可以在Assets管理界面,右键->Create->Avatar Mask 创建这个资源。主要作用是为骨架排除某个身体部位的影响。例如,如果想使用上半身正在投掷物品的动画,而让角色在走路或跑步。且新增这个层的动画是投掷动画的话,我们应该屏蔽下半身,这个层只播放下半身动画。

Blending,动画混合方式,有两种

Override,覆盖,当前层动画直接覆盖掉其他层动画。

Addtive,叠加,当前层动画叠加其他层动画。

Sync,勾选上后开启一些其他选项。

Timing,当前层和Souurce层同一个状态使用的动画时间长度不一致时,不勾选复制的层按Source层的时间播放(效果就是复制层动画可能会变快或变慢,Source层动画播放速度不变),勾选则Source层按复制层的时间播放(效果就是Source层动画可能会变快或变慢,复制层动画播放速度不变)。

Source Layer,指定当前层是哪个层的副本,设定后当前层的状态会和指定层完全一致或完全同步,但是我们可以修改某一个状态的动画。
该功能提供的效果就是两个状态一致的层可以做出一些不同的调整。

参考:

http://www.cnblogs.com/hammerc/p/4832637.html

http://docs.manew.com/Manual/23.html

猜你喜欢

转载自blog.csdn.net/u010848412/article/details/79291449