❖ 前言

本人是纯文科生,编程基础约等于0,所以汉化出来的游戏都没有太大的难度。
写这篇文章是希望为同样没有编程基础的同好们提供我个人的经验,
很多游戏的汉化流程都大同小异,
希望能为同好们迈出汉化的第一步提供一些方向。

请注意:
不论有多粗略,请务必进行二次校对,至少对术语进行统一,不要折磨你的同好。
同时注意标注为AI汉化/机翻汉化。

解包、未授权的汉化都是侵权行为。
本文仅供学习交流,如有需要请发邮件至flamecho@qq.com,在一封邮件内详细描述问题。
在页面下方评论也可以。
如果有过于简略看不懂的地方也可以发邮件,会抽时间做图文教程。
这个教程里没有图纯是因为懒得搞的,都不知道有无人看


❖ 关于本文

本文以游戏引擎为划分,对游戏汉化中所使用的工具及参考的教程进行列出,请自行下载及查阅。
汉化过程会写的很简略,如有不能理解的地方,请查阅文中提供的教程链接。
如有需要请随意把我做的汉化补丁拆了作参考,点击即可下载。

所有蓝色的字都是链接。


❖ 工具下载

以下为本文中使用的部分工具:
xp3_upk.exe(密码di6k)
VNTranslationTools.rar
rpaExtract.exe(密码af1q)
GARbro-Mod-1.0.1.2.rar
WinAsar.exe(密码5vt6)
dirOpener300-850-1-PC.zip
DirectorCastRipper_D10.zip
DirectorCastRipper_D12.zip
Light.vnTools-v1.2.0-net7.zip
Light.vnTools-v1.2.0-net8.zip
NS 296 1.04.GBK.exe(密码1u8f)
脚本打包.exe(密码fhwe)
nsaout.rar
资源封装NSA.exe(密码:d5dy)
NSDEC.rar


❖ Kirikiri

简称krkr。
包括krkr、krkr2、krkrz这三个版本,汉化方式一致,特征为文件后缀为xp3。

大秽

引擎为KrkrZ。

【解包】
使用xp3_upk,将data.xp3拖到xp3_upk.exe上,在同目录出现名为data的文件夹即为游戏文件。
xp3_upk.exe(密码di6k)


【提取文本】
大秽的文本在data\scenario。
使用Translator++会出现汉化文本导入不全的问题,因此使用VNTranslationTools。
VNTranslationTools.rar
使用方式参考B站@五娼会会长:Krkrz游戏汉化全流程中的第五步,提取出json格式的文本。


【汉化】
使用AiNiee对文本进行AI翻译。
AiNiee:一款专注于Ai翻译的工具
翻译设置选择【VNText导出文件】,使用方式参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏中的AiNiee设置部分。
翻译完用VNTranslationTools将json格式的翻译文本改为ks格式的剧本文件。


【制作补丁】
如有署名需求,游戏标题的修改位置:data\system\Config.tjs
;System.title = “游戏标题”;

有两种汉化发布方式。
1.新建一个名为patch的文件夹,将所有修改后的文件放进去(文件夹中不要有其他文件夹,所有文件都是直接放在patch文件夹内),将patch文件夹拖到xp3_upk上,同目录生成patch.xp3。
分发patch.xp3即可。
2.如要将汉化补丁封包入exe中,使用Enigma Virtual Box。
Enigma Virtual Box官网:下载Enigma文件打包工具
上方language修改软件语言为中文,选择【待封包的主程】和【封包程序另存】后,点一下下方【Virtual Box Files】的字样,将patch文件夹拖到下方一片空白的地方,选【%DEFAULT FOLDER%】,最后选【执行封包】。
分发修改后的exe即可。

[AI汉化补丁]大秽-前篇- 未校对补丁+全开存档+攻略[v0.95 修改汉化声明].rar

Cocoon

引擎为Krkr。

【解包】
资源文件被封装进了exe中,无法使用xp3_upk解包,因此使用GARbro对exe进行解包。
使用方法请看本文【YU-RIS】章节的【未成之缘 なりそこないのよすが】的解包部分。
解密方法选【海と雪のシアンブルー】。


【汉化-1】
使用Translator++和Ainiee进行文本提取和翻译。
流程可以参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏,最开始选【Kirikiri Adventure Game】。
做到把翻译好的游戏文件导出到文件夹那一步就可以了。


