【教程】如何提取公主连结游戏动画素材

您所在的位置:网站首页 spine转gif 【教程】如何提取公主连结游戏动画素材

【教程】如何提取公主连结游戏动画素材

2024-07-14 17:52| 来源: 网络整理| 查看: 265

绿龙

本篇专栏的核心在于如何将公主连结游戏内的 cysp.bytes 格式文件转换成可以识别的动画 .skel 格式文件。通过提取游戏文件在的Spine动画编辑器里播放人物/生物/Boss的动画。

本帖仅供学习交流使用,严禁用于商业用途。

最终的效果是可以提取包括绿龙在内的所有生物动画。如图所示。

地下城里的绿龙

绿龙动画

似似花

对于一般的人物动画,可以在[干炸里脊资源网]里找到对应的 .skel 动画文件。例如这里是克里斯蒂娜(狂野)的结算动画的动作,套用了似似花的动画。而干炸里脊资源网里面没有一般生物的动画,因此专栏会在使用一般人物动画的基础上介绍如何提取生物的动画。这样玩家在进行pcr的二创或者视频创作时,就有更方便的素材来源渠道了。

干炸里脊资源网:https://redive.estertion.win/

首先,你需要在B站下载公主连结redive的安卓端的安装包 .apk文件。

公主连结官网

apk安装包本质上是一个压缩包。将文件的后缀名由 .apk 改为 .zip 解压,得到游戏文件。这部分内容在这个视频和专栏里有详细介绍。

AssetStudio

随后,需要下载1个软件用来读取游戏素材文件。也就是常用的 AssetStudio 。后面简称 AS。

AssetStudio

当前版本的AS可以在这里下载。

使用它可以点击左上角[File] → [Load folder] 加载文件夹,选择解压的文件夹。载入。 等1~2分钟后,可以选择第二行的 [Asset List] 里找到所有的素材文件。

2021.3.20f1

日服 2023-4-23 更新,需要输入对应的unity版本号读取日服文件:

2021.3.20f1

点击左上角的 [Export] → [All assets] 导出所有文件。 (文件很多,很大。如果加载过多导致软件崩溃,可以将文件夹 [a] 分几次,分别加载) 

这样,就可以得到公主连结的游戏素材文件了。

贴图文件

首先介绍如何使用干炸里脊资源网提供的动画资源,和游戏提取的文件资源,制作自己想要的动画。在干炸里脊的[卡面]里有对应的角色壁纸/立绘,对应的日文名。

如 ヒヨリ (日和莉)

搜索日和莉

保存1张图片,发现图片名是 [100131] ,这也是日和莉的角色ID。下面是 日和莉(ヒヨリ)的人物贴图,文件名是 100111.png 。这是从游戏里提取的资源。保存在 [sdnormal] 文件里。

我在文件夹里搜索了png,然后全选复制粘贴到了新的文件里,方便大图查看

人物编号

日和莉的编号是 1 001 1 1,代表的含义是

1人物,001号,1星角色,1默认。

栞 的编号是 1 038 3 1,代表的含义是

1人物,038号,3星角色,1默认。

日和莉贴图

日和莉共有3种模式的贴图,分别对应了1星,3星和6星。分别是:

100111

100131

100161

栞贴图

栞只有2种模式的贴图,分别对应了1星和3星:让我栞栞谁还没6星

103811

103831

绿龙贴图

每个角色/生物/boss都有其对应的编号,如绿龙的编号是:310100

如何将游戏素材转换成可以利用的视频/图片素材呢?

干炸里脊 战斗小人

在干炸里脊里选择[战斗小人]角色是按照1~99顺序来排列的。(没有搜索功能,这一点很不友好)

找到对应的立绘,加载动画。

等到下面出现日和莉小人动画后,保存 [skel] 文件。

下载skel文件

这样,我们就得到了 [骨骼动画] 的 [贴图] 和 [动画] 文件。

可是,怎样才能得到具体的视频/图片素材呢?

这里需要用到强大的 Spine 骨骼动画编辑器。

spine

可以参考这个专栏

