Unity -- Animation(旧版动画组件)和Animator(新版动画器组件)

旧版animation动画器组件

如果想让一个游戏物体具有动画表现的话,我们需要给这个游戏物体挂载动画组件

和音频组件视频组件一样,如果想在游戏对象上播放动画效果的话我们需要挂载一个动画组件,然后再给这个动画组件传一个用来播放的动画片段(我们传的所有动画文件都是一个动画片段)

然后我们也可以给动画组件传多个动画片段来播放,使得我们的游戏对象可以具有多种动画表现

传多个动画片段的时候要传到Animations这个列表中,然后每个动画片段都会有一个索引(索引从0开始排列)

Culling Type:剔除方式

如果我们选择总是动画化的话,则动画播放后会一直执行下去

如果我们选择 base on renders 的话则动画会基于渲染来播放动画的话,也就是说只有被渲染的游戏物体会被播放动画,如果游戏物体没有被渲染的话,则动画不被播放

(那么如何判断有没有被渲染呢? --- 很简单被摄像机拍摄到的游戏物体会被渲染,没被摄像机拍摄到的物体就不会被渲染)


除了从外界导入已经制作完成的动画片段之外,我们还可以在Unity中自己制作动画:

1.点击窗口,选择Animation,然后再选择新列表中的Animation,然后我们就可以得到下面这个动画制作面板了:

 我们可以把这个制作面板拖到游戏画面处形成另一个窗口

这个的意思是让我们创建一个动画片段文件来存储我们在动画制作窗口中创建的动画 ,创建好动画文件之后,我们在动画制作器的框中选择添加属性(我们要制作的动画就是通过修改属性参数值然后让游戏物体运动,以此获得动画片段)

 

这个面板处则是动画的播放帧数,在这里默认为1s60帧,我们可以通过拖动右边的结尾帧来调整帧数(左边的是起始帧,是固定的) 

此处我们可以制作一个简单的移动动画:

首先起始帧时游戏物体的坐标是(0,0,0),结尾帧时游戏物体的坐标是(10,0,0)--这就是一个位置变化了,然后动画制作器会自动帮我们生成从(0,0,0)到(10,0,0)的动作变化了 --- 注意这里只模拟起点和终点连线上的简单动画

 然后我们也可以在起始帧和结尾帧之间添加关键帧 -- 拖动线条到我们要添加关键帧的位置然后选择下面三个的中间那个,就可以添加关键帧了(关键帧是过渡帧,这方面的知识等以后再说吧,现在可以简单理解为我们在这里设置了一个过渡减缓帧)

 

 重点:如何通过代码的方式来播放动画呢?

1.创建一个脚本,挂载到有动画播放器组件的游戏物体上

2.创建一个动画播放器变量来承接动画播放器组件

3.通过动画播放器变量调用play()方法,此时就会播放动画了

当然,也可以直接通过获取的组件去调用play方法

 如果不给play方法传参数的话,则动画播放器会播放默认动画片段,如果传参数的话,则要传我们要播放的动画片段文件的文件名(字符串形式,且该片段已经添加到组件中)


新版Animator动画器组件

 从上到下分别是:控制器,化身,应用根运动,更新模式(Normal是法线),剔除模式(括号里是总是动画化)

1.使用上面这个的时候首先需要我们创建一个动画器控制器(animator controller)文件(我们所有的动画和动画的播放都是在动画控制器中进行调整和控制的)

2.创建好后我们就可以把这个动画器控制器文件拖拽到animator组件中的controller处了

3.Unity会自动将所有的动画片段都放在动画器控制器中

 在动画器控制器中表示动画片段的就是这些方框(除去Entry,any state和end三个默认方框外的所有方框),这些方框又被称为动画状态

每个动画状态都包含了一个动画文件和动画相关的一些设置

当我们在一个动画状态处右键的时候,会出现这些选项

state:过渡,blendTree混合数,state machine状态机,sub - state machine子状态机

 

当我们的动画开始运行的时候,首先会从entry动画状态进入,然后执行与entry连接的第一个动画状态

 

这个连接是可以改变的,我们选中要播放的动画,然后点击鼠标右键,然后选择设置为图层默认状态后,线就会连接我们选择的动画状态上

然后!这个动画器控制器管理的动画播放也是可以通过脚本来控制的

前面的步骤上面那个animation组件一样,就不再赘述了

 但是使用代码控制切换的话是直接切换,是跳过动画器管理器的切换方式

但其实动画器管理器有自己的一套切换方式,这套切换方式称为过渡,后面再讲

猜你喜欢

转载自blog.csdn.net/qq_51947882/article/details/126530648
今日推荐