动画编辑(三)——转换

作者:追风剑情 发布于:2017-4-21 23:40 分类:Unity3d

示例一:使一个Cube先从(0,0,0)移动到(5,0,0),再从(5,0,0)移动到(5,5,0)

一、创建一个Cube

1111.png

二、创建Cube.controller、Cube1.anim、Cube2.anim

222222.png

三、编辑动画状态机(Cube.controller)

666666.png

创建状态转换

444444.png

55555.png

选中Animator窗口中的Cube2状态,把Cube2.anim拖到Motion属性中(这样就实现了状态与动画文件的绑定)。

四、编辑Cube1.anim与Cube2.anim动画

打开Animation窗口分别对Cube1.anim和Cube2.anim进行动画编辑。

五、运行测试

gaollg0.GIF

选中Transitions下某个过渡项后,下面会显示详细的参数设置

111111.png

Foot IK: 通常用于人形动画

Write Defaults: 每个动画都由许多动画曲线组成,两个动画之间的过渡,就是曲线插值。例如,动画A过渡到动画B,A中有一条动画曲线Z,但B中没有Z。勾选上此属性,动画B就使用动画A播放前的Z值作为默认值,过渡过程中正常插值。未勾选此属性,动画B会继承动画A播放后修改过的Z值,过渡过程中不对Z进行插值。

动画过渡参数
参数 描述
Has Exit Time true: 存在退出时间,false: 无退出时间(当前动画将一直播放,无法过渡到下一个动画)
Exit Time 退出时间。例如 0.9 表示当前动画播放到90%时开始过渡。如果是循环动画,例如 3.5 表示动画循环3.5次后开始过度。
Fixed Duration true: 采用固定过渡时间,即采用Transition Duration中设置的过渡时间(单位:秒)。
Transition Duration (s) 整个过渡过程需要的时间(单位:秒)
Transition Offset 当过渡到下一个动画时,从指定位置开始播放动画。例如 0.5 表示,当过渡到目标动画后,从动画的50%位置处开始播放动画。
Interruption Source 当过渡被中断时应如何处理,默认状态下过渡不能被中断。在过渡过程中被中断时,此刻的动画姿态将与目标动画混合。
Current State:
当Ordered Interruption=true时,可被优先级更高的过渡中断。
当Ordered Interruption=false时,可被任意优先级的过渡中断,如果在同一帧被多个过渡中断,则执行优先级高的过渡。
Next State:
例如,当A->B时,A->C或A->D都无法中断转换。但是,如果触发B->D,将立即开始A->D。
Current State Then Next State:
优先考虑能否从当前状态转到目标状态,如果不能,则再考虑能否从下一个状态转换到目标状态。
Next State Then Current State:
优先考虑能否从下一个状态转换到目标状态,如果不能,则再考虑能否从当前状态转换到目标状态。
Ordered Interruption 确定当前过渡是否可在不考虑优先级的情况下被其他过渡中断。
true: 过渡期间只能被优先级更高的过渡中断。
false: 过渡期间可被任意优先级的过渡中断。
同一帧被多个过渡中断时,执行优先级最高的那个过渡。

标签: Unity3d

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号