Unity2D中逐帧动画的制作

Unity2D中图片序列帧动画的制作

0.前言

由于我们正在开发一个2D游戏,动画是非常容易的。我们制作动画的步骤分为两步:导入图片与创建动画。

1.导入图片

这里以植物大战僵尸里寒冰射手的图片为例。
寒冰射手
注意:右击图像,选择另存为。并将其保存在项目的Assets/Sprites文件夹。

导入设置
在这里插入图片描述
点击Sprite Editor,然后使用以下设置对其进行切片:
在这里插入图片描述
在这里插入图片描述
将其中的type改为size,并将下面的size改为32,32。(由于我不会截图只能口述了)

2.制作动画

创造动画
首先将动画分为两类:idle动画和开火动画。
先将前两个切片拖入到场景中然后创建空闲动画:
在这里插入图片描述
命名为idle.anim并将其保存在一个新FiringplantAnimation文件夹中

射击动画的操作方式也是一样的:
在这里插入图片描述
注意:他们仍然是两个不同的对象,我们需要将它处理成一个。
清理对象
让我们在层级面板上删除firingplant_2,然后去项目区删除firingplant_2动画控制器,删完以后的样子:
在这里插入图片描述
在这里插入图片描述
修改动画控制器
在Project区,双击firingplant_0动画控制器,打开动画控制器,可以在项目区看到当前状态机firingplant_0,然后将firing.anim动画也拖入到动画控制器:
在这里插入图片描述
(这是已经做好后的)
我们需要某种参数来帮助Unity确定何时进入射击状态。
我们将选择参数选项卡,然后在右边单击+,添加一个Trigger类型的参数给它起个名字IsFiring:
在这里插入图片描述
当IsFiring参数被触发,我们将切换到射击状态。让我们右键单击idle状态,选择Make Transition然后将白色箭头拖到firing状态,之后,点击白色箭头,我们将禁用Has Exit Time属性并设置条件IsFiring:
在这里插入图片描述
注意:禁用Has Exit Time,是因为转换不应该在一段时间之后自动发生

现在,再从firing到idle。这一次将开启Has Exit Time
因为我们希望动画状态机从firing到idle在下一秒自动执行。
再将设置Exit Time为1:
在这里插入图片描述
最后的状态机:
在这里插入图片描述
这样一个简单的逐帧动画就做好了。(无效果图原因看备注)

3.感悟与备注

目前本人在根据自己的兴趣学习制作名为《植物大战僵尸》游戏,此篇为学习中的感悟,故大部分与原篇相同,望多多包涵。链接放在最后。
逐帧制作动画由于unity动画控制器的存在简化了很多,困难的地方在于状态机的调整与改动来使得动画可以循环流畅播放而不是动画被卡住。所以在制作动画时要多注意状态机。
【Unity3D开发小游戏】《植物大战僵尸游戏》Unity开发教程

感谢各位的观看!

猜你喜欢

转载自blog.csdn.net/yifengyun2/article/details/113057645
今日推荐