Unity Avatar Mask动画混合技术解析

Unity关于动画,大致分为动画融合动画混合。具体使用到的东西大概就是BlendTree和Avatar Mask前者主要解决类似跑的时候转向这种问题,而后者是用来解决诸如边跑边招手,或者攻击的问题。


这里主要记录一下Avatar Mask的使用心得。

首先先创建Animator Controller,双击打开Animator Controller,添加你所需要的动画,在左侧layer层可以看到默认的是只有一个Base Layer的(layerIndex起始值为0,也就是0层),在这层添加诸如走路这些基础动画。

然后点击layers,点击如图加号,新建一个动画层级。

[Unity ]Avatar Mask 动画混合_右键

点开新建的Up Layer,在这层添加你想要混合的动画,比如招手,攻击动画。

好像写到这里还没写Avatar Mask

右键你的Assets文件夹,新建一个Avatar Mask,单击之后在inspector界面可以看到:

[Unity ]Avatar Mask 动画混合_ide_02

首先点开Humanoid,点击下面的模型的各个部位,绿色表示可以执行动画,红色表示不可以。

然后点开Transform,将美术导入的Avatar文件拖至Use skeleton from,然后点击Import skeleton,unity会自动将模型所有的骨骼给导入进来,在这里勾选我们需要参与动画混合的骨骼,比如我们需要招手,那就只勾选手部的骨骼,这里会自动勾选他的子节点。

[Unity ]Avatar Mask 动画混合_子节点_03

勾选好之后Ctrl S就好。

然后回到我们的Animator Controller,点击Up layer,也就是上半身动画层,点击那个设置按钮,将我们刚才编辑的Avatar Mask给拖进来。Weight权重设置为1,然后设置Blending为Additive。

设置好触发动画的条件,模型就能边走边招手,边走边打了。

[Unity ]Avatar Mask 动画混合_右键_04

有一点坑的地方:

Blending 方式的设置:Override,混合后的动画会覆盖之前的动画,比如原本正常的走路动画,在播放了招手动画之后,在正常走路不招手的时候,上半身(也就是在avatar mask里面勾选了的骨骼)就不会动了,是因为被覆盖了。

Additive,仅仅是在需要混合的时候,将混合的动画添加进来,原本的动画不会被彻底覆盖。



项目中遇到模型正常播放A动画,但是需要左(右)手握拳。

于是美术单独给了手的动作和骨骼:

[Unity ]Avatar Mask 动画混合_ide_05


然后在玩家的Animatorcontroller里面新建了两个层:

[Unity ]Avatar Mask 动画混合_权重_06

层具体设置如下:

[Unity ]Avatar Mask 动画混合_右键_07

此处mask为新建的左手和右手的avatar mask:

[Unity ]Avatar Mask 动画混合_ide_08

这里需要注意的是单独手部位的avatar mask的设置,以左手例,

[Unity ]Avatar Mask 动画混合_ide_09

humanoid处只勾选左手,transform这里选择玩家的完整骨骼信息,之后点击import skeleton,然后在里面只勾选上左手的骨骼,然后Ctrl S保存。

最后就是在Animatorcontroller里添加触发条件,握手动作的话添加了一个bool值,然后设置一下条件,需要握手的话将这个值设置为true就行,离开动作设置为false:

[Unity ]Avatar Mask 动画混合_权重_10


               


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空