Unity - Animator Avatar Mask

孤街浪徒 提交于 2019-12-06 21:29:16

Unity - Animator Avatar Mask


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

创建Avatar Mask

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

创建好后在Animator的Layers中设置。注意,也可以在运行时创建和设置Avatar Mask,参考:
AnimationLayerMixerPlayable.SetLayerMaskFromAvatarMask
这里写图片描述

比如我们按上图设置BaseLayer中的AvatarMask,该层的任何动画只会改变两个胳膊的位置:
这里写图片描述

另一个Layer

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!