Mecanim 动画曲线

在Mecanim中,我们可以设置一个参数值A,这个参数值随某个动画剪辑的播放时间变化而变化。

也就是说,我们建立一个函数:

这个函数的自变量类型为float,范围为0.0到1.0,其中0.0表示动画开始播放,1.0表示动画播放结束,

这个函数的因变量A也就是函数值 ,由我们通过在函数曲线,也就是动画曲线中进行编辑。

 

如何获得某个时刻的函数值?我们可以在Animator中添加一个同名的参数值A,然后在脚本中通过GetFloat的方式获取这参数A的值,这样我们就获取了函数值A

 

这样做,有何作用?

由于这个函数值是随动画的播放而变化的,所以我们在动画播放的某个时间给参数赋予特定值,从而在脚本中激活动画事件。

比如,在动画播放结束时,设置参数为1,其余时刻都为0.在脚本中检测这个参数值,当检测到这个参数值为1时,说明动画已经播放结束了,这时可以播放下一个动画,或者打印输出某些信息了。

再比如,在跳跃动画中,使参数为角色在垂直方向的速度,动画开始时向上,最大为正值,然后逐渐减小,动画播放到一半时,速度为0,动画播放完成时,速度为负值最小。

然后,我们在脚本中获取这个参数值,从而给角色设定相应的速度。

再再比如,跑步时,左脚着地或者右脚着地时,添加相应的key值,脚本中检测到相应的值后,播放脚步声

 

Note that at any given point in time, there might be multiple animation clips attempting to set the same parameter from the same controller. In that case, the curve values from the multiple animation clips are blended. If an animation has no curve for a particular parameter then the blending will be done with the default value for that parameter.

你可能感兴趣的:(Mecanim 动画曲线)