如何在Unity3D导入Spine动画
一、前言
《如何在Unity3D项目中导入Spine动画》,虽然在网上有很多这种文章,直接将问题交给DeepSeek也能得到具体的操作流程,但是照着他们提供的方法还是能遇到几个问题,比如:
- AI回答没有提到Unity无法识别.altas,要修改动画文件后缀部分;
- 导入到游戏场景中,动画总是被Canvas的背景图或元素挡住,层级低;
所以针对这几点问题和操作流程,再带上Spine的基本操作,我整理成文章,那么,下面先参照一下我的工具版本开始。
二、工具
- Unity3D 2020.3
- Spine 3.8.75
- spine-unity-3.8-2021-11-10
- 2D场景游戏
三、Spine操作
因为练习时,多数动画文件是直接下载的别人制作好的json导出文件(非工程)。所以如果要在游戏场景前看效果,可以先导进Spine工具中查看一下。
json导出文件目录
1 | fileName.altas // 图集描述文件 |
导入文件
1.导入数据>选择“JSON或二进制文件”>文件选“json”格式文件>导入
2.保存更改>浏览>自定义名称的“spine”格式文件
展示纹理
1.纹理解包器>图集文件选择“.atlas”格式文件>输出文件夹随便指定即可>解开
2.Hierarchy>图片>图片文件>路径,找到纹理解包后的输出文件夹
其他
通常一个json导出文件里可以包含很多个动画,可以看到预览右边的列表,每一个选项就是一个动画,选中可以预览,左边的工程窗的设置可以进入K帧窗。
更多的比如骨骼绑定,蒙皮刷权重,K帧,我后面再出一个单独的文章说明,下面就进入正题到Unity的导入了。
四、导入Unity3D
要在Unity3D导入前需要先下载Spine Unity运行库,可以网上找Spine官方下载页;第二个是前面提到的Unity不识别.atlas文件,将动画放到Unity项目的资源文件夹下需要将.atlas改成.txt后缀的文件。
Spine Unity运行库安装
在Unity中,点击菜单栏 Assets > Import Package > Custom Package,选择下载的.unitypackage
文件,导入全部内容。
最后在工具栏的GameObject下,查看是否有Spine选项,就可以验证安装成功与否。
Spine数据资源生成
前面提到的Spine动画的三个文件,再放入游戏资产文件夹中修改了图片描述文件格式后,打开项目后,Unity会自动生成一个.meta和两个.asset文件。
1 | _Atlas.asset 与之前的atlas对应的图集描述文件 |
创建动画对象
因为游戏是2D的,我主体场景用的是Canvas,开头也提到过的导入后总是显示在Canvas背景图的下层,所以第一步就从设置画面开始。
1.选中Canvas后,Render Mode选择 “Screen Space-Camera”,Hierachy中的Main Camera拖入Render Camera中。
2.在场景中创建空对象(如右键Hierarchy > Create Empty),命名为 SpineCharacter
3.添加组件:点击 Add Component,搜索并添加 Skeleton Animation
4.配置组件:
- Skeleton Data Asset:拖入前面“Spine数据资源”生成的
_SkeletonData.asset
文件。 - Animation Name:输入默认播放的动画名称(如
idle
)。 - Loop:勾选以循环播放。
- Scale:调整 Rect Transform 的 Scale,大小自行尝试。
5.Shader设置 UI/Default,默认的Spine Skeleton素材拼接得有点锯齿,详细的可以自行选择尝试。
脚本控制动画
创建C#脚本(如SpineController.cs
)并附加到角色对象
1 | using Spine.Unity; |
写在后面
为什么我做小游戏从CocosCreator切到了Unity3D,原因是这次尝试的是抖音直播小玩法,也就是弹幕小游戏。
前期为了跑通流程,所以我要避开所有要用到服务端的产品开发,从而采用指令直推方式,但官网只有Unity SDK的案例,最后有了这篇文章,当然后续还有更多。
当然CocosCreator制作普通单机小游戏我也会继续,不过当前以2D为主,毕竟现在用AI抽卡来生成游戏资产太方便了,等图生3D模型较完善的时候,以后再用AI制作3D小游戏。