#1 - 2023-3-21 16:44
Ephylm411
看了B站 BV1ph411J7Pf 的汉化教程后,用这个游戏「ココロネ=ペンデュラム!」试验了下,在这里留个记录。

该游戏符合原教程后半关于新系统的部分,按图索骥即可解决免安装,修改文字编码,中文字体适用,以及黑体缺省的问题。唯一不同的是,汉化文本不能简单以cst格式存于游戏目录下,这样游戏程序读取不了。因为试验后发现,该游戏的文件替换原则并非看文件的时间戳,而是看封包的时间戳。

该游戏在官网有个1.1补丁程序,运行后提示必须先安装游戏才能安装补丁。但事实上,补丁也就更改了"游戏目录\config\startup.xml"中的几个字符(主要体现在游戏界面菜单栏 ヘルプ -> バージョン情報 里的版本信息),并且在游戏目录下增添了 update01.int 文件。

也就是说,只要直接把 update01.int 文件复制到游戏目录下,就可以在不安装游戏的情况下适用1.1补丁了。为了快速分辨游戏是否是1.1版本,可以打开游戏查看CG画面千早的第一张CG,观察裙子的颜色和花纹,1.1版本是红色短裙边缘有一条黄色线,1.0版本则没有黄线。

于是可以效仿之,将cst格式的汉化文本封入int包中,然后将封包改名,以update开头接若干字符,达成汉化效果。封包可以不设密码(倒不如说本人使用的程序不支持加密封包,自己也不会任何有关加密封包的技术),但封包名必须以update起首,不然游戏程序不会读取。

另外,update后面接的字符一定要在补丁包名字顺序之后,比如,将汉化文本包命名为 update02.int,但将1.1补丁包重命名为 update03.int,游戏程序就会用 update03.int 里1.1版本的 C01.cst,而不是 update02.int 或是 scene.int 里的 C01.cst,汉化也就失效了。

所以,update后接字符串的相当于时间戳,但长度不限,并且也可以是英文字符。然而,游戏程序对英文时间戳的处理十分迷惑,比如试验发现,游戏程序更优先于英文字符串长度短的,长度相等则更优先于字母顺序靠前的,字母优先于下划线等等。但这些规律碰上数字时间戳就都不适用了,甚至数字时间戳优先于英文时间戳。所以建议老老实实把汉化包以什么update99.int命名,没那个技术就别整些花里胡哨的。

关于游戏对话框左上方人名,就是显示这句台词是谁说的,实际上是图片格式的,大概是"image00.int\sys_log_name.hg3"或者"image00.int\sys_mwnd_name.hg3",用汉化的图片封入汉化包就能替换了,但还要改文本才能正确引用。以下说法中,人名仅限对话框左上角的,不再指对话框主体里出现的人名,主体里出现的人名直接翻成中文就完事了,不像别的游戏可能有关联资料什么的。

提醒一下,千万不要以为可以随便在真名后加 @ 汉化名来汉化,每一个形如真名 @ 假名的东西都对应一个图片,真名是用来关联系统调音量的,假名是显示在游戏对话上的,对应剧本不想让你知道TA真名的时候。当没有 @ 的时候,真名和假名统一于人名。

如果不改或改错了的话,人名就会显示为缺省的???。一种方案是保持cst文本中的日文人名(当然要改成中文编码下的日文字符,并且 @ 字符要特殊处理下,处理方法也在上文链接的教程里有);另一种方案是把cst文本中的日文人名翻成中文,并且更改"config.int\nametable.csv"中的对照表,把相应的表项改为中文人名后封入汉化包中,即可关联。

补充个曾经卡了很久的细节,用lneditor将txt导入为cst的时候,目的路径一定要有cst原始文本文件,否则无法导入并且不会记录任何日志信息。在用lneditor逐句替换翻译的时候,可能出现某句字数超过原始文件给定的上下界而导入失败,也不会有任何提示。这是插件的固有问题,建议使用更专业的文本编辑器解决该问题。

最后声明一下,本篇内容涉及的十分基础,看看隔壁「はるるみなもに!」的汉化直接全封进exe文件里就知道水平高出不知道多少了。以上也只是本人程序小白初学3天的简单总结罢了。