GalGame CG提取——ExHIBIT引擎篇
游戏引擎
ExHIBIT引擎
主要使用厂商
Skyfish社及其子社,Moonstone社及其子社
游戏文件结构
1 | ├──fonts |
fonts
fonts文件夹中存放字体文件。
rld
rld文件夹中存放格式为.rld的剧本文件。
userdata
userdata文件夹中存放存档。
res
res文件夹中存放游戏资源。
c
c文件夹下存放格式为.rnf的游戏脚本文件
g
g文件夹下存放格式为.gyu的游戏图片文件,分为四个文件夹。
ch
存放游戏立绘。
ev
存放游戏CG。
gn
存放效果图片。
sy
存放游戏界面所需的系统图片
s
s文件下存放游戏的声音文件,分为两个文件夹。
e
存放格式为.wav的游戏配音文件
m
存放格式为.ogg的游戏BGM
解包方法
游戏的CG以.gyu格式存放在res。通常ev文件夹下分为多个文件夹,通常每个文件夹为游戏的一组包含差分的CG,此外也有文件夹中保存背景图片。
Garbro
下载地址:morkt/GARbro: Visual Novels resource browser (github.com)
Garbro是一个非常方便的解包软件,可以直接查看.gyu文件并提取。
Asmodean: gyu2bmp
下载地址:asmodean's reverse engineering page - gyu2bmp
Asmodean开发了大量针对性的工具,此处为用于将.gyu转换为.bmp格式的图片,使用方法如下:
1、新建一个文件夹,将上述res,并将rld文件夹中def.rld也复制到里面
2、修复CG文件的key:运行下面的bat文件。
1 | fixipgyu.exe def.rld |
3、提取CG:运行下面的bat文件
1 | for /r %%i in (*.gyu) do gyu2bmp.exe %%i |
后记
部分ExHIBIT引擎制作的游戏,存在一张大图配合多张小块差分CG的情况,图像大小信息存储在原始gyu的第5和第6两个字节,坐标信息保存在原始gyu文件的末尾,其中5050代表底图的文件名,384和80代表差分应该覆盖区域的左上角坐标。
写了如下python代码进行处理,需要安装python和ImageMagick,并且将原gyu和bmp放在同一个文件夹下。
1 | import os |