【汉化-2】
但这种方式有个问题:人名并没有被提取出来。
所以在将翻译好的游戏文件导出到文件夹之后,要对游戏文本中的人名部分进行进一步的修改。
使用notepad++来进行同一文件夹内所有文本的批量替换。
CSDN@° 安如少年初如梦662:最新版Notepad++ 下载与安装教程
百度经验@书香驿站:用Notepad++批量修改替换多个文件内容
krkr的人名表示方法:[名前 n=”名字”]


【制作补丁】
这个游戏已经发布了两个补丁(patch1.xp3、patch2.xp3),
而krkr的补丁读取顺序是【如果多个补丁中存在相同名字的文件,则优先读取数字更大的补丁中的该文件】。

因此与大秽略不同的、该游戏补丁的制作方式为:
新建一个名为patch3的文件夹,将所有修改后的文件放进去(文件夹中不要有其他文件夹,所有文件都是直接放在patch3文件夹内),将patch3文件夹拖到xp3_upk上,同目录生成patch3.xp3。
分发patch3.xp3即可。
xp3_upk.exe(密码di6k)

[AI汉化补丁]Cocoon-コクーン-.rar

Cocoon -Black Noise-

引擎为Krkr。

【解包】
使用xp3_upk,将data.xp3拖到xp3_upk.exe上,在同目录出现名为data的文件夹即为游戏文件。
xp3_upk.exe(密码di6k)


【汉化】
使用Translator++和Ainiee进行文本提取和翻译。
流程可以参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏,最开始选【Kirikiri Adventure Game】。
做到把翻译好的游戏文件导出到文件夹那一步就可以了。


【制作补丁】
如有修改游戏标题的需求,需修改data\system\Config.tjs第17行System.title。
此文件如果打开来是乱码,请使用notepad++或任意编辑器修改编码为UTF-16LE。
如果修改后游戏报错,则在修改标题时不要使用简体中文。

新建一个名为patch的文件夹,将所有修改后的文件放进去(文件夹中不要有其他文件夹,所有文件都是直接放在patch文件夹内),将patch文件夹拖到xp3_upk上,同目录生成patch.xp3。
分发patch.xp3即可。

[AI汉化补丁]Cocoon -Black Noise-.rar

汉化方式同上的游戏

ソレノナ
ソレノナ-And to End-
Voice
Voice -Be Quite in the Dark-
メランコリック・ドリィムタワー

TIPS

【导入T++后,汉化文本里有\
删了就行,不会报错。


【导入T++后,汉化文本里有\n
全文替换为[r]。


【从T++导出后游戏文本乱码或缺字】
Reading Character encoding填shift-jis, utf-16, utf-16le, utf-8
Write Character encoding选UTF-16LE


【ruby text在报错】
中间空格没了,把rubytext替换为ruby text。


❖ Ren’Py

特征为文件后缀为rpa、rpy。
这个引擎的游戏的UI基本都是可修改的文字,大大减少了修图的工作量。
但如果使用Translator++进行文本提取的话会有大量代码也被提取出来,
进而如果把代码翻译了就会疯狂报错。
建议要么在excel阶段把所有代码以及只有全小写的单词的行都删掉,
要么翻译后在Translator++把所有疑似代码的行都tag为红色并不导出。

新版本的Ainiee的代码救星插件解决了这个问题。

Dreambound

【解包】
资源文件在game\archive.rpa
使用rpaExtract,将archive.rpa和rpaExtract.exe放在较短的全英文路径的同一文件夹中,将archive.rpa拖到rpaExtract.exe上等待即可。
rpaExtract.exe(密码af1q)


【汉化】
使用Translator++和Ainiee进行文本提取和翻译。
流程可以完全参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏


【需调整的文件位置】
game\chapters  #剧本文件
game\script.rpy  #人名
game\chapter_screen.rpy  #章节名
game\gui.rpy  #字体 建议直接把你想使用的字体的文件名改为游戏使用的字体的文件名,覆盖掉原字体


【制作补丁】
保持目录结构一致,直接覆盖游戏原文件。
修改后的后缀为rpy的文件,放在archive.rpa同一文件夹中。
可以参考我制作的该汉化补丁的结构。

[AI汉化补丁]Dreambound.rar


❖ TyranoScript

