https://mp.weixin.qq.com/s/TjoY5mSDNhB0RFzMMXwtCw   转 

后来我尝试改进一下,秉持了这个原则,能不用Trigger的地方就不用,改为CrossFace来控制。这样会减少连线,尤其是配合FSM来撸代码的时候,当进入某个状态的时候,就直接CrossFade到某个动画上面,这样即简单了连线有减少了Param的数量。

 

 

下面进入攻击连招的正题:

新建一个Animator,添加一个idle动画,作为默认动画,这个不是本次的重点

然后单独建立一个Sub-State Machine,这样可以将攻击有关的动画全部放在一起,看起来舒服点。

 

下面加入上面的三个动画并连线

 

 

每个攻击动画结束的时候都需要切到Idle上去,所以需要勾选上Has Exit Time,钩上之后就会在动画播放完成后自动退出状态切到Idle上去

而连招之间的过渡,则需要做一些配置

首先添加一个Trigger用来做攻击动画的条件 ,我这里取名ComboTrigger,然后取消勾选Has Exit Time,并将ComboTrigger作为条件

在看一下第三个动画,我希望让高举斧头的时候动画更慢一点,让整个动作更具有力量感和张力,下面介绍一下如何实现这样的效果

 

 

 

 在动画的FBX文件中添加一条曲线 并命名成animSpeed,并在动画属性中添加一条名字相同的float变量animSpeed,曲线在需要变慢的地方向下移,这样animSpeed的值就会跟着这一条曲线发生改变,最后在Animatoer中设置速度

 

 

这样就能够让动画速度随着曲线而改变,能够在没有动画师的条件下,改动动画速度了。