当前位置: 移动技术网 > IT编程>开发语言>Java > Unity动画状态机融合树与配置Avator

Unity动画状态机融合树与配置Avator

2020年07月28日  | 移动技术网IT编程  | 我要评论

首先准备好一个动画状态机,在这里面我提前放入了run、shoot、death三个动画,分别演示下效果,方便后面融合后区分:

一、动画融合树

我们右键动画状态机中的空白位置,选择Create State->From New Blend Tree

 

创建出来后点击进去融合树:

 

然后他默认给我们生成一个参数,然后我们看到右边的属性中融合树的几种融合模式:

1D:一维度融合 最多在两个动画之间的最大最小值中进行融合

2D:二维融合  根据两个参数在多个之间融合

Direct:直接通过控制权重进行融合

下面分别进行演示

(1) 1D融合:

首先加入3个mation

thrshol简单来说就是用于控制权重,最上面的动画与最下面的动画就是权重的范围,每个动画当前的thrshol就是所在值的位置,比如上图就是均匀分布,如果我改变其中一个值:

那么动画最大值范围就会发生改变。数值图中每个三角形相交的部分动画就会自动进行动画融合,比如我现在设置shoot和run之间作为当前动画效果:

可以看到一边在死亡一边在奔跑,这样就融合好了动画

(2) 2D融合:

在1D中直接通过改变权重即可,但在2D中我们需要通过参数的进行改变,

2D中每个动画就是蓝色的小点,红点就是当前动画的融合状态,越靠近蓝点则这个蓝点的融合占比越大,但上面的图中可以看到无论怎么移动都只能朝斜线方向,因为这都是由参数决定,可以看到在左边的树中根节点的Blend参数的值也在不停变化,所以接下来为了可以让红点任意移动我们还需要设置一个float类型的参数

然后改变右边的参数选项

这个时候你就可以在任意个动画中进行混合。

二、配置 Avator

在人形动画中,Unity支持动画重定向,也就是说一套动画可以给多套模型使用,但在将动画重定向到其他模型后,可能由于模型样式的不同会出现动作畸变或者怪异的情况,为了限制或者改变人物骨骼的移动,我们就需要进入Avator进行骨骼的调节:

然后进入配置界面

可以看到这里有身体、头部等等可以进行配置,哪里可以调节哪里有骨骼都是由美术决定的,下面每一个关联了骨骼的决定了每个节点的位置

我们配置Avator主要是为了限制动作,接下来点开Muscles:

这里可以配置人形每个部分的操作幅度,比如我们点开body:

通过拉动左边的节点运行当前可运动范围,通过右边白色的长条来限制当前的范围,配置好后保存就可以了。

本文地址:https://blog.csdn.net/qq_37872192/article/details/107623195

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网