碧蓝航线|半自动化立绘合并&差分表情接头工具

其实使用的时候要做的事情只有手动导入和保存(
本工具并不包括把碎片化立绘还原的功能
release仅Windows系统可用,仅在64位 Windows 10 上测试过
对于其他系统没做打包 <del>没条件整</del>,还请直接下载源码.py文件运行(需要Python环境)。可通过pip install使用源码包内的requirements.txt安装所需的模块
$ pip install -r requirements.txt
本身完全是GUI程序,不过仍然保留了黑框命令行界面,方便记录报错信息。有任何bug或其他问题可发在评论区或github提issue
该工具使用的 WebExtract.exe 和 binary2text.exe 取自 Unity64 - 2020.1.6f1

p两张图简单总结该工具的功能:



食用方法:
打开程序后左上角的俩页签就是该工具包含的两个功能

我上一篇专栏讲的就是立绘合并功能 <del>到底为啥会想着发个先行版的呢</del>

更早之前发的两篇讲思路和算法的专栏现在只剩提供思路的作用了,修bug时又踩了几个坑,算法改了又改(
改正补充几个点:
导入文件:需要位于游戏目录下的painting文件夹里的文件

还可以选_n后缀的以合并不带小背景的立绘,_hx也可以,总之不要_tex结尾的文件。
导入完成后等待处理计算完毕。※有任何问题一般都会在下方文本框里打印ERROR: 并终止处理。比如对应的立绘不需要合并或者该文件不可用等等。
计算完毕后就可以导入还原后的立绘并根据坐标点粘贴合并。若想获得比较完美的合并后的立绘需要保证立绘尺寸是正确的。
上次提到的四个皮肤的问题已解决。不过需要提醒一点

香格里拉立绘合并后会留下大量空白,是文件内数据决定的,不会修复。 <del>这是特性</del> 分辨率问题不用担心,合并后包括空白的部分,分辨率约4800x3200。合并大凤的赛车服立绘也会出现该现象。


然后是另一个页签,差分表情接头功能

文件处理框:导入文件,文件要求与立绘合并功能的要求一致,不要_tex结尾的就行。导入之后会自动计算表情粘贴坐标。若文件数据内找不到face子对象会报错并终止处理。若一切顺利的话下方的差分表情导入框会被激活,而三个导入按钮仅有一个导入主立绘按钮会被激活。剩下两个在导入主立绘后才会被启用。举个栗子:

导入主立绘:顾名思义导入一张还原后的立绘。为了避免不必要的差错,立绘尺寸必须是正确的
导入差分 - 文件:导入游戏目录下paintingface内对应的文件,自动分析并产出所有包含在文件内的差分表情并全部丢进差分列表
导入差分 - 图片:导入一张图片作为差分表情粘贴到主立绘上
处理日志:记录处理paintingface文件的过程和报错
差分列表:列出所有可选差分表情,可选择其中一个保存
坐标补正勾选框(右上角):是否启用坐标补正。计算粘贴坐标时在最后一步加了 (+1, +1) 的坐标补正。但部分立绘出于某些原因不适用坐标补正,所以加入该CheckBox。


对于普通立绘只要有对应paintingface文件就能接头。
导入差分表情文件后的处理速度取决于差分表情数量以及数据存储方式。经过压缩纹理处理过并以二进制储存的差分表情处理速度最快,以字符串形式直接保存在文件内且未经压缩纹理处理过数据的差分表情处理最慢(点名海王星皮肤,类似的还有贝奇。大部分出现问题的情况下会在日志内打印ERROR并终止处理
对于需要进行立绘合并的,先要在包含人物的立绘上先接头(注意该立绘的名称后缀,如_n或者_front),之后再合并立绘。
立绘合并 保存立绘的后缀为_group,差分接头 保存立绘的后缀为_exp

配置文件
配置文件名为 ALPAConfigs.yml

painting:
importFilesPath:立绘合并-导入文件时使用的路径,会自动更新
importPaintingPath:立绘合并-导入立绘和差分接头-导入主立绘时使用的路径,会自动更新
wildCard:立绘合并-导入立绘和差分接头-导入主立绘时筛选立绘文件使用的通配符,只能手动编辑不会自动更新
paintingface:
ApplyCorrection:默认是否启用坐标补正
importFilesPath:差分接头-导入文件时使用的路径,会自动更新
importFace2DPath:导入差分-图片时使用的路径,会自动更新
importFaceFilePath:导入差分-文件时使用的路径,会自动更新
wildCard_2D:导入图片差分表情时用于筛选的通配符,只能手动编辑
wildCard_File:导入文件差分表情时用于筛选的通配符,只能手动编辑
程序正常退出时会自动更新配置文件