本章节我们简单介绍一下Animation动画编辑窗口,请大家区别之前的Animation组件哦。首先,我们创建一个新的场景“SampleScene4.unity”,然后创建一个Plane和Cube,
给上图中的Cube添加一个木质材质最快的办法,就是将一张木质贴图直接拖拽到Cube上面即可。Unity会自动帮我们创建一个材质,如下所示
这个名称为“mu”的材质被保存到了“Assets/Materials”目录下,
我点击这个材质,查看它的Inspector检视面板
其实就是将纹理贴图“mu.png”拖拽到“Albedo”左边的方框内。
接下来,我们就给这个立方体添加一个旋转的动画。我们选中立方体,然后菜单栏“Window”->“Animation”->“Animation”打开Animation动画编辑窗口,如下:
在上述窗口中,我们发现了时间帧轴,说明这是一个制作动画的窗口。动画的本质就是一系列的关键帧组成。每一个关键帧中包含了游戏对象的移动,旋转和缩放三大变换信息。关键帧与关键帧之间的帧则是有系统按照一定方式(例如线性差值等)来补全的。
同样,在该窗口中,还提示我们需要创建一个动画片段文件,我们点击“Create”按钮。在弹出的保存窗口中输入文件名称,例如:CubeAnimation.anim,然后点击保存即可。我们暂且将其保存到“Assets”根目录下,如下所示
我们回到Animation窗口中,一定要保证Cube是被选中状态哦。
在整个窗口的右半部分就是时间帧轴,我们可以点击某一个帧数位置,将其做成关键帧。每一个关键帧都经过保存游戏对象(立方体)的一些变换(移动,旋转或缩放)。这里,我们简单做一个立方体旋转的动画。游戏对象的旋转是通过修改Transform的Rotation属性来实现的,这里我们让立方体在Y轴上进行一个旋转就行啦。那么,接下来,我们就需要在每个关键帧上面,设置立方体Transform的Rotation.Y轴的旋转数值来实现动画。我们点击“Add Property”来将立方体的Transform的Rotation添加进来,表示我们的动画是修改它的Rotation属性。
点击“+”添加按钮
点击“Cube:Rotation”展开,我们就能看到x,y,z三个轴向的数值啦,默认是0。同时,我们也发现在右半部分的时间帧轴上面出现了两个首尾关键帧,并且这两个关键帧对应的Rotation的x,y,z数值都是哦。接下来,我们在时间轴上面,点击中间的30帧位置,同时修改“Rotation.y”的数值为180,如下所示:
移动线的时候,一定要把鼠标放置到时间轴上面,才可以移动那条线。移动完毕后,还需要点击红色线框圈住的“Add keyframe”按钮,才能真正的添加“关键帧”。如下所示
这样,我们就在30帧的位置添加了一个关键帧,让立方体在Y轴旋转180度。
在Animcation动画编辑器窗口中,Samples是采样率,默认是60,表示1秒钟播放60帧。当然,这个数值可以修改,比如改成30帧。在Samples的右边是添加关键帧按钮,在右边是添加动画事件按钮“Add event”。动画事件允许在动画播放过程中的某一帧位置执行一个事件(一段代码)。我们在时间帧(上面的白线)移动到指定时间帧出,然后点击“Add event”,就会在该时间帧出现一个蓝色标识,点击这个蓝色标识,查看检视面板。在检视面板中有一个Funcation,就是需要执行的方法。我们需要给当前动画模型添加一个C#脚本,然后在其中添加一个方法。最后回到刚才的检视面板Funcation处选择刚刚的方法。这样,当动画播放到该帧的位置时候,就会调用刚刚的方法啦。
我们回到立方体的Inspector检视面板,发现它增加了“Animator”组件,并且该组件的Controller中默认生成了一个Cube的控制器,如下:
在我们的资源文件中,我们能也发现Unity自动帮我们创建的“Cube”动画控制器。
接下来,我们双击“Cube”的控制器文件,打开“Animator”动画状态机窗口,如下:
因为我们只做了一个动画片段,所以它就是默认的动画片段。接下来,我们运行项目,就会发现立方体就不停的来回旋转了。
之所以动画不停的播放,是因为动画片段的“Loop Time”选项是默认勾选的。我们点击动画片段文件,查看Inspector检视面板,就能看见该选项。关于动画编辑器Animation窗口我们就介绍这些。需要补充一点的就是,我们可以将多个属性添加到动画中,例如,可以同时旋转和缩放,而且还可以制作纹理贴图动画。总之,使用Unity动画编辑器做一些简单的动画,还是不错的。
本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id