这个引擎做的游戏的默认图标是个恐龙玩偶外套的女孩(男孩?)。
存档后缀是.sav,通常游戏资源全都封装在了exe里导致exe特别大。
解包方式也很粗暴,把exe后缀改为zip,解压就可以了。
但总有意外之时,比如PSYCHIC ECLIPSE
解压之后会有个叫tyrano的文件夹。

powdergray

【解包】
exe后缀改为zip,用winrar(或任意能解压zip的软件)解压。


【汉化】
使用Translator++和Ainiee进行文本提取和翻译。
流程可以参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏,最开始选【TyranoScript Game】。
做到把翻译好的游戏文件导出到文件夹那一步就可以了。


【制作补丁】
使用Translator++导出游戏文件的话,正常来说是会按正确的目录结构来导出的。
你也可以把exe解包了看看他里面的目录结构是什么样的,把文件按结构放好。
然后查看data\system\Config.tjs中的projectID。
将游戏文件压缩为zip,压缩时命名为projectID.zip,压缩后重命名为projectID.tpatch。(这里都是之前查到的projectID)
分发这个tpatch即可,使用方法为放在exe同路径下。
*TyranoScript的tpatch原理是,在打完补丁后初次打开游戏时会解压tpatch内的文件覆盖到exe中的游戏文件上,所以要保持与exe中目录结构一致。

[AI汉化补丁]powdergray.rar

神之棺 かみさまの棺

跟powdergray同作者,各方面都一模一样,甚至projectID都一样,这你都不改?
请参考powdergray的流程。

[AI汉化补丁]神之棺 かみさまの棺.rar

PSYCHIC ECLIPSE -心灵侵蚀-

【解包】
资源文件在resources\app.asar
使用WinAsar,左侧点【Extract】,右上角点【Open】选择要解包的【app.asar】,
下方选【Extract】,等待读条结束。
在app.asar同文件夹会出现名为【app.asar.unpack】的文件夹,里面即为游戏文件。
WinAsar.exe(密码5vt6)


【汉化】
使用Translator++和Ainiee进行文本提取和翻译。
流程可以参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏,最开始选【TyranoScript Game】。
做到把翻译好的游戏文件导出到文件夹那一步就可以了。


【制作补丁】
在查阅下方文字前,请先把下方提供的汉化补丁下载并解压(tpatch后缀改为zip后解压),以便于理解这个汉化补丁的结构以及各个文件都是怎么来的。
我上网查了很久也没找到这个游戏补丁应该是什么结构,硬试出来的
如果汉化后发现角色都哑巴了,记得所有剧本文件中的vrepeat name也需要修改为中文人名。

data\image\button  #选项,这游戏的选项都是图片,需要ps汉化
data\others  #引入的外部字体
data\scenario  #Translator++导出的汉化剧本文件
data\scenario\first.ks  #第5行 title name可修改游戏标题
data\system\Config.tjs  #第72行 userFace修改为引入的外部字体名;记录下第6行projectID
tyrano\css\font.css  #第16-25行 引入外部字体样式

将data和tyrano两个文件一起压缩为zip,压缩时命名为projectID.zip,压缩后重命名为projectID.tpatch。(这里都是之前查到的projectID)
分发这个tpatch即可,使用方法为放在exe同路径下。

[AI汉化补丁]PSYCHIC ECLIPSE -心灵侵蚀-.rar


❖ YU-RIS

未成之缘 なりそこないのよすが

【解包】
使用GARbro,资源文件在pac文件夹中,选【尝试猜测】即可。
使用教程:B站@风于落叶:GARbro使用教程及诸多解包/打包工具包。
GARbro-Mod-1.0.1.2.rar


【汉化】
使用Translator++和Ainiee进行文本提取和翻译。
流程可以参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏,最开始选【YU-RIS engine translator】。这个插件需要在Translator++的【选项-插件】中安装。
这种汉化方式可以避免编程,坏处是无法给文本换行,但能汉化已经算是赢。
这一步做到文本汉化结束为止,不需要导出游戏文件到文件夹中。


