文章目录
前言
在游戏制作中有一种需求非常常见,那就是把两个或者多个动画组合在一起。比如我需要玩家持枪行走,但是我手里只有玩家持枪战力的动画,以及空手行走的动画,那么我就必须把这两个动画组合到一起使用。针对这种动画缝合的需求,在Unity中最方便的解决方案就是使用动画层级Animation Layer
以及替身蒙版Avatar Mask
。
如果你对Animator,还不了解的同学,记得先去看看Animator的基础知识:【unity游戏开发——Animator动画】
一、avatar mask使用介绍
1、创建动画遮罩文件avatar mask
2、动画遮罩文件配置
遮罩文件可以设置不受影响的区域,动画播的时候不收影响的区域就没效果。这个和模型文件的Animation页签下的选项效果一样,不过只影响这一层。
2.1 humanoid人形动画
如果我们当前使用了humanoid动画
,那么我们就配置上面这里的humanoid
人形。
我们可以点击这些身体部位,绿色表示会播放动画,红色表示不会播放。
点击周围可以一次性全选或一次性反选。
2.2 非humanoid人形动画
如果我们当前播放的不是humanoid动画,则可以展开下面的transforms来选择哪些骨骼节点受影响,哪些骨骼节点不受影响。
我们可以在这里拖入这些骨骼所对应的avatar,然后点击这里获得它的骨骼结构
二、实战
1、前往mixamo下载行走和持枪动画
如果你还不懂如何使用mixamo,可以参考:【游戏资源】获取免费开源的人物模型,为obj fbx人物模型绑定人形骨骼和人形动画,并导入到unity中使用——mixamo的使用介绍
2、配置动画遮罩文件
这里我们是人形动画,且要播放的是手部动画,所以选择只保留这里的胳膊和手以及这两个IK。
3、Animator默认层配置
我们默认切换到行走动画就行了
4、新增动画层级Arms
5、修改Arms层级参数配置
权重设置为1,这里遮罩设置为我们前面创建的替身蒙皮,混合模式为覆盖模式。
6、Arms层创建一个空状态,并设置为默认状态
7、Arms层拖入持枪动画,并添加动画状态切换连线
当isRifle=true
时切换到持枪动画,当isRifle=false
时切换到默认空状态
8、运行效果
可以看到当Rifle=true
时,双手变成了持枪行走动画。
专栏推荐
完结
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!