MAGES引擎游戏资源提取方法指北

写在前面
1.游戏解包属于法律的灰色地带,本文方法仅供交流学习,获取的资源请一定不要商用。
2.本文方法只直接适用于2015~2020年间使用MAGES引擎的PC版游戏,会有一些发散性内容,但不讨论其他游戏。如果您对这句话中除了专有名词“MAGES引擎”以外的部分有疑问,请自行查阅词典或搜索。
3.恕本人能力有限,本文主要研究游戏中视频、音频、图片的提取,不研究封装,不研究文本,也不讨论汉化问题。
4.本文提及的工具软件大多可以在github上找到,或可从指定网站免费下载,恕不提供链接。
好了,先说完了难听的话,下面开始正经内容。
MAGES是一家日本游戏公司,原名5pb,主要作品有科学ADV系列(命运石之门)、秋之回忆系列。MAGES引擎是他们家的游戏所用引擎的称呼(似乎不是官方称呼)。这个引擎大约是在2012年左右开始使用,并不断改进使用至今。使用这个引擎的游戏已知有科学ADV系列的Steam版全部,YU-NO重置版,MO8,MO Historia等。我们研究如何提取资源主要是出于对游戏(waifu)的热爱,能够每天见到听到她们的身形和声音(以及迫害情强哥),仅此而已。那么我们开始吧。
1.确定游戏为MAGES引擎
首先,需要确定这个游戏是MAGES引擎的,不然全部的方法都没有卵用。至于怎么确定……我只能说靠人生经验。没想到第一个关键的问题竟然这么儿戏。
首先首先,这个游戏必须是MAGES开发发,或者至少参与了开发,不然不可能是人家的引擎。然后,MAGES的一些游戏在vndb上被注明了是用的“Kaleido ADV Workshop”引擎,比如可塑性记忆、五等分、超九,这些就不用想了,肯定不是。然后剩下的,基本上就是老牌的科A和秋回这两个亲生的了,以及志仓社长的偶像作YU-NO。
MAGES引擎的特点是在游戏根目录下的USDIR目录或data目录能看到大量的mpk格式文件或cpk格式文件,文件名一般有bg、bgm、chara、mask、movie、script、se、shader、system、voice等,可能大写也可能小写。这些是装有游戏资源的压缩包。mpk为MAGES引擎独有的格式,cpk是CRIware引擎的格式。MAGES引擎应该是基于CRIware引擎开发的,直接用CRIware的格式也不奇怪。有时也能看到本该是压缩包的文件以文件夹形式出现,并出现一个同名的cls文件,也可能没有,那么我们很幸运省去了一个步骤。


这些名称对应的资源如下。
bg:游戏背景图、事件CG等图片资源。有时会分为bg1和bg2两包。
bgm:就是BGM。游戏背景音乐。
chara:角色立绘。
face:角色立绘的脸部,用于补充表情。有时会有。
manual:游戏说明。
mask:应该是画面遮罩,用于制造光晕效果、烟雾效果等。没什么用。
movie:游戏op等录制成影片的内容。PC版有时会有movie720和movie1080两个包,分别是720p和1080p的画面。
script:游戏文本。
se:游戏音效。
shader:不清楚。
system:游戏系统UI。一些游戏内出现的小表情包可能会出现在这里。
voice:游戏内角色语音。
2.解包mpk或cpk
我在网上找过很久,找到的要么是“What is it and how do I open it?”的废话,要么是一些个人制作的小工具,需要手敲命令行,而且还不一定能用。
目前我在用的工具是GARbro,能完美支持mpk和cpk的解包,还能预览其中的文件,甚至还附赠了一些转码功能。

