当前位置:首页|资讯

在Unity中使用Spine动画

作者:打工人小棋发布时间:2024-09-23

一、序列帧动画和Spine

在2d游戏中制作动画并不复杂,一种简单的办法是使用序列帧动画,将动作的每一个画面做成一张单独的图片,再以较高的速度逐一显示这些图片,人眼的视觉残留就能让我们“误以为”是连贯的动作。

(下面这张图片,小怪的嘴巴有轻微的变化,连贯播放后就会显示出小怪的idle动画。)


但是这种动画表达方式有一个致命的缺点,就是会导致资源量暴增。试想上面这个小怪,如果要再做一个攻击动画,是不是就需要再出N张图片呢?

我们想象一下,攻击动画和闲置(idle)动画复用的地方是不是非常多,比如头发是不用变的,身体可能也不用变,只需要手部进行移动即可。有没有可能将这些身体的部件拆分开来,只对需要变化的部件进行移动或者旋转呢?答案是肯定的。而Spine就是这样的一款工具,能够帮助我们完成可复用2d动画的编辑工具。


在这篇文章中,我将分享在Unity中使用Spine工具的流程,以及其中的一些坑点,最后附上一些较好的参考资料,方便同学们课后自学。


如何喜欢我的话可以点点关注:b站:打工人小棋

公众号:打工人小棋

知识星球:小棋游戏开发

二、Spine是什么

Spine 是一款针对游戏开发的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。


优势

在 Spine 中通过将图片绑定到骨骼上,然后再控制骨骼实现动画。 2D 骨骼动画相对于传统的逐帧动画有以下优势:

  • 最小的体积: 传统的动画需要提供每一帧图片。而 Spine 动画只保存骨骼的动画数据,它所占用的空间非常小,并能为你的游戏提供独一无二的动画。

  • 美术需求: Spine 动画需要的美术资源更少,能为您节省出更多的人力物力更好的投入到游戏开发中去。

  • 流畅性: Spine 动画使用差值算法计算中间帧,这能让你的动画总是保持流畅的效果。

  • 装备附件: 图片绑定在骨骼上来实现动画。如果你需要可以方便的更换角色的装备满足不同的需求。甚至改变角色的样貌来达到动画重用的效果。

  • 混合: 动画之间可以进行混合。比如一个角色可以开枪射击,同时也可以走、跑、跳或者游泳。

  • 程序动画: 可以通过代码控制骨骼,比如可以实现跟随鼠标的射击,注视敌人,或者上坡时的身体前倾等效果。

三、Spine的下载

在spine官网可以看到工具的定价,可以看到,价格不菲。https://zh.esotericsoftware.com/spine-purchase


1. 试用版

如果是非美术人员,只是想要看下别人提供的资源,并不需要编辑,可以尝试使用试用版。

https://zh.esotericsoftware.com/spine-download

最大的好处就是免费,但是阉割了很多功能。

2. 付费版

https://zh.esotericsoftware.com/spine-purchase

单纯的基础版69美元,换算成人民币要四五百块钱,很多同学可能都是消费不起的。

我也是在网上研究了一番,帮大家找了个绿色免费版的。这里贴一个网盘链接,可以直接下载使用。

https://pan.quark.cn/s/fd9f0158c497

(声明:转自CG资源网,如有侵权,请联系删除。)

  • 优点:可以使用编辑、导出等功能

  • 缺点:别人的资源如果是用更高版本的Spine编辑的,在3.8.75这个低版本中是无法打开的。

四、Spine的使用

具体的功能使用,官网已经有非常详细的教程了。

https://zh.esotericsoftware.com/spine-academy

这里我主要讲下导出时针对Unity的一些设置。

点击左上角的导出按钮:

选择JSON:

勾选打包选项:

点击打包设置:

修改图集扩展名为:.atlas.txt(否则Unity会识别不了)

最后点击导出即可

将会输出三个文件,就表示导出成功了!


默认直接用JSON导出即可,如果用Binary,也需要修改后缀:

五、安装Spine Unity插件

在官网下载Spine-Unity插件:https://zh.esotericsoftware.com/spine-unity-download

前面是最新版本的:

往下滑动可以看到历史版本:

如果你使用的是我提供的绿色版本,就需要下载 spine-unity 3.7 版本



将下载完的 unitypackage 拖拽到自己的unity工程中


全选后导入进来即可:


六、在Unity中播放Spine动画

将导出后的Spine文件拖拽到项目中

Unity会自动处理这些资源文件,并生成一些额外的文件,最终效果:

接下去我们要在Unity中使用这些文件来播放动画,

首先,创建一个 SkeletonAnimation

点击这个 SkeletonAnimation 文件,在右边的 Inspector 窗口中找到 SkeletonData Asset ,将刚刚导入的Spine文件中的 Gun01_SkeletonData 拖拽过去:

在Scene视图中已经可以看到 Gun01这个物体的资源显示出来了。

选择其中一个动画,比如 Shoot

可以把下面的Loop选项也勾选上,表示循环播放,然后点击运行游戏,就可以看到Spine动画成功播放出来了。

七、代码使用Spine动画

主要涉及代码如何调用Spine接口进行播放等等,之后有空再来完善吧。


八、参考文档:

spine-unity安装:https://zh.esotericsoftware.com/spine-unity-download#%E5%9C%A8%E7%8E%B0%E6%9C%89%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%9B%B4%E6%96%B0


spine unity运行时官方文档:https://zh.esotericsoftware.com/spine-unity


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1