Spine pro 3.8.75 版本打开之后是这样的:

spine窗口

但是spine只能识别 [.json] 格式的文件,干炸里脊下载到的是 [.skel] 格式的,这要怎么处理呢?

别急,首先需要找到日和莉的所有文件。

在刚才提取出来的游戏文件里搜索100131(日和莉的编号),发现游戏里关于日和莉的素材有非常多。但是我们并不需要这么多素材,我们只需要在规定的路径下找到对应的素材就可以了。

例如日服在 Cygames\TextAsset\assets\_elementsresources\resources\spine\sdnormal 这个路径下,找到 100131.atlas.txt 这个文件。整个游戏里分别有3个同名文件,分别是 

shadow 阴影,地下城暗的影小人,以及hard本里掉角色碎片

room 公会小屋,每天收体力,互动,喂蛋糕的地方

sdnormal 一般关卡里的,战斗小人而我们需要的正是 [sdnormal] 文件里的 100131.atlas.txt 这个文件。

100131.atlas.txt

我们可以尝试用 [txt] 格式打开这个文件,发现里面是一些 xy 之类的坐标数据,它是用来切分完整的贴图图片的。有了这些数据,就可以把一张完整的贴图裁剪成一个个零部件。

新建1个文件夹。取名为 [日和莉 100131],把刚才准备好的 100131.atlas.txt ,100131.png 以及 从干炸里脊下载的 100131.skel 放到这个文件夹里。

这时候需要用到1个转换网站,把 [.skel] 格式文件转换成 [.json],以便可以 Spine 动画编辑器 可以读取文件。

网址:https://naganeko.pages.dev/chibi-gif/

将3个文件导入该网站,如果加载了日和莉小人,说明加载成功。此时,我们就得到了 Spine 可以识别的 [.json] 文件。点击网页下方的选项 [as-is] 或者 [Spine3.8],下载 [100131_s38.json] 文件。将其放到刚才新建的 [日和莉] 文件夹里。

这样,我们制作动画的所有文件就准备齐了。新建1个 [Texture2D] 文件夹,用来放贴图。下面是准备好的文件。

接下来我们需要将文件导入到spine里。

打开 Spine之后,左上角[文件]里新建1个项目。然后[导入数据],选择 .json 文件。日和莉是人物。人物的缩放要改成 0.5。可能会提示你 “有未保存的项目”,点[放弃更改]。

这时候,会出现一大堆乱码,显示 missingname 示意贴图丢失。不过不要紧。因为我们还没有对贴图进行解包。

纹理解包

接下来使用 [纹理解包] 功能,将完整的贴图文件切割成贴图零件。

[图集文件] 选择 100131.atlas.txt 文件。[输出文件] 选择路径时在 [日和莉] 文件里的 [Texture2D] 文件夹。

同时勾选 [非预乘alph],点击 [解开],这样就得到了贴图文件。

点击 Spine 右侧的 [图片],点击加载选项。

选择刚才建的[Texture2D] 文件夹。

贴图加载成功

大功告成

接下来演示如何导出动画:

左上角点击 [设置]/[动画] 切换成 [动画] 模式,在右侧的动画列表里找到对应的动画,比如我这里找的是 idle 发呆动画。

导出文件之前保存一份 spine 格式的工程文件。

在底部操作栏里关闭 [骨骼] 的图层,这样动画显示的更清楚一些。

如果选中了图中的元素想取消选中,按 [空格] 就可以。

如果有误操作导致动画变形,可以 [ctrl] + [z] 撤销操作。

导出gif动画时,Alpha阈值调到 [90] 就可以将人物脚下的半透明 [阴影] 隐藏了。

点左上角,[导出],然后会出现一个选项窗口。我这里演示的是 .GIF格式的。也可导出 [.mov] 和 .avi 格式的视频素材。

选项窗口的右侧有 [默认] 和 [预览] 选项,点击 [预览] 可以展示动图的预览效果。以便确定画布的裁剪宽度。

我一般会选择视区裁剪的格式。里面一共有4个值,分别是

