几乎无门槛的Unity解包汉化教程
疯狂の柠檬君Crom
编辑于 2025年05月10日 19:31

本文算是我自己经过摸索的一个总结吧,与其说是教程不如说是汇总,所以会有较多的外部链接,都是我找到的有用的资料,因为字数限制,所以我觉得别人能讲清楚的就直接贴链接了,不再赘述。

Unity文本汉化教程

1、Unity插件

1.1 Unity插件汉化教程

简单来说就是手动游玩游戏,游戏过程中见到的文本都会被提取出来存进文本文档中,直接修改文本文档即可

优点:提取文本较便捷,修改方便,省去繁琐的解包封包工作;操作简单,门槛低

缺点:部分文本无法通过该方法汉化,需要配合内核解包;因为需要手动游玩一遍游戏,可能会漏翻,需要反复校对

下载地址(需要梯子):https://github.com/bbepis/XUnity.AutoTranslator/releases

本教程安装的是ReiPatcher,安装比较便捷,且无需连梯子

另外一个常见的版本是BeplnEx,需要连github,我连不上所以没用这个,它的优势是有各种版本兼容各种框架,比如IL2CPP加密游戏

IL2CPP加密游戏意思就是游戏被加密过了,一些大作会使用这个加密(例如圣骑士莉卡),用本教程安装的ReiPatcher和解包汉化都不好汉化,只能用Beplnex的对应版本才能汉化,分辨的方法就是看游戏目录data文件夹里面有没有带IL2CPP字段的文件夹

所以发现插件汉化或者解包汉化不成功的可以检查下游戏是否是ILC2PP加密的

这边给一个Beplnex(ILC2PP版)的安装教程:网页链接​

言归正传,开始ReiPatcher的安装和汉化教程

第一步:将SetupReiPatcherAndAutoTranslator.exe拖入需要汉化的游戏目录,打开并安装,出现游戏启动项(Patch and Run)并出现下面界面就表示插件安装成功         

                                 

第二步:打开游戏启动项(Patch and Run),按照视频教程进行调试

视频教程:网页链接​

如果在AutoGeneratedTranslations.txt这个文件里能够提取到文本,并且修改“=”右边的机翻能够修改游戏内文本内容,且没有出现方块字等问题,那就大功告成了

第三步:打开游戏,按alt+0打开插件界面

该插件的界面解释(只是贴一下,用不着全了解):https://tieba.baidu.com/p/7727548764?see_lz=1

把translator和fallback改成如图所示passthrough,这意思就是不机翻,直接提取原文,毕竟我们要人工翻译,不需要机翻,而且机翻还得等加载,提取文本效率比较低,当然你想要机翻的话这步就不用做了

第四步:替换字体

替换字体是非常重要的一环,否则翻完了发现字体全是口显示不出来就尴尬了

之前的视频教程已经有说如何换字体了,大部分游戏这样就可以解决口或者大小字的问题,但还是有游戏替换字体不生效,或者你想要换个更好看的字体,那就继续钻研吧

这边是插件汉化的替换字体教程,解包汉化替换字体教程在下文会讲

首先你要判断这个游戏是支持ttf格式还是tmp格式的字体,最佳方法就是都试一下看看生不生效,或者打开AutoTranslator文件夹里的config.ini,查找EnableConsole,把False改成True,你就能在启动游戏的时候看到这游戏支持什么字体了

(1)ttf字体后缀是ttf,常见的字体格式就是ttf格式,你去网上下载或者直接去系统字体里复制黑体宋体啥的都行,方法还是一样,把ttf字体放到游戏目录,把config.ini里的OverrideFont=加上字体名字即可 

参考文献:XUnity.AutoTranslator插件的补充说明(内嵌ttf参数及效果) - 哔哩哔哩 (bilibili.com)​

(2)tmp格式比较少见,你可以直接用现成的tmp字体,把字体文件放在游戏目录,然后把config.ini里OverrideFontTextMeshPro=加上字体名字即可

(3)如果你想要自己选心仪的字体来做tmp字体的话会非常非常麻烦,需要使用unity将ttf格式字体改为tmp字体,不赘述了,直接上链接:XUnity.AutoTranslator的TMP字体文件创造 - 哔哩哔哩 (bilibili.com)​

五步:开始提取文本,需要从头到尾玩一遍游戏,且不能快进(起码等到一句话的文本完全显示,不然可能导致提取不全)

个人建议玩一段时间就对提取文本分一次类,比如玩一章就分一次标注一下,方便后续的翻译和校对工作,玩一段剧情,关闭游戏,标注一下这段剧情的内容,例图如下

游戏界面也可以按照这样去分类

第六步:提取完所有文本后,开始翻译,修改“=”右边的内容即可,建议不要使用系统自带的文本文档进行文本修改工作(因为撤销只能撤销一次),个人建议使用Sublime Text等软件,还有善用查找等功能,翻译完之后就大功告成了。