GARbro也支持很多其他的游戏。试过几个其他游戏的解包后,你就会发现这个mpk/cpk格式简直太友善了,没有密码,而且很久没有更新压缩方法,最后更新在19年的GARbro到现在还能用。
根据软件说明,使用GARbro需要安装.NET Framework v4.6或更高版本。
3.图片部分
PC版的主要好处就在于图片格式基本都是常见格式,比如png和jpg。偶尔会见到dds之类的罕见格式,GARbro的转码功能也能解决,基本没什么问题。
背景图、事件CG基本都在bg.mpk里,一般命名规律是bg***、ev_***、ibg***、z_*等。
bg+数字+字母是背景图。ev开头的是事件CG,一般是ev_+女主名+数字,最后一位的字母表示一张cg的不同版本。ibg一般是一些过场图和小物件。z_开头的是启动游戏时的厂标。另外老游戏可能会有ev_sp开头的特典图。
*不知为什么,YU-NO的CG等内容被统一放在了chara.cpk里,是个特例。
然后是manual.mpk和mask.mpk,这两个目录里的东西一般意义不大,略过。
system.mpk,系统UI的图片素材。游戏启动页面和CG浏览模式时侧边的立绘会放在这里。

最后是重头戏,真正的立绘,chara.mpk。大约从混沌之子开始,角色立绘被添加了加密。打开chara.mpk可以看到一系列图片,以及一个同文件名的脚本。图片大概长这样,明显是进行了一定程度的加密。文件名的规律是角色名+字母。

好在已经有大佬做好了工具,ChaosChildPCTools。虽然用法比较原始,但也算是比较简单了。
提取出png和lay文件一起摆在工具的目录里(如图4),按图123运行,就会出现图4的文件夹,内容见图5。





可以看出,原先一张图解出了数十张有微小差别的立绘。
另有一些游戏的脚本是mvl格式的,解出来后是一些散件和一个index.json,如果按照json把散件拼起来就和上面的一样,但ChaosChildPCTools提供的拼装工具似乎不能用。

这个工具不止适用于CC,还适用于之后的其他作品。运行这个工具需要python3以上版本,我个人建议安装开发环境。另外运行前还需要安装python的PIL运行库,请自行搜索。
4.音乐部分
根据我多次解包的结果,游戏内音乐资源的比特率都在96~240kbps之间,各个游戏有所不同,但都远低于无损,也低于标准有损封装的320kbps,有些甚至低于x抑云免登录播放的128kbps。游戏为了控制体积而压缩文件也算是常规操作了。MAGES作为一家音乐公司(确信),旗下游戏大多会发售OST,如果只是为了听歌建议去找游戏的OST。

首先是bgm.mpk内的内容。PC版的游戏内音乐一般是ogg格式,一般的播放器就能播放。另有一些游戏的是hca格式,这是CRIware的音频封装格式,在GARbro中可以播放。直接提取后,除了MPC-HC播放器外大多数播放器都无法识别。当然我的MPC-HC播放器还配置了K-Lite Codec Pack,可能需要它来解码。foobar2000播放器在添加了vgmstream plugin后也能播放。如果想把hca格式转为一般格式,没有太好的方法,要么用有损编码被压缩,要么用无损编码被拉伸到超级大。GARbro自带的转码功能会把hca格式的文件强行拉伸到4000kbps,实在是有点过于离谱,略。foobar2000+vgmstream plugin可以提供多种转码方案,但也都不能原样放出,但同样的WAV无损转码后比特率只有1536kbps,相对正常一点,我目前选择这种方案。
se.mpk是一些音效,意义不大,格式同上,略。
voice.mpk是角色语音,内容超多,而且大多很短。不过这些内容想研究只能靠提取。提取方法和上面基本相同。
有时可能会见到adx格式和at9格式的音频,adx格式也是CRIware的音频封装格式,方法同hca。at9是索尼的音频格式,下文会提及,GARbro无法播放,但MPC-HC和foobar2000可以播放。
在寻找hca和adx的转码方案时,看到有说要用VGMToolbox解码、密钥之类的,但实际没有用到,估计是加密等级比较低吧。
写文的时候又翻到一个工具VGAudio,也能解码以上三种音频格式,但需要手敲命令行。
以上三个软件均没有提及需要的运行环境。如果你想用foobar2000转码成MP3格式的音频,还需要下载Lame编码器,请自行搜索。
5.视频部分
关于视频部分,需要提前了解的知识很多,建议参考下文自行学习。
[VCB-Studio 科普教程 3] 视频格式基础知识
简单地说,我们常说的MP4、MKV等格式是视频封装格式,其中封装了视频流、音频流等,还可能有字幕、分节信息等。常见的视频流编码格式有H264-AVC、H265-HEVC,偶尔还能见到VP8、VP9、MPEG-Video等编码,还有用于无损封装的remux。常见的音频流编码格式有AAC、AC3、Opus等,无损的主要是FLAC,此外还偶尔能见到ogg-vorbis、mp3、MPEG-Audio、DTS等格式。我们要做的事情是将游戏中提取出的视频文件转码成常见的编码格式,再封装成常见的视频封装格式。
游戏内用到的视频主要有OP动画和ED动画,可能还有一些过场演出。这些内容都在movie.mpk中。然后打开一看,要么是.bk2,要么是.usm,根本看不懂。说好的PC版常用常见格式呢?
首先来讲usm格式。usm格式是CRIware的视频封装格式,在VGMToolbox中称为USM (CRI Movie 2)。可用VGMToolbox中的Stream Tools/Video Demultiplexer解封装。记得在右边的下拉单里选择USM,选项选择解压音频和视频,然后把usm文件拖进来就解完了。