坐标轴 X轴,Y轴,图片大小 宽度W,高度H。

例如我导出的是以 XY坐标轴的 (-250,-50) 这一点开始。宽 [500像素,高500像素] 的区域。

通常在导出同一类图片的时候,会把视区固定在同一值。这样方便不同动画之间的互相切换。

在选择导出路径的时候,要给 [文件] 起一个名字,比如我导出的动画名是 idle,我给文件也起名为 idle。

文件起个名字

日和莉

这样就可以导出一般的人物动画素材了。

好了,一切工作准备就绪。施法前摇完毕。下面进入正题。干炸里脊资源网里只有战斗小人的 .skel。如何获得其他生物,比如绿龙的 .skel格式的动画文件呢?

绿龙的编号是 310100,如果在 [unitanimation] 文件夹里搜索 310100,会得到 [ _battle.cysp.bytes] 和 [ _chara_base.cysp.bytes] 2个文件。这2个文件就是拆分后的 .skel 文件。

干炸里脊资源网是将几个普通的人物模板文件 [.cysp.bytes] 合并后,得到的 .skel文件。也就是说,大部分的人物动作是通用的。比如 [rank] 升级后的演出动画,战败后 [跪地] 的动画。这些动画是通用的,没有必要每个角色都塞进去一套。所以游戏里除了每个角色专属的技能动画。还有所有角色通用的动画。本专栏的核心是如何得到 Spine 可识别的 [.skel] 文件,我们要做的就是将上面这2个文件,合并成 [ .skel] 格式的文件。也就是得到骨骼动画文件。

下面我先介绍修改文件的原理,再分享一个Python程序批量操作文件。

Hex Workshop

我用的是 Hex Workshop 这款软件。它可以把 [数据文件] 以 [16进制] 格式打开。这样可以方便我们对文件的源码直接进行修改。由于格式是固定的,用脚本修改会更方便,这里我先介绍如何修改源码。如果没有更深需要可以直接跳过。

为此我需要新建1个 .txt文本文件,取名为 [310100.skel] 。

文件后缀由 .txt 改成 .skel。(如何修改文件名后缀自己百度)将这3个文件放在一起。

将这 [ _battle.cysp.bytes] 和 [ _chara_base.cysp.bytes] 2个文件用 [Hex Workshop] 16进制编辑器 打开,会发现它们有着近似的开头。[.cysp]而将1个从 干炸里脊资源网 下载的 skel打开,会发现去掉多余的开头,它们剩余的部分一模一样。好,现在关掉编辑器。

我们要做的是

将 chara_base 的头部去掉

然后和 battle 文件合并

具体操作如下:重新打开16进制编辑器,将 [chara_base] 里的代码全部复制,快捷键 [ctrl] + [A],粘贴到 [310100.skel] 里。保存。然后去掉开头的 cysp.... 部分,一直到 一长串代码 结束。这样就得到了1份头文件。

全选复制粘贴保存删除多余部分保存

在16进制编辑器里查看刚才修改好的 .skel 文件,拉到最低端。从左侧能看到,末尾的编码是 [01],我需要把它修改成 [0131]。

具体操作是:在右侧代码栏里右键 [Insert] 插入, 根据图中所示,添加 [31] 进去。确定,保存。

这样我就得到了 [0131] 结尾的 .skel 数据文件。

随后,我再用 16进制编辑器打开 [ _battle.cysp.bytes] 文件,把开头多余的部分删除。再把所有数据全选,复制粘贴到 [ .skel]文件里面的最后面。

保存。得到最终的 .skel 文件。

我用 ChatGPT 协助写了一个小程序。用来合并 [base] 文件。

可以批量处理。

合并文件脚本

把需要合并的文件和程序文件放到同一个文件夹里。双击 [py] 程序得到合并的文件。按 [1] 可以将得到的 [skel] 文件放到对应的文件夹里。程序会修改源文件,请备份文件后操作。

Python

这里我们用到了强大的Python程序。程序下载链接见评论区。

需要安装Python软件。我用的是3.7版本。

Python是免费的。如何安装python可以参考这个专栏:

