解包提取明日方舟Spine模型为帧动画素材
总所周知,Godot对Spine并没有原生支持,所以如果想要在Godot中使用明日方舟中的Spine动画,要么使用godot-spine,要么将Spine转换为其他格式。然而,截至2.6.31版本,明日方舟的Spine使用的是3.8版本,而Godot仅支持4.x的Spine版本。要想升级明日方舟Spine的版本,就必须要有4.x的Spine。然而,目前互联网上没有这个版本的学习版Spine,直接购买的价格又十分高昂,所以我们只能转而考虑将Spine转换为其他格式。本文介绍了如何将明日方舟的Spine动画转换为帧素材,从而能简单地使用到Godot中。
下文中,我们以转换源石虫的模型为例。
获取Spine模型
一般来说,我们需要通过解包的方式来获取明日方舟的模型文件。然而社区已有现成的打包整理好的模型文件可供我们使用:isHarryh/Ark-Models: Arknights Spine Models (Excerpt) | 明日方舟Spine动画小人模型(节选)。其中包含了基建小人以及敌人的模型。首先直接将这个仓库整个下载下来,然后解压到本地。根据Readme说明文件,敌人的模型放置在models_enemies
文件夹中。这里一共有一千一百多个文件夹,或者说敌人类型,因此要快速地找到敌人也是一个比较费时间的活。
一个小技巧就是,使用AssetStudioGUI来快速浏览文件。首先依然是解包,解压apk文件,根据亿下相对路径找到敌人的模型:<解压文件夹路径>\assets\AB\Android\battle\prefabs\enemies
,然后将目录下的所有.ab
文件拖拽到AssetStudioGUI打开的窗口中。在AssetStudioGUI的左上角第二行标签页中,选中Assets List
,查看所有资源,然后点击表头的Type
排序,直到Texture2D
类型的文件排到开头。点击第一个,在右侧就可以看到图片的预览,按方向键可以快速切换浏览下一个文件,这样就能相对快速地找到我们要的文件了。但是注意,明日方舟中的材质文件分为两个的,一个黑底彩色,一个黑底白色轮廓,关注黑底彩色的即可。找到以后,可以通过这个材质文件的名字,在我们之前下载下来的模型文件中快速锁定文件夹,找到我们要的资源。
最后,我们找到源石虫是名为enemy_1007_slime
的文件。于是我们打开模型资源中的1007_slime
文件夹。一共有三个文件,这就是源石虫的Spine动画文件。altas
表示材质的数据,png
就是材质本身,skel
是动画的骨架。
转换模型
chibi-gif 0.1.32.2-sp38(https://naganeko.pages.dev/chibi-gif/index38)
(Github:naganeko/naganeko-tools)
这个网站提供了将Spine 3.8版本的动画转换为帧动画的功能。如果打不开,可以考虑挂个梯子。
现在我们将三个文件一起拖拽到网页中,或者点击Add Skeleton
按钮,同时选择这三个文件。现在你应该可以看到你的模型已经显示在了左侧的背景中。
在左侧的按钮中,有一个下拉选择框,可以选择动画,你可以预览要导出的动画。然后选好动画以后,点击Add Motion
按钮将动画添加到导出队列。再下方有一个选择帧数的选项,有两种决定方式,一种是选择总共导出多少帧(此时需要修改左侧,自动计算右侧),一种是指定一帧的持续时间(此时需要修改右侧,自动计算左侧)。最后,点击Generate frames
生成帧的动画,可能需要一点点时间。然后划拉到底,点击选择Save as a Zip
将导出的序列作为压缩包的形式导出,浏览器会自动下载导出的文件。
至此,我们就成功地将Spine导出为帧的动画了。