吉里吉里的立绘一般由若干差分图片和一个规则文件构成:

规则文件和差分
其中规则文件包含了立绘合成时的坐标和透明度等信息:

规则文件
根据这些信息可以直接用Python或PS快速地合成单张立绘。然而这种做法产生了一个问题,就是在合成时难以将规则文件中的name和实际图片联系在一起,并且每次合成时查找layer_id也平白增添了工作量,于是我便自己写了一个吉里吉里的立绘合成工具,只要读取规则文件便能自动加载所有差分并提供预览功能。

吉里吉里立绘合成工具
使用方法:首先打开规则文件,格式为txt,名字一般为角色名,后面可能带有单个字母或单个数字,如:芳乃a.txt、寧々a_0.txt、face白狗a.txt等。
打开后程序会自动检测规则文件所用的编码格式,原理为计算用各种编码打开时非日非英的字符数量,然后选用打开时非日非英字符最少的编码。
目前我在解包时见过的规则文件的编码格式有UTF-16 LE和Shift JIS,而检测时会在这两种编码格式再加上一个UTF-8中进行选择,基本可以涵盖大部分日文软件所用的编码了。
打开后就可以选择图层了,所有图层按照规则文件放在指定的图层组中,而未指定图层组的图层则统一放在名为“(none)”的图层组中。

选择图层组


选择图层
当鼠标悬浮在某一图层上时会自动在右边的框中进行预览。

合成时在图层框中越上面的图层铺在越底下。
添加图层后程序会对已添加的图层进行自动排序,原理为计算每个图层所有像素Alpha值的总和,和越大的图层铺在越底下,简单地说就是越大越不透明的图层铺在越底下。
规则文件中并不含有图层顺序,所以该算法有出错的可能,但大部分情况下还是正确的。
选择完图层点击“保存结果”就可以保存图片了。
另外我也写了批量合成的功能:

批量合成
首先点击“新建”在左框中创建新的图层组,选中某一图层组后在右框中添加相应的图层。

也可以点击“添加组”将当前选择的图层组整个放入左框中。

删除时选中图层或图层组,然后直接按backspace就行了。
另外选中右框中的任一图层后按“新建”可以在右框中添加名为“(none)”的空白图层。一个图层组最多只能有一个空白图层,且必须包含空白图层以外的图层。
合成规则:
1、越上面的图层组铺在越底下,并且图层组中图层的顺序不会影响合成结果。
2、遇到空白图层会直接跳过。
假如有如下三个图层组:
组1:1、2
组2:3、(none)
组3:4、5
那么合成的结果为:1+3+4、1+3+5、1+4、1+5、2+3+4、2+3+5、2+4、2+5。
选择完所有的图层组后选择保存路径再点“开始合成”就行了。
由于目前测试过的游戏数比较少,所以可能无法涵盖所有规则文件的格式,如在使用中遇到问题可以在评论区指出。
工具下载地址:
https://github.com/CjangCjengh/krkrFgiEditor/releases
(只有50KB,就算直连github也能下载)