最终我们得到了制作动画所需的 3 个文件。

[.atlas] 格式的切图数据

[.png] 格式的贴图

[.skel] 骨骼动画

按照之前的方法,保证这3个文件名一致。导入 格式转换网页,就能得到 Spine软件可以识别的 [绿龙] 的骨骼动画所需的 [.json] 文件了。

再根据上述提取战斗小人动画的步骤,在 Spine 里播放绿龙动画。注意:绿龙导入 Spine 时不需要修改缩放比例,用 1 缩放即可。

|・ω・`) 搞定!

提取出来的动画默认都是带有 [底部] 阴影的,我一般在导出动画的时候会选择去掉阴影。

具体操作方法是,在 Spine 动画编辑器中左上角调整到设置模式。 点击 [阴影],右侧的元素列表会定位到该 [阴影] 元素。此时像PS里关闭图层一样,关闭阴影这部分 [图层] 。再点左上角切换到 [动画] 模式,会发现阴影不见了。这样再导出的动画就是不带阴影的了。

如何导出立绘

在 [full] 文件里,会找到大量的人物的2D立绘。

例如下图这张优妮(圣学祭)编号是 [116411],能找到对应的3个文件。

(终于不是新建文件夹了)

将其导入转换网站会发现,仙贝的立绘上没有脸。

没关系,下载 .json,试着将其导入 Spine中。发现还是没有脸。

这时候需要在右侧的 [皮肤栏] 里选择对应的皮肤。

比如 [ joy ] 表示开心时候的表情。

注意解包纹理图片的时候要 [勾选] 非预乘。

优妮先辈的立绘导出成功。

如何精确查找文件

根据游戏目录里的 [manifest.db] 文件,获取游戏文件名单表。

下载一个 [DB] 软件,用来打开此文件。

DB Browser for SQLite

以6星步美立绘的编号为例:

在转换网站将其转为hash值,可以获得SHA1哈希,也就是文件名:

编号:bg_still_unit_105561.unity3d哈希值:dd14ccc18d9b79683fa7164618d1c13beb854e38

在文件里搜索,得到文件。导入AS。

发现它正是我们要找的立绘贴图。

可以右键导出单张图片

这样我们就可以通过文件名单表,精确的找到1个角色的游戏文件,进行提取了。

【Q&A】环节

Q:这个教程是做什么的?

A:如何获得公主连结的骨骼动画文件作为二创素材。

Q:人物动画和怪物有什么区别?

A:大部分人物动画都可以在干炸里脊网上找到,直接从网上下比较方便,怪物的动画需要自己修改文件制作。

Q:如何让A角色做出B角色的动作?

A:下载B角色的动作,然后导入A角色的贴图。

Q:如何下载日服文件?

A:我使用的是电脑上的DMM端下载的。日服需要购买加速器,而且我没有找到没有任何教新人注册和联网的教程,这点非常不友好。

Q:文件导入AS崩溃怎么办?

A:将文件分开分组导入。不要一次性导入所有文件。

Q:如何导出公主连结的语音和音效?

A:不知道,干炸里脊资源网上有人物语音,理论上可以提取,但是我不会。

Q:如何导出公主连结的ub技能?

A:公主连结是用unity制作的,理论上完整的技能可以在unity里播放。我也不会。

参考:

NGA:https://ngabbs.com/read.php?tid=34235326

专栏:https://www.bilibili.com/read/cv17864462

            https://www.bilibili.com/read/cv18073492

巴哈姆特:https://home.gamer.com.tw/creationDetail.php?sn=5426258

干炸里脊资源网:https://redive.estertion.win/

Json转换:https://naganeko.pages.dev/chibi-gif/

Spine 百度网盘:https://pan.baidu.com/s/1_-r1nvmmkgJsiCVPtB4ZNg 提取码:1024 

合并程序链接网盘: https://pan.baidu.com/s/1qsyIG5Wm4lhccoWik12VDQ?pwd=pcrd 提取码: pcrd 

DB 名单表:https://sqlitebrowser.org/dl/

以上 by. 美神



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3