Unity - Animator Avatar Mask

Unity - Animator Avatar Mask


Avatar Mask允许你丢弃的一些动画数据,只允许某些部位的动画起作用。很经典的例子是一边播Run、Walk、Idle动画时一边挥手。

创建Avatar Mask

Unity - Animator Avatar Mask_第1张图片
像创建脚本、材质的步骤一样。Humanoid里点击设置遮罩的部位,红色为剔除。如果动画没有Humanoid,或者需要控制更多细节,需要使用下面的Transform。

创建好后在Animator的Layers中设置。注意,也可以在运行时创建和设置Avatar Mask,参考:
AnimationLayerMixerPlayable.SetLayerMaskFromAvatarMask
Unity - Animator Avatar Mask_第2张图片

比如我们按上图设置BaseLayer中的AvatarMask,该层的任何动画只会改变两个胳膊的位置:
Unity - Animator Avatar Mask_第3张图片

另一个Layer

所以要实现一边播Run、Walk、Idle动画时一边挥手,我们需要加另外一层Wave Layer,将挥手的动画移到这一层中。即Base Layer播放普通动画,Wave Layer播放遮罩后的挥手动画,然后两者按Layer的Weight混合。
Unity - Animator Avatar Mask_第4张图片
效果:
Unity - Animator Avatar Mask_第5张图片

你可能感兴趣的:(Unity,Script,Avatar,Mask,Animator)