【Unity】动画系统简单介绍

http://blog.csdn.net/u014635337/article/details/46918953ide

Animator是unity新的动画系统,除了基本的播放动画功能以外,还提供了更强大的其它功能
函数

基本篇oop

1新建AnimatorController,将动做拖到AnimatorController,将动做作连线,新建状态值,设置连线经过条件的状态值动画

2代码使用SetInteger("变量名",值) SetFloat  SetBool等设置状态值,实现动做的切换,动做切换时有动做融合效果spa

3两个动做之间没有连线时,即便改变状态值,也没法切换动做.net

4当anystate与目标动做连线时,无视当前动做是否与目标动做连线,只要anystate与目标动做的条件成立,立击切换到目标动做orm

5两两动做互相连线与anystate与全部动做连线,播放的区别是,anystate切换到目标动做时,没有动做融合,动做之间连线切换有动做融合blog

6设置动做的帧事件,前提是要把有AnimatorController的预制拖到面板上,选中对像,ctrl+6打开动做面板,编辑好帧事件后选择回调函数,帧事件回调函数只能选择以AnimationEvent 为参数的函数,而且函数不能是公有且是重载的函函数教程

若是是循环动做,帧事件会每播一遍就会调用一次,若是不是循环动做,只会调用一次游戏

除此以外基础部分很少说,网上不少教程


下面是Animator的是一些其它使用方法,可能在新的动画系统中并不起眼,也不经常使用,但其实很是有用

Play("动做名")

Play(动做名hash值)

直接播放动做,不会作动做融合,即便有状态机的连线,彻底忽略状态机,有重载方法,能够指定层,也能够指定目标动做在原动做进行到什么时候开始


CrossFade("动做名",融合时间)

CrossFade(动做名hash值,融合时间)

动做融合,融合时间持续多久彻底过渡到目标动做,跟状态机无关,有重载方法,能够指定层,也能够指定目标动做在原动做进行到什么时候开始

指定层时-1与0层都是baselayer,但使用GetCurrentAnimatorStateInfo不能使用-1

方法不会将normalizedTime清零,全部调用此方法不能从新播放动做


speed

动做播放速度1为正常,0时动做中止在当前帧,能够用做暂停或加速减速动做


normalizedTime

动做的归一化时间的值,整数部分为播放的遍数,不管是不是循环动做这个值都会一直累加


进阶篇

layer层,

1高层能够覆盖低层的动做播放,

2blending属性设置是高层是覆盖仍是叠加低层

3经过weight设置混合比例

4此层使用的avatarmask


avatarmask

1能够新建avatarmask,选中要编辑模型的avatar,选择部分骨骼节点

2能够将上下半身的骨骼节点作成两个avatarmask,设置两个层使用不一样的avatarmask,每层播放不一样的动做,使上下半身播放不一样的动做.实现上下半身混合动做的效果

3注意当多个动做同时播放时,每一个动做都会触发各自的动做帧事


坑点

1只能取得当前的动做状态数据及下一个动做状态数据,代码可控性不强

2动做事件回调时没法判断是哪一层回调回来的,但其实不该该存在多个层在播同一个动做,出现这种状况必定是偷懒或出错了

3AnimatorStateInfo中的loop与动做文件的loop并不相同,只有在将动做文件拖到控制器和在控制器中SetAsDefault时,会将动做文件的loop值应用到AnimatorStateInfo中,很扯蛋的一件事,或是动做自己就在fbx中,在fbx中修改了loop值后应用也会生效


总结

1普通时能够直接使用play或CrossFade,简单不容易出错,使用状态机的好处是能够实现多段动画,经过状态机事先设置链接好,只改变一个值来触好一套多个动做

2甚至能够将SetInteger设置状态机值与play结合使用

好比当前是站立动做,状态值为1,***动做连线到站立动做,条件是动做播完而且状态值为1回到站立动做

这时代码调用CrossFade***动做,这时的播放效果就是站立动做过渡到***的动做,***动做播完后从新变成站立动做

固然这个效果能够直接使用状态机完成,但前提站立动做必须或***动做连线,否则跑没法切换到***动做,但当直接使用Play或CrossFade能够忽略站立是否与***动做连线


写在最后

若是是作动做类游戏或须要动做混合,使用Animator会更新方便,但若是只是简单的播放动画,建议仍是使用animation系统,可控性更强

相关文章
相关标签/搜索