Unity3D

Unity3D 动画Animator设置面板解析

页面
字体
小树 · 11月10日 · 2019年 ·

引言

如题,看图,阅读,简单明了

开局一张图

剩下全靠编

如图,假设是在做一个从跑到滑行的过渡。假设这个过渡是从A到B。

Has Exit Time:这个意思是A在什么时候过渡到B,即A在这个时刻发生过渡的动作,你可以把它理解为一个特殊的过渡条件,类似time=exit time一样,如果有设置过渡条件,那么就是同时满足这两个条件时才发生过渡,也就是如果在exit time之前已经满足了你的条件,那么在exit time这个时刻发生过渡;否则,只能等到动画重新播放一遍,再次到达exit time的时候,才会发生过渡。 这个时候可以使用Animator.GetCurrentAnimatorStateInfo(int layer).normalizedTime作为AC的一个float,设定时间判断条件不使用ExitTime,而是使用这个float,当它大于指定时间的时候触发。 如果你希望满足你的条件时候立马发生过渡,那么最好不要勾选这个选项。

最好一直必须使用ExitTime,UI面板里调节相互切换的起始时间才是有意义的。如果不使用ExitTime,你就算调了过度时间,只要一做别的操作,切回来还是会给你强制回到50%的状态。不管用不用ExitTime,过度时间的长短都可以手动指定。

Transition Offset:这个意思是A过渡到B时,B从哪里开始播放,比如你的Transition Offset为0.5,那么A过渡到B之后会从B的50%处开始播放,而不会从头开始播放。

其实Has Exit Time和Transition Offset结合使用才能达到效果,比如A是行走的动画,B是跑的动画,那么很可能出现这种情况,A在迈出左脚走的时候过渡到了B,B正好也是从左脚开始跑,那么就会出现鬼畜了,想象一下。正常应该是迈出左脚,右脚开始加速。那么你就可以控制A的exit time为左脚结束,B的Transition Offset为右脚开始,这样就完美了的过渡了。

Transition Duration:过渡的时间,这个就是字面的意思。从A动画完全到B需要多久,注意勾选了Fixed Duration,那么这个时间以秒为单位,否则的话以A的时间为基础。其实这个是用来做缓冲的,比如A为跳跃,B为站立,如果A没有落地的过程(也就是A的结尾是在空中),那么会出现播放完A到B,从空中瞬移到地面,如果设置了这个时间,那么就会有下落的过程。当然,一般情况下跳跃有上升也有下落,不会只有上升。

Interruption Source:这个其实可以理解为打断的优先级,如果大家用过any state就知道,如果满足any state到某个状态C的过渡条件,那么会立即过渡到C,此时正在播放的动画会被打断。这里就是说当前的动画可以被哪个状态打断,当然,any state的优先级永远最高,然后就是按照选项的优先级来。

Can transition to self : any state切换到任何状态机,都会有一个can transition to self选项,勾选此选项可以重置自身状态。

感谢阅读

转载必须注明来源: 小树技术博客 » Unity3D 动画Animator设置面板解析

0 条回应