注意!修改文本只修改日语文字,不要改英文标签,除非你需要改动文字大小颜色等

例如/n、/r、

1.2 文本重复提取的解决方法

汉化过程中可能会遇到重复提取的问题,

第一种情况,数字统计类文本,比如每次存一次档就会提取一次文本,或者游戏统计次数界面,数字每次变化都会提取一次文本

第二种情况,一段话会被一个个字地提取出来,比如“我爱你”会被这样提取

“我”=“我”

“我爱”=“我爱”

“我爱你”=“我爱你”

原因是因为这些文本会随着游戏进程而改变,才导致这种情况的发生

泛用的解决方法就是解包汉化,把日文改成中文就不会重复提取了,解包汉化教程下文会讲

首先是解决第一种情况的一个无需解包汉化、较简便的方法——正则表达式

因为这插件是可以用编程语言的,所以懂编程的人可以设置各种规则来更准确地提取文本,去解决这个情况

不过因为这是几乎无门槛的教程,而且我自己也没编程知识,就简单解释一下(可能从编程角度有错误大伙多多包涵),不懂也可以直接抄这个配置

游戏统计次数范例

游戏统计次数界面配置如上,r:“^       $”表示提取除了小括号之内的文本,也就是除了数字之外的固定文本;([0-9])表示匹配0-9的数字;+代表匹配数字会进行多次来匹配多位数;$1表示第一个小括号内的匹配结果,也就是匹配数字这个变量,有多个小括号就可以用$2$3$4……来表示

有小数点的游戏统计次数范例

同理,有小数点的话,就加个[.]小数点符号,然后在小数点后再来个[0-9]+的匹配来匹配小数点后的数字即可

存档界面范例

存档界面复杂一些,sr:“^       $”同r:“^       $”,表示提取除了小括号之内的文本,(LEVEL:)对应后面的$1,固定文本可以用这个形式表示;([0-9]+)对应后面的$2,也就是数字变量;(.+)就是下面这一长串翻译(相当于下面这一长串翻译的代称),对应后面的$3

翻译结果就是这样啦

然后是解决第二种情况的方法,造成这样的原因是文本显示设置成了打字机式显示

所以解决方法其实很简单,如果游戏本身设置里能改变文本显示方式就给它改成非打字机式显示就行了

设置里没有的话就没办法了,只能先提取出来,如果有人名的话先固定好人名翻译,比如“主人公=Protagonist”,然后留下最长的句子并翻译,其它重复提取的句子全都删掉,就会正常显示翻译了

 

2、Unity解包汉化教程

上述的方法虽然能提取并汉化大部分的文本,但仍有部分文本用这个方法无法汉化,例如存档界面等一些随着游戏进程会改变的文本,那就只能用内核解包汉化的方法了

注意,解包汉化无法解包ILC2PP加密的游戏

这个方法非常麻烦,我个人觉得能用插件汉化就用插件算了,这个方法只是插件汉化的补充,可以翻译插件无法翻译的文本

因为解包软件基本没有更新,已经无法跟上unity游戏更新的脚步了,所以unity游戏越新越可能出现各种各样的问题,就一边继续教程一边讲问题的解决方案

需要软件:AssetStudio、UABEA、dnSpy、UnityEX

解包千万条,备份第一条,备份不认真,出错两行泪!

解包千万条,备份第一条,备份不认真,出错两行泪!

解包千万条,备份第一条,备份不认真,出错两行泪!

解包以及替换前一定要备份一下原文件,否则一旦出错就得重新导入导出!

2.1 Unity解包汉化教程(替换字体、图片操作都大差不差,建议在正式进行汉化工作前先进行替换字体的工作)

第一步:打开AssetStudio,选择File-Load Folder

第二步:选择Data文件

这个文件点进去一般长这样

可能出现的问题:没有图上的文件,只有一个data.unity3d的文件

解决方案:把这个文件用assetstudio选择全部导出(Export-All assets),然后把导出后的文件放回原处,把data.unity3d删除即可

第三步:打开并加载完成后,选择Asset List,之后选择Filter Type

可能出现的问题:

1、加载时间过长

解决方案:硬等,或者不选择LoadFolder打开整个文件夹,而是选择LoadFile打开单个文件,一个个文件去解包(但这样会增加寻找文本的工作量)

2、不停报错

解决方案:一直点确定,可以强行载入,基本不影响文本的展示(可以拿个东西压住回车来确定,不过要先保证没选中文件,不然就会疯狂打开那个文件)

文本一般在MonoBehavior、TextAsset和Texture2D里面

MonoBehavior一般是碎片化的文本,也有许多跟游戏文本无关的文件,需要搜索进行筛选(常用搜索词:text、list、item、enemy、npc、event、list等等,这个完全取决于游戏作者给取的名)

TextAsset一般是大段落的文本,基本上剧情文本都在这里

Texture2D是图片类型的文本,这个解包方法之后再讲

Tips:如何让Monobehavior类型文件正确显示文本

