Blend Tree

Blend Tree是融合了的动画状态,一个Blend Tree就是一个AnimationController中的一个动画状态(Animation State),与普通的动画状态是一样的,只不过它的动画是融合的动画。

阈值(threshold):一个Blend Tree中融合了多个动画剪辑,每一个动画剪辑在其中占一定的权重,权重的和为1.我们可以使用动画参数来调节不同的动画剪辑在blend tree中所占的权重,从而形成多种多样的动画。使某个动画剪辑的权重为1的动画参数值叫做这个动画剪辑的阈值。

 

我们可以自动设置阈值,勾选Automate Thresholds即可,这样会自动计算阈值。

比如有三个动画剪辑的Blend Tree,三个剪辑分别为RunLeft,Run,RunRight,我们可以在Motion列表里手动设置它们的阈值为0,6,8,动画参数为direction,这是可以的,表示当direction分别为0,6,8时,三个剪辑的权重分别达到最大值。

当我们勾选Automate Thresholds时,RunLeft,RunRight的阈值不变,Run的阈值被更改为4,也就是0和8两个阈值的中间值。

再比如,如果有五个动画剪辑分布在-90到+90的范围内,那么他们的阈值会被分别设定为-90,-45,0,+45和+90。

当不勾选Automate Thresholds时,我们还可以选择Compute Thresholds。比如说我们选择Speed,动画剪辑的阈值会改变为各个动画剪辑的运动速度。而我们有个动画参数speed,我们在脚本中设置spee,使speed恰好为角色运动的速度,这样就恰好使我们的动画参数值与设定的阈值对应起来了。不过这种设置阈值的方法只适用于有位移的动画?

打个比方说:你有一个走动动画,他每秒移动1.5个单位,而一个慢跑动作每秒移动2.3个单位,而一个跑动动作每秒移动4个单位。选择下拉列表中的“速度”(Speed)选项可以基于这些值为三个动画配置参数范围。所以,如果你把参speed数设置为了3.0,就混合了慢跑和跑动动画,并且(临界值)稍微偏向慢跑一些。

 

你可能感兴趣的:(Blend Tree)