心血来潮要在圣诞节来个圣诞福利,其实也是因为最近积累了很多新动画系统的问题,别很多特效同胞们反复再问,手都快打字打出茧,干脆合并在一起在这统一回复一下,在这之前先说下在14期的时候其实是讲过很多关于动画系统的内容得,但是碰的巧开课不久就出了新版本的动画系统,并且势不可挡的要掀翻老版的animation模式,逐步完全替代他,所以现在也在这里补充说明下,弥补下之前14期的遗憾哈

Animator和Animation到底是什么

那4.3版本以后很多人会发现当你创建动画的时候会直接生成一个相同文件名的animator,然后大家都迷茫了,那么我们来科普一下,xxxx.animator到底是神马。

Animator的全称其实是AnimatorCentroller,意思就是动画控制器,顾名思义他的通途是用来控制你的动画文件的,而他大部分功能主要是用于设置角色上的行为,而特效用到的比分主要是当你给同一组文件的制作了多组动画时,他的作用会更为明确,通过里面的指令来调用动画文件animation,通俗易懂点说就相当于几个动画文件的小组长。所以当你创建动画文件时,必然会生成一个相对应的animator,无论是否需要需要控制你的animation,不要在去想说我就一个动画,能不能把animator去掉这件事了。

再说起每次再给你个没有挂载动画文件的物件上拖动画,那必然生成一个新的animator,那如果你不小心移除了,再次拖过去又会生成一个新的animator文件,所以当你想要用之前的animator文件或是多个物件都想复用同一个动画的时候,我们可以这么做在物件下点击添加组件,直接搜出你想要的组件名


那有人问,如果我的动画文件k的是好的,但是播放的时候就是有问题,播不出来怎么办,如果你实在是找不到原因的话,可以移除原来的animator,重新拖animation给物体,创建一个新的animator试试。
Animation依然还是用来装载动画的参数,我们k动画过程中的旋转位移等各种参数都是存储在动画文件里的,那么在这里有一点是需要注意的,那就是4.3以后的版本,独立的animation是无法k材质动画的,需要挂载在animator下才可以,具体在后面得问题里讲

当我们打开动作面板,(这里的add curve在u3d5中已经是add Property了 转载加)

大部分人刚用新版的动画系统时都会跑来问哪些参数都不见了怎么调啊····我真心想问,上面明明有按钮您就算不认识也点了试试啊,打字问问题的时间够你点个十来遍的吧,好吧我又吐槽了,保持正能量继续说

首先说说面板的切换,4.3以后animation的面板做了些小小的改动,他隐藏了所有可调整的参数,只有需要编辑的参数才会显示出来,变的更加直观并且方便了,并且添加了关键帧面板个曲线面板的切换,所以找不到曲线的同学们可以看上图的下方两个红框,切换就点这两个按钮好啦

接下来我带大家找找藏起来的参数

点击会直接弹出创建动画的窗口,当然你点编辑动画的地方也会弹,同志们可以任性一点试试,如果你创建好动画的话,则会出现可编辑属性

点击小三角你可以在里面找到你想编辑的属性,不要问说为啥我点出来跟你的长得不一样····因为编辑的东西不一样,所以可编辑的属性也会有些不同啊亲们~~

···········································································我是比较老实的办法的分割线···········································································

那我做为一个懒人,老是这么找啊找的肯定的觉得麻烦的,所以我也找到了稍微省事点得方法

首先,在时间轴上选好你的帧,这时候你会看到左边的小红点的图标红了,如下图

这时候就代表他会记录你对物件的编辑的数值
比想做位移就拖动你的物件,想k透明就直接在颜色属性里调就好了,这时候他会直接生成两个关键帧

你会看见它在首帧和你选的地方各生成一个关键帧,首帧的那个关键帧是你物件原本的参数,就是在你调之前的,而你选的那里的关键帧则是调整之后的参数,包括后面得常常被问到的uv动画也是可以这么做的

找到你的动画文件,动画都是默认勾上循环的,所以想要不循环就勾掉looptime

l如何调整动画的速度

这是帧率,即每秒的帧数,我们可以通过调整里面的帧数来调整动画的速度,只是需要注意的是,你动画的总帧数是不变的,你调整帧率后自然会改变你动画的长度,这样讲有点乱,我们来举例:

unity的动画系统默认新创建的动画是60帧每秒,那么如果我把帧数改成30,会发生什么情况呢,你们不妨自己试试,你会发现速度变慢了,一秒的动画变成了两秒,那么那么反过来,改成120帧,动画长度就变成0.5秒。

这是怎么算得呢,你改变帧率的同时,你动画的总帧数是不变的,那原来60帧的动画,帧率是30,自然就变成了两秒,当帧率为120时,也就变成了0.5秒了。

l 材质动画为什么不显示

材质动画为什么不显示的原因有很多,那排除掉自己误操作等等,主要的可能性有两个

首先你要确认你的材质是否能够做材质动画,在属性栏里面调调看,能否调整uv,能不能调颜色透明等等。比如说mobile下的材质因为不支持顶点色,也是不能k的。

接下来说,4.3以上的animation里材质动画是无效的我在前面讲过,在这里再单独拖出来讲,所以必须在有动画控制器animator的前提下创建动画,那我们直接导入unity的FBX模型是会自带一个动画文件animation,这时候就需要你remove掉你的animation,然后在CTRL+6创建动画就会自动生成一个animator。


l 多个动画按顺序播放怎么玩

有时候为了文件能够复用,我们会把一段很长的动画拆成多个动画文件,方便反复组合使用,那怎样去调整他的顺序呢,首先你要把动画文件都拖给同一个animator文件,如果找不到这个面板的可以找到属性栏里的控件,双击他


接下来,我们可以看到如下图:

为了方便大家看明白,我按顺序做了命名,橙色的是第一个拖进去生成animator的动画文件,一般情况下我们点击播放的时候会默认播放他,在animation面板里默认编辑的也是他,后面我会讲在动画面板里如何切换同一个animator下挂载的多个动画,回到正题继续说
说起按顺序播放,我们肯定是从第一个顺序往后编辑,找到你要编辑的接口,点右键会出现Make Transition,

点他会在你鼠标上拉出一条小线然后选中下个播放的动画,依次每个做下来

这样简单粗暴应该不难看懂吧,回到动画里就能够按照现在的顺序播放了。

如果这时候你想编辑这些动画中得其中一个,直接打开你的动画面板在它的左上角第二排点开他就会展开挂载在当前animator上的所有动画,想改谁就选谁





不知不觉码了好长,暂时先到这里,这些就是我到现在为止使用新版动画系统的个人心得,忍不住还是要吐个槽,为神马都喜欢张嘴问呢,没事戳一戳点一点,很多参数就试出来了,任性一点嘛,没必要小心翼翼到怕点错了软件就会坏了还是怎样啊!学习的过程需要探索啊~~~~

unity 设置animation动画循环播放_动画


(下面是容易遇到的几个问题)

'Pressed' does not exist. UnityEngine.UI.Selectable:OnValidate() 这个warning可以忽略,目测和网上查了发现是修改animation引起的bug
AnimationEvent has no function name specified!  可能是不小心在animation时间轴上加了无名function引起的