【制作补丁】
给所有疑似人名而非对话的行都Tag为红色。
点击Translator++上方【Inject/apply all translation】。
【请选择需要应用的列】选择游戏原版的文件夹。
【将会在该位置生成注入翻译之后的游戏的副本】选择汉化补丁想要放在的位置。(建个空文件夹)
【复制原文件】选择【Do not copy materials, inject translation only】。
【标记】点亮红色,选择【Do not process row with selected tag (black list)】。
【Bulid option】选择【Repack into origin YPF file(s)】。
点击【应用翻译】。
在之前选择的汉化补丁想要放在的位置会生成一些文件,这些即为汉化补丁,分发即可。

[AI汉化补丁]未成之缘 なりそこないのよすが.rar


❖ Macromedia Director

只有解包教程。

好きなものは好きだからしょうがない!! FIRST LIMIT

【解包】
使用DirectorCastRipper,使用教程见该项目的Github说明。
CG、BGM、剧本都在DATA\CAST下,把想解包的cxt文件拖到DirectorCastRipper上即可。
DirectorCastRipper_D10.zip
DirectorCastRipper_D12.zip

【思考汉化方式时找到的工具】
虽然最后没用上,因为文本换行问题,机翻有点耗时,就放弃了。
但是想到了别的汉化方式,所以也不算完全无功。

dirOpener,这是一个将受保护的cxt等文件转换为可使用Macromedia Director编辑的cst等文件的软件。
在使用时需要将想转换的文件和dirOpener放在同一目录下,将想转换的文件拖到dirOpener上即可。
dirOpener300-850-1-PC.zip


❖ NScripter

CAGE-CLOSE-

机翻完了没空校对,来记录一下过程。

【解包】
使用GARbro,资源文件在arc.nsa中。
使用教程:B站@风于落叶:GARbro使用教程及诸多解包/打包工具包。
GARbro-Mod-1.0.1.2.rar


【汉化】
文本在nscript.dat。
nscripter-1将nscript.dat和NSDEC.exe放在同一文件夹内,将nscript.dat拖到NSDEC.exe上,生成result.txt。
NSDEC.rar
nscripter-2在notepad++新建一个txt,编码改为GB2312,将result.txt内的所有内容复制到新建的txt里,将新建的txt保存并命名为0.txt。
nscripter-3新建一个xlsx表格,将0.txt中的所有内容复制到xlsx第一列。
如果粘贴时出现分成两列的情况,参考以下步骤:
1.选中一个带有值的单元格。
2.选择数据> 分列,选择分隔符号。
3.去掉所有分隔符号前面的勾。
4.点击完成。 然后粘贴数据。
第一行A1填写Original Text,B1填写Initial,然后使用Ainiee翻译,格式选择T++导出文本,记得勾选代码救星插件。
nscripter-4第一列是原文,第二列是Ainiee翻译的文本,为了合并两列的代码和汉化文本,在C1填写=IF(AND(A1=””, B1=””), “”, IF(B1=””, A1, B1))然后下拉填充到最后一行,将C列的所有文本(第一行除外)复制粘贴到0.txt的对应部分,实现文本汉化。

注意把汉化文本中所有的半角字符、数字都改为全角字符,否则会报错。


【制作补丁】
有两种制作补丁的方式。

1.分发0.txt和NS 296 1.04.GBK.exe:0.txt可以直接放在游戏文件夹内,但需要删除原本的nscript.dat,然后使用NS 296 1.04.GBK.exe启动游戏。这个exe可以重命名。

2.分发汉化版nscript.dat和NS 296 1.04.GBK.exe:能让玩家直接替换总比让玩家自己删文件要容易很多。使用脚本打包.exe将0.txt转换为nscript.dat,软件内有引导。

NS 296 1.04.GBK.exe(密码1u8f)
脚本打包.exe(密码fhwe)


【备注】
我不打算进行图片的汉化,但还是有必要说明一下如何进行这一步。
使用nsaout进行arc.nsa的提取,将arc.nsa和nsaout.exe放在同一文件夹内,将arc.nsa拖到nsaout.exe上,生成arc文件夹。
nsaout.rar
修改图片后,用资源封装NSA.exe将arc文件夹封装为arc.nsa。
资源封装NSA.exe(密码:d5dy)


❖ Light.vn

Lost Friends3 -Never returN-

【解包】
资源文件在Data文件夹下的一堆vndat文件里。
使用Light.vnTools,将vndat文件拖到LightvnTools.exe上,在游戏文件夹同路径出现解包文件夹。
记得事先安装.NET 7.0 SDK.NET 8.0 SDK,不同版本的SDK需要使用对应版本的Light.vnTools。
Light.vnTools-v1.2.0-net7.zip
Light.vnTools-v1.2.0-net8.zip

