Unity 2D Animation 帧动画的使用方法

2022年4月24日 12190点热度 12人点赞 0条评论

前言

游戏中精灵在执行移动、跳跃、攻击等动作的时候,都需要播放一些动画使得精灵更像是一个活物。unity为开发者提供了Animation、Animator、AnimationControler三个组件用于实现动画,这篇博文会记录一些简单的使用方法。

处理动画素材

这里首先需要找个地方白嫖一个素材,比如:

img

这是一个小萝莉奔跑的帧动画,每个动画4帧,然后4个动画分别对应4个奔跑方向。

img

将素材导入到项目中后,在inspector window中可以看到素材的一些信息,这里需要先将素材中的每一帧切割出来。

切割素材之前需要对素材做一些设置:

  1. Sprite Mode 设置为multiple ,默认情况下这个属性是Single,
  2. Pixels per unit 设置为96,这是切片素材的像素基本单位大小,因为这里导入的切片素材是96 x 96的,故而这样设置。

然后点击Sprite Editor 按钮,之后就会看到Sprite Editor Window。

img

再点击顶部的Slice按钮,type 选择为 Grid By Count,输入4 x 4的长宽,点击下方的Slice按钮,最后再点击Apply就生成切片素材了。

注意
  1. 素材的Sprite Mode 一定要选择Multiple ,否则在Sprite Editor中会发现Slice按钮无法点击。
  2. Slice type有三种,分别是
    1. Automatic 根据素材的透明区域自动为素材切片
    2. Grid By Cell Size 输入切片的大小,根据大小自动切片
    3. Grid By Cell Count 输入整个素材中横向和纵向分别有多少个切片
  3. Slice Type 的2、3中类型都要求素材中的切片必须横纵对齐才能正确的切割

创建一个Animation

在Hierarchy window中新建一个sprite,然后选择动画帧,把动画帧拖动到精灵上。

img

这个时候会自动生成三个对象,分别是 animator、animator controler 、animation。

  1. animator 是一个component ,要给精灵添加动画,这个组件是必须的。
  2. animator controler 负责动画在什么时候播放,播放哪一个动画。
  3. animation 动画。

其中animator controler 和animation 会直接出现在资源文件夹里,双击打开就可以进行编辑。

img

双击animation文件,可以打开animation window (如果没有打开则到window 菜单中打开),这个时候需要在hierarchy window中选中精灵,这一步很重要,如果不选中精灵,animation window中播放按钮会是灰色。最后点击播放按钮就可以在Game window中预览动画了。

这是一个快速创建动画的方法,动画相关对象都是unity自动创建的。

当然也可以手动去创建这三种对象,创建完成之后需要将 animator controler 关联到animator组件中,再将animation 关联到animator controler中。

编辑动画

要在Animation window中编辑帧动画有两个需要注意的地方

  1. 想要编辑或者预览动画都必须在animation window 中,且必须要选中一个精灵。
  2. 选中精灵之后Animation window中编辑的动画会自动跳转到这个精灵的Animation Controller绑定的动画,需要手动切换到要编辑的动画。
  3. inperctor 中的预览窗口似乎在2d动画中没法使用。

双击 Animation文件可以调出Animation Editor

image-20220422105441187

添加帧、删除帧、调整帧的位置
  1. 添加帧,将资源文件中的帧图片拖拽到帧窗口即可(这个时候Hierachy窗口必须选中精灵才可以进行此操作)
  2. 删除帧,在帧图片上右键,弹出add何delete 菜单,选择delete即可。
  3. 调整帧位置,在帧窗口中拖拽调整。
调整动画速度

samples属性,为动画播放时,每秒钟的帧率,帧率越高,动画的播放速度越快。图片上帧窗口的横轴显示的是时间,可以在页面布局菜单中调整显示为帧率。

如果窗口上没有显示samples属性,那么也可以在页面布局菜单中调整显示,并且提供了默认的帧率可供选择。

预览动画

这个操作也需要在Hierachy窗口选中精灵,然后点击Animation Editor window上的播放按钮即可。

animation_test

添加动画属性

编辑动画时,还可以为动画添加属性,这些属性可以设置到每一帧,也就是说可以通过改变这些数据的参数来实现动画。

举一个简单的例子,通过改变帧图片的缩放比例来实现一个动画。

animation_test_property

不仅是图片的缩放比例,可以脚本中的公开属性也可以作为动画的参数,并且sprite renderer中也提供了一些可用的属性,比如color、size等。

小结

以上记录了关于生成帧动画的一些方法,其中有一些没有搞明白的地方:

  1. 再编辑动画时,必须将动画放入sprite 绑定的Animation Controller中,(即在编辑时选中精灵,选中之后能编辑的仅为该精灵绑定了的动画,将动画文件直接拖拽到Hierarchy窗口中的精灵上回自动绑定)我不是很理解。预览时需要这样的操作时合理的,但是编辑时我认为只是对Animation文件进行编辑,不需要对精灵有什么依赖,也有可能我没有理解对。

大脸猫

这个人虽然很勤快,但什么也没有留下!

文章评论