这事儿说起来,完全是年初那会儿闲得蛋疼,手里一个大项目刚交差,领导又不批假,就想找点小玩意儿折腾一下。天天看群里有人求这个《圣骑士复仇之夜》的安卓汉化版,这游戏我以前在电脑上玩过,剧情确实够劲,但每次用模拟器都觉得麻烦。一看安卓上居然没有靠谱的汉化,火气就上来了。
第一步:找货源和摸底
我第一件事就是找,去墙外几个站,终于扒拉下来一个比较干净的原版APK。APK拿到手,马上丢进我常用的那套逆向工具里,先跑一遍。想着这估计也就是个Unity或者Ren’Py的小玩意儿,应该三下五除二就搞定了。
- 拆包: 用拆包工具直接反编译,把资源文件和代码结构都给扒拉出来。
- 摸索: 翻了半天,代码结构倒是挺清晰,但一看文字资源,傻眼了。
小编温馨提醒:本站只提供游戏介绍,下载游戏请前往89游戏主站,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
它文字肯定不是放在那种好找的XML或者TXT里,而是被塞进了一个后缀很奇怪的加密资源包里,看着像是一种日本独立游戏圈常用的加密引擎,非常小众,以前只听说过,没真动手抠过。
第二步:绝境逢生——抠文件
遇到这种自创引擎,硬啃代码那是给自己找不痛快。我转头就跑去几个老前辈的论坛里翻箱倒柜,去找有没有人以前做过这个引擎的提取工具。功夫不负有心人,在某个十几年的老帖子里,我真挖到一个C#写的、专门针对这类加密包的解包工具。
这工具拿回来,直接在虚拟机里跑,没想到这么老的东西居然还能用!
- 提取: 我把那个加密包扔进去,工具一顿噼里啪,吐出来一个巨大的脚本文件,好家伙,足足几十万字的日文文本,光是看那个体积就头大。
- 测试: 随便抽几段关键对话出来,对照着游戏里的场景,确认这个就是全部的剧本没跑了。
最难的文件提取算是搞定了,接下来就是体力活。
第三步:汉化地狱与编码折腾
几十万字,指望我一句句翻译那得猴年马月。我直接丢给某翻译引擎,让它跑一遍,生成一个初稿。但日翻中这玩意儿,不亲自校对根本没法看,那些语气、专有名词、人名,翻出来都是一堆莫名其妙的东西。我连着熬了好几个通宵,对着原文和机翻稿,一句句捋顺,改掉所有拗口的地方,统一了所有角色的称谓。
文本处理完,我用那个解包工具的配套脚本,又把它打包回原来的格式。这时候最怕的就是编码问题。
- 回填: 把新的中文文本文件塞回去,重新生成资源包。
- 初次报错: 第一次打包完,我替换进去,编译APK,装到手机上一跑,一进剧情对话,“砰”!直接报错闪退,一看,果然是中文编码没法识别,全变乱码了。
我回去查工具的配置文件,折腾了快一个小时,才发现是目标文件的编码格式从原来的Shift-JIS变成了UTF-8,但游戏引擎本身只认特定的非标准编码。我在文本编辑器里,强制把编码改回最原始的GBK,又试了一次。
第四步:的收尾和品尝果实
这回再跑,中文终于能显示了,但新的问题又冒出来了。很多台词在屏幕上显示不下,直接溢出,或者把旁边的立绘给盖住了,看着特别难受。这是因为中文的字宽和日文不一样,导致文本框的显示布局崩了。
没办法,我只得找到控制文本显示的配置文件,找到那几个关键的坐标参数,一点点调小字号,调大文本框的宽度和高度,来适应中文的显示习惯。这个过程很磨人,需要不断地改、编译、安装、看效果、再改。
前后折腾了快一个礼拜的晚上,终于在我的测试机上,看到完整的、排版正常的、中文对话流畅地跑起来。那种感觉,简直了。虽然只是个汉化小活,但从找工具、抠文件、搞定编码,到调整排版,自己走了一遍这个流程,还是挺有成就感的。马上就整理出来分享给大家了。玩去!

