汉化

2022/5/5

本节文档介绍汉化的相关内容。因为我对这里的一些技术(尤指汇编反汇编)不熟悉,所以很可能会有错误和遗漏,希望各位大佬指正。另外,本站文档主要讨论程序方面,还请注意

**【置顶】**注意,本节我们谈论的所谓的“汉化”,特指一般意义上的汉化,即“通过汉化补丁方式”进行的汉化,当前,我们见到的绝大部分汉化都是这样的,与我们在下一节将要谈到的“移植”完全不是一个概念,请务必注意区分这二者的不同意义

# 概述

以汉化补丁制作的汉化,制作的主要难点在于对原先的程序进行反汇编,以及对原文本进行替换的方式(拆解包替换 | 外挂替换),一旦搞定了这个问题,基本上汉化就没有障碍了

这种方式制作的汉化优势是体积小(不需要提供原文件)、风险小(原因同上)、制作周期短、100%原味的体验(因为不需要改动演出脚本)

缺点是如果原作不是跨平台的话(常见的跨平台 Galgame 引擎有 KiriKiri(吉里吉里)系列,ONScript(现在以及非常少见了)Unity(可以通过 mono 跨平台))那么汉化后的作品也只能在原先的平台上面运行

# 步骤

大概是:解包->解密->翻译、修图->封包->测试->发布

# 解包

无论是做汉化补丁还是做移植,解包基本上都是第一步要做的事情,通过解包,你可以拿到所有的素材文件(包括图片、音频、视频和脚本),为后面的翻译和修图做准备

解包的工具有很多,常见的通用工具有 GARbro 、 Crass 等、还有一些引擎专用工具比如吉里吉里引擎的 KrkrExtract 、BGI 引擎的 fxckBGI ,不同引擎的封包一般特征比较明显,这个网站 (opens new window)列出了常见引擎的封包格式,这个网站 (opens new window)提供了一些解包工具,GitHub 上,也有人整理了不同引擎的解包程序,见 Inori/FuckGalEngine (opens new window) ,通过这些工具,你应该能够拿到素材文件

# 解密

大概是这个过程中最难也是最关键的一步了吧,出于优化程序运行速度或者保护素材等原因,引擎开发商或者原作的程序员会把封包内的文件进行加密或者变换,导致解包出来的东西不可读,比如说解包后的东西完全打不开。

另外,还需要对程序进行修改,改变程序的编码(一般原始程序不会用Unicode,基本上都是日文编码Shift_JIS,这个编码显示中文会乱码,所以需要改成中文编码)

因为我对汇编语言和反编译不了解也不是很感兴趣,所以这里我给大家推荐一个大佬:Dir-A ,他的GitHub (opens new window) | 他的B站教程 (opens new window)

如果你对这个很感兴趣,那么请找 Dir-A 大佬学习,不用看我后面写关于移植的东西了

另外,也推荐 CROSS†CHANNEL (opens new window) 项目的教程,也是相当不错,具体请参考其“游戏破解教程” (opens new window)部分的内容

# 翻译、修图

把脚本发给翻译,把图片发给美工,OP做字幕……

不属于本文档要讨论的主要内容,也没什么要特别注意的地方

# 封包

可以说是解包的反向过程,把翻译和美工做好的东西打包起来。就像我在本文档站“解包”一节说过的那样,封包的意义在于

  • 防止玩家被剧透一脸
  • 方便引擎的读取,加速运行(有的引擎只能读取封包的文件,当然,我们的 Ren'Py 可以直接读原始文件)

# 测试

分程序的测试和文本的校对,程序的话最简单全面的方式还是找人工,也可以借助程序做 CI/CD 自动化,文本的话就我个人经验一定要另找一个人做校对(自己翻的东西看多了很难找出有问题的地方)

# 发布

同样不是本文档要讨论的主要内容

只给一个建议,准备一个大家都在用的下载渠道,和另一个高速的下载渠道