data001  #BGM
data002  #字体
data003  #图片
data004  #视频
data005  #剧本
data006  #音效


【汉化】
用notepad++打开data005.vndat里的txt,修改为UTF-8编码不然就会乱码,然后对文本进行汉化,机翻汉化的流程可参考NScripter章节的CAGE-CLOSE-,大概流程是新建一个xlsx表格,将所有文本粘贴到第一列,第一行A1填写Original Text,B1填写Initial,然后使用Ainiee翻译,格式选择T++导出文本,机翻完参考CAGE-CLOSE-教程导入文本的那一步,文本导入完成就结束了。


【制作补丁】
有两种制作补丁的方式。

1.把包含修改过的文件注意这里只能是Data文件夹内的修改过的文件,如果要修改Config文件夹内的文件,则要直接覆盖,而不是压缩在补丁里,详见下方提供的补丁的data005文件夹和data005.vndat放在同一目录下,把data005文件夹拖到LightvnTools.exe上,分发新生成的data005.vndat。

2.把任意一个vndat文件重命名为Patch.vndat,把修改过的文件按照目录结构放在一个名为Patch的文件夹内,将Patch.vndat和Patch文件夹放在同一目录下,把Patch文件夹拖到LightvnTools.exe上,分发新生成的Patch.vndat。
这里的目录结构意思是,比方说data005.vndat的文件结构是data005\Scripts\xx.txt,那么Patch文件夹则是Patch\Scripts\xx.txt。

[AI汉化补丁]LostFriends3.rar


❖ AIRNovel

一个基于Adobe Air的游戏引擎,因此要游玩这个引擎制作的游戏需要先安装Adobe Air。

Re;quartz

【解包】
不知道是这引擎不能封包,还是这游戏就是没封包,总之所有资源都在明面上,不需要拆。


【汉化】
用notepad++打开scenario文件夹里的an后缀的文本。
因为我想使用ainiee的代码救星插件,所以将文本粘贴到excel中伪装成T++导出文本。
具体参考本文NScripter章节中的汉化部分,机翻完把excel中的文本粘贴回an后缀的文件,然后放回scenario文件夹。
修改图片方面直接去对应文件夹找图片P图。


【制作补丁】
把修改过的文件直接分发出去,替换即可。


❖ System-NNN

cyc社常用的游戏引擎。

薔薇ノ木ニ薔薇ノ花咲ク

【解包】
使用GARbro,资源文件各个文件夹中,dwq是图片,vaw是音乐。
使用教程:B站@风于落叶:GARbro使用教程及诸多解包/打包工具包。
GARbro-Mod-1.0.1.2.rar


【提取文本】
使用VNTranslationTools。
VNTranslationTools.rar
使用方式参考B站@五娼会会长:Krkrz游戏汉化全流程中的第五步,提取出json格式的文本。


【汉化-1】
使用AiNiee对文本进行AI翻译。
AiNiee:一款专注于Ai翻译的工具
翻译设置选择【VNText导出文件】,使用方式参考B站@TJJtjj:用AiNiee+ChatGPT翻译renpy游戏中的AiNiee设置部分。
翻译完用VNTranslationTools将json格式的翻译文本改为spt格式的剧本文件。


【汉化-2】
导入游戏后会发现汉字不能正常显示,需要打上VNTranslationTools提供的字体补丁。
将导出spt文件时一同生成的sjis_ext.bin放在与游戏exe同目录下。
然后打开VNTranslationTools文件夹,将VNTextProxy文件夹中的dll依次放入游戏exe同目录下,测试哪个dll能使文本正常显示。


【汉化-3】
文本正常显示后发现对话框里的文本会出现在人名框中。
发现这个问题仅出现在旁白,即json文件中没有name一行的文本中。
使用notepad++进行批量替换,在这种行上添加”name”: “ “注意双引号里有个空格,让不存在人名的旁白行也能给人名框留出一行位置,如下图。
nnn修改后再次用VNTranslationTools将json格式的翻译文本改为spt格式的剧本文件。


【制作补丁】
分发修改的spt等文件,sjis_ext.bin,可以正常显示文本的dll。