点击monobehavior类型文件

正常显示的文本如下图(不同游戏文本格式不一致,这个仅供参考)

注意,mono类型文件不一定会有文本

第四步:我选择了Filter Type-Texture2D,并选择了opening001这个文件作为示例,首先可以记下该文件的PathID和Size,之后选中该文件并右键,选择Show original file

 

弹出下列文件夹,resources.assets即为opening001的源文件

 

第五步:关闭AssetStudio,打开UEBEA

选择File-Open,并选中之前的源文件resources-assets

打开后,点击View-Search by name,并输入文件名opening001

找到了opening001,不放心的话下面滚动条往右拉,可以看到PathID和size,和之前记下来的数据比对

第六步:选择右边栏的Export Dump来导出文本文件,弹出如下弹窗,随便保存在一个你找得到的地方

第七步:打开导出来的文本文档文件,在里面修改文本,我这个是已经汉化完的作品,就将第一句改成了西诱记西诱记西诱记作为示范,改完后保存

重要的事情说两遍!修改文本只修改日语文字,不要改英文标签,除非你需要改动文字大小颜色等

例如/n、/r、

 

第八步:名字删去与原文件不同的部分,这里将名字删为opening001

第九步:UEBEA,右边栏选择Import Dump,文件弹窗选择刚改好的那个文件,进行导入

第十步:成功导入完之后的文件右边会带*号,点击File-Save保存

打开游戏,成功汉化文本

2.2  uabea批量导入导出

批量导出:

批量导入:

成功导入后文件右边会带*号,点击File-Save保存

2.3  Dnspy解包汉化

可能部分游戏文本并没有在asset文件中,而是藏在了Assembly-CSharp.dll这个文件中,这就需要使用dnSpy进行解包了

第一步:打开dnSpy,选择文件-打开,选择Data-Managed-Assembly-CSharp.dll

第二步:右边搜索选择数字/字符串,所选文件,并输入需要翻译的日文原文(其中一个字即可),我这里因为是已经汉化完的就输入了中文,看到出现了两条橙色的项目

点进去如图所示,之后随便选一行字点击鼠标右键,点击编辑IL指令

出现这个窗口,在这个窗口修改文本即可(注意这个界面没有撤销按钮,小心修改!),一般你搜一条文本,这个文本相关的文本都是在这个界面里可以一起修改的,比如回想房间,你搜一条,这个回想房间的界面文本基本都会在这一页,修改完之后点击下面的确定即可完成修改

之后选择第二个橙色条目,重复该过程,然后搜索新的字,重复该过程,直到全部汉化完

第三步:全部汉化完之后,选择文件-保存模块,覆盖原文件即可(记得备份原文件)

这样就完成了Assembly-CSharp.dll里面文本的解包汉化

2.4  Unity字体解包替换教程

之前也说了,解包软件跟不上unity版本,所以通过解包来替换字体很难奏效,最好还是使用插件进行字体替换

方法1:https://tieba.baidu.com/p/7374350933(老游戏可用)

方法2(无需unity,不一定管用):

1、原字体为a字体,要替换的字体为b字体,用uabea选择export dump导出a字体的txt文件 2、找一个已经替换b字体的游戏,用uabea选择export dump导出b字体的txt文件 3、将a字体和b字体的txt文件打开(用文本文档会卡死,推荐用sublimetext),把b字体文件前面几行的那些参数(字体名字、pathid之类的)修改成和a字体文件中的一致,最后面的几行参数也改一下(字体宽度、位置之类的) 4、把b字体文件的名字重命名成a字体文件的名字 5、把修改后的b字体文件用uabea导入回a字体原先的地方,保存

方法3:网页链接​

其实就是创造tmp字体+解包导入的结合

2.5、Unity图片替换教程

因为有些文本是图片类型的文本,所以需要单独提取出来进行汉化

第一步:打开AssetStudioGUI,选择文件类型为Texture2D,找到自己需要的图片文本,寻找源文件后用UABEA打开,之后选择右侧的Plugins,选择Export texture,即可导出图片

第二步:用ps修改图片,也就是嵌字,至于怎么嵌字这里就不阐述了,网上教程很多可以自行查阅

注意:修改后的文本尽量在原文本的所处区域之内,不然可能会消失

(我这里UABEA有时会抽风提取不出图片,下面用旧版本的UABE进行操作,操作是一样的,如果碰到了提取不出图片、导入图片后没有反应,或者点plugins就没有界面的,建议和我一样试一下旧版本的UABE或者下载最新版本的UABEA)

第三步:再打开UABE,点击右侧的Plugins,点击Edit,在弹出来的界面点击Load,选中p完图汉化过后的图片,就完成了图片导入,保存退出即可。

2.6 Unity游戏去码教程https://www.bilibili.com/read/cv14476957/​

完结撒花✿✿(°▽°)ノ

这些资料和操作方法都是我从头一点点摸索和查阅出来的,希望能对你有帮助