Unity动画篇:Mecanim动画系统重点整合(动画过渡和动画混合)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15020543/article/details/83303863

1.动画过渡

将两个动画拖入Animator里面,设置两个Tigger条件。

选择一个转换

属性说明

Property

Function

Has Exit Time

可以退出时间

 

退出时间是一个不依赖于参数的特殊转换。他把状态转化的时间依托在状态时段上,等状态结束才会切换状态

Settings

Fold-out menu containing detailed transition settings as below.

Exit Time

退出时间

如果已检查退出时间,则此值表示转换可以生效的确切时间。这在标准化时间中表示(例如,0.75的退出时间意味着在第一帧中,75%的动画已经播放,退出时间条件为true)。在下一帧中,条件为false。

对于循环动画,每个循环的退出时间小于1的转换都会对每个循环进行评估,所以您可以使用这个时间来在每个循环中适当地计时0。

具有大于1的退出时间的转换仅进行一次评估,因此它们可以在固定数量的循环之后用于特定时间退出。例如,一个退出时间为3.5的转换被求值一次,在三个半循环之后。

Fixed Duration

固定时间

 

如果选中了固定时间框,则转换时间以秒为单位进行解释。如果固定时间框未选中,则将转换时间解释为源状态的标准化时间的一小部分。

Transition Duration

过度时间

 

过渡期,在标准化时间内,相对于当前状态的持续时间。这在过渡图中可视为两个蓝色标记之间的部分。.

Transition Offset

过渡偏移

 

源状态转换到目标状态过程中的偏移时间。例如,值为0.5意味着目源状态开始以过载50%通过自己的时间线。

Interruption Source

中断源

 

使用此控件可以控制此转换可能中断的情况(请参阅下面的过渡中断)。

Ordered Interruption

命令中断

 

确定当前转换是否可以独立于其他转化中断(请参阅下面的过渡中断)

Conditions

条件

一个转换可以有一个条件,多个条件,或者根本没有条件。如果您的转换没有条件,那么Unity编辑器只考虑退出时间,当达到退出时间时,转换就会发生。如果您的转换具有一个或多个条件,则必须在触发转换之前满足所有条件。

 

条件包括:

 

-事件参数(条件中考虑的值)。

-条件谓词(如果需要,例如,浮点数的“小于”或“大于”)。

-参数值(如果需要)。

 

如果您已经为转换选择了退出时间,并且有一个或多个条件,请注意Unity编辑器会在退出时间之后考虑条件是否为真。这允许您确保您的转换发生在动画的特定部分。

 

在A阶段,gameObject.GetComponent<Animator>().GetCurrentAnimatorStateInfo(0)的值为idle2

在B阶段,gameObject.GetComponent<Animator>().GetCurrentAnimatorStateInfo(0)的值为walk

看到这里,有同学已经感觉到了,这种动画过渡在实际应用中某些时候可能造成不便。但大部分情况下,他还是游刃有余的。

2.动画混合(混合树)

圣典文档:http://www.ceeger.com/Manual/AnimationBlendTrees.html

一维和二维:https://www.cnblogs.com/SHOR/p/5764014.html

实际应用案例:https://blog.csdn.net/qq_15020543/article/details/83277904

双击进入Inspector面板,把两个动画添加进去

即可通过改变Blend的值来实现动画的混合

 

 

没有更多推荐了,返回首页