解封装后得到了一个m2v文件和一个hca文件。hca文件是音频流,按上文音频部分处理即可。有时候音频流会是adx格式,也一样。m2v文件是视频流,目前我解过的都是AVC编码,理论上能直接播放,但实际上还是只有MPC-HC能直接播放,还不能拉进度条。封装后所有播放器应该都可以正常播放。PC版游戏一般会有两个清晰度的影片,分别在以清晰度命名的目录下。如果只有一个那应该是1080p的版本。

然后讲一下bk2格式。bk2格式是Bink Video的视频封装格式。对于bk2格式,目前没什么好办法,VGMToolbox解封装选项中有一个BIK格式选项,是针对的Bink Video的一代视频,对二代无效。目前我找到一个软件RADVideo(可能是BinkVideo的官方软件),能直接播放bk2格式的视频,但没有解封装选项。有个转码功能,把视频转码成AVI并输出能把5分钟300MB的视频转到4GB,花了30分钟,实在太吓人,而且那个4GB的视频在我的电脑上根本跑不起来,只能看到第一帧,我只能暂且算它不能用了。写文的时候看了一下RADVideo的更新,有新版本,用新版的转换选项,默认转成MP4,同一个视频只花了三分多钟,转换后体积也只有不到400MB,没有看出明显的画质损失,音频被压到了192kbps。如果在转换时只转换音频则默认是wav格式1536kbps。就算它是一步到位吧。
最后讲视频封装。(RADVideo的更新导致我这一条摆在后面好像很多余啊,尴尬)usm格式解封装后,再把音频流转码成PCM编码的wav格式,就可以准备封装了。封装可以用MKVToolNix封装成MKV格式,也可以选择其他封装工具。MKVToolNix的封装功能很简单明确,选择混流器,把m2v文件拖进去,再把wav文件也拖进去,拖第二个文件时选择“作为输入文件添加到当前混流设置”,然后点击开始混流就可以了。开始前记得确认一下轨道一栏是一个视频轨和一个音频轨。我个人习惯把视频轨放在第一位。由于我们这两个文件原本就是在同一个视频里的,所以不用特地去调右侧的属性。我比较懒,直接把wav文件封进视频里了,如果追求更好的兼容性,建议把音频部分先转码成AAC格式再封装。然后输出的就是一个看起来很普通、很正常的MKV格式视频文件了。


以上软件也没有提及所需运行环境。
6.发散内容:主机版
众所周知,MAGES是一个狂热的主机独占爱好者,所有作品都是在主机端首发。虽然现在不独占了,但首发还是在主机上。如果要获取最新游戏的资源,就要找主机端。主机端和PC最明显的区别之一就在于你正常使用的话根本看不到游戏的资源目录,想看到只能破解后把资源导出到电脑上,或直接找盗版资源。而且主机版游戏为了适应主机的操作系统,可能还会使用一些更奇怪的文件格式,让资源提取更加困难。
6.1 软系主机:xbox360、xbox one
没解过,不知道。
6.2 索系主机:PS2
没解过,不知道。
6.3 索系主机:PSP
说实话,我很怀疑PSP上的到底是不是MAGES引擎……作为民间汉化非常活跃的平台,PSP版的内容应该都可解,但都已经年代久远,我没能找到相关的工具。而且PSP的画质不高,没有太大的意义,我也没有深入研究。如果想研究建议去问当年的汉化组大佬。
6.4 索系主机:PS3
解过两个游戏,RN和MO7,分别是13年和14年的,比较久远。安装包是个普通的压缩包,解压后的文件结构和PC版没什么区别。图片文件没有格式后缀名,我也不知道该怎么办,就放弃了。音频也全部没有格式后缀名,无法识别。MO7的视频是usm格式,可以提取。RN的视频是sfd格式,也是CRIware的视频封装格式,在VGMToolbox中选择sfd格式解封装,后续操作同usm格式。
6.5 索系主机:PSV
解过两个游戏,RNE和MO8,分别发布于14年和18年。两者的区别很大,RNE的包为vpk格式,MO8则是一般压缩包,被标注为mai包。不清楚是不是PSV的两种破解后游戏导入方式不同导致的还是年代差太多引擎更新导致的。RNE的图片情况基本同PS3。其中有部分图片格式有.gxt格式的后缀名,GARbro能直接查看和转码,但只有非常小的一部分。另外的图片即使标注为gxt格式也仍然无法查看。音频为aa9格式,只有MPC-HC可以播放,转码方法未测试。视频为usm格式。MO8图片为gxt格式,但和RNE不同,GARbro无法预览。ChaosChildPCTools中有一个gxt.py,可以解码图片为png格式。但是这个脚本又不能解RNE中的gxt图片,疑惑。音频为at9格式,是一种索尼的音频格式,上文已提及,可用MPC-HC和foobar2000播放。视频竟然非常良心的直接是mp4/AVC/AAC,一切正常,直接就能播。
6.6 索系主机:PS4
只解过一个CCLCC。资源分享者直接发了文件夹,没看到安装包层。内部结构也是和PC版差不多。图片竟然直接就是png格式,很令我惊讶,不清楚是不是特例。音频为at9格式,参考前文。视频也直接是mp4/AVC/AAC,直接就能播。
6.7 新世代主机:XSX、PS5
卖鸡社笑话.png和任地狱笑话.png
6.8 任系主机:Switch
长篇大论环节。详细写能再写几千字。所以这里只写主要步骤。
1.将NSP或NSZ格式的安装包转换为XCI格式。所用工具为NSCBuilder。如果直接是XCI格式可以略过这一步。
2.用XCI-Explorer打开xci,在Partitions选项卡下root/secure目录下找到四个nca文件(也可能更多),找到最大的一个,解压出来。这一过程也可以使用Xci-Extractor解压出全部的文件,再慢慢找。
3.用SwitchExplorer打开nca文件就可以看到和PC版类似的一系列cpk文件或文件夹了。
NS版的文件格式基本都是前文讲过的,不再赘述。总体来说NS版虽然麻烦,但后续操作难度不大。
这里提到的四个软件都需要NS密钥才能运行,请自行获取。密钥存放位置也不同,请分别参考github上给出的说明正确存放。
7.发散内容:未来展望
未来会发生什么,没人知道。如果MAGES大更引擎,甚至只是小改一下,全文都可能立即作废。但我相信,到时候一定还会有大佬出来研究,带来新的工具,和新的惊喜。
(完)
