三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

日文游戏啃不动?这个Unity游戏自动翻译插件让“生肉“秒变“熟肉“

日文游戏啃不动?这个Unity游戏自动翻译插件让“生肉“秒变“熟肉“

日文游戏啃不动?这个Unity游戏自动翻译插件让"生肉"秒变"熟肉"

【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator

深夜十一点,你终于下好了那款心心念念的日系RPG。开屏CG很精美,配乐很对味……直到第一句对话弹出来,满屏的平假名、片假名糊了你一脸。查词典?一段对话能查十分钟。等汉化组?热门大作或许有盼头,冷门作品可能要等上一年半载。

这不是你一个人的困境,而是几乎所有Unity游戏玩家的共同遭遇。好在,有一款免费开源的Unity游戏自动翻译插件能当场破局——它叫XUnity.AutoTranslator。装上之后,游戏里的对话、菜单、技能描述会被实时翻译成中文,让你把精力放回"玩"本身,而不是"猜"上面。下面这份上手笔记,就是我把它装进游戏、调通配置、再一点点玩出花样的全过程,希望能让你少走几步弯路。

它凭什么能当你的随身翻译官?

先说个直观的画面:装上插件后,游戏还是那个游戏,但屏幕上的日文会在你眼前"变"成中文。它不像你一边玩一边切翻译软件那样笨拙,而是直接挂在游戏进程里干活——抓取游戏正要显示的文本,送去翻译服务,再把译文原样填回界面,整个过程几乎无缝。

这背后是三个层面的能力在支撑:

  • 认得出文本:它内置了对UGUI、NGUI、TextMeshPro、IMGUI、TextMesh、FairyGUI甚至Utage恋爱引擎等文本框架的识别能力。也就是说,不管文字是出现在菜单、对话框还是3D飘字里,它都有一双"看得见"的眼睛。部分框架默认是关着的,遇到特殊游戏再手动打开即可。
  • 翻译有门路:项目内置了十余种翻译引擎,从免注册的谷歌、必应、DeepL、Papago,到需要申请Key的百度、Yandex、Watson、Azure、谷歌云,甚至支持接入本地的ezTrans XP、LEC翻译软件。总有一款适合你的网络环境和钱包。
  • 懂得省着用:它自带一套"防骚扰"机制——同一段文本稳定1秒不再变化才发请求、同一时间只发一个请求、整个游戏会话最多发8000次、所有结果都缓存到内存和磁盘。翻译一次,下次直接命中缓存,既不浪费你的流量,也不至于把免费接口用到封号。

用一句话总结:它既是翻译,也是翻译的管理员,把"翻译什么、何时翻译、怎么不重复翻译"都替你安排好了。

XUnity.AutoTranslator怎么装?推荐BepInEx路线五步搞定

安装方式不止一种,但绝大多数人认准BepInEx就足够了——它是目前Unity游戏圈最主流的插件管理器,兼容性最好。前提是你的游戏已经装好了BepInEx本体,然后照着下面五步走:

  1. 获取XUnity.AutoTranslator的BepInEx版本安装包,解压到游戏根目录;
  2. 确认插件文件被正确放进了BepInEx/plugins/XUnity.AutoTranslator/目录;
  3. 正常启动游戏,插件会在首次运行时自动生成配置文件;
  4. 退出游戏,用记事本打开配置文件,把翻译目标改成你想要的语言;
  5. 再次启动游戏,进游戏里随便触发几句对话,验证效果。

如果你不想依赖任何插件管理器,也有独立方案:把ReiPatcher版本的安装包解压进游戏目录,运行随包附带的SetupReiPatcherAndAutoTranslator.exe,它会自动完成补丁配置,之后用生成的快捷方式启动游戏即可。另外,用MelonLoader、IPA、UnityInjector的同学也不用慌,项目都为它们准备了对应版本,安装思路大同小异:解压到对应目录,启动游戏,让它自己生成配置。

首次启动后生成的配置文件里,真正需要你动手的只有三行:

配置项作用推荐值
Endpoint选择用哪个翻译服务如 GoogleTranslate / DeepLTranslate
FromLanguage游戏原文是什么语言ja(日语)
Language翻译成什么语言zh(中文)

先把这三项设对,其余参数大可以保持默认,跑起来之后再慢慢调。

装完翻译不生效怎么办?先检查这三处

别急着怀疑插件坏了。多数"没反应"的情况,其实是下面三个原因之一:

  • 文本框架没开。有些游戏用的是默认关闭的框架(比如IMGUI、TextMesh)。遇到界面纹丝不动、但对话框有翻译的情况,就去配置里把对应框架的开关打开,比如EnableIMGUI=True
  • 翻译服务本身不可用。免费接口偶尔抽风是常态。你可以把Endpoint换成另一个引擎试试,或者用快捷键切换不同翻译器对比效果。
  • 文本根本没被挂钩。游戏里有些文字藏得深,自动挂钩抓不到。这时按下ALT+U手动触发一次挂钩,往往就能补救。

顺便把最常用的几个快捷键记下来,它们能让你的体验顺畅不少:

  • ALT+0:开关翻译器的调试UI界面
  • ALT+T:在译文和原文之间来回切换,对比效果
  • ALT+R:立即重载翻译文件,改完即生效
  • ALT+U:手动挂钩,解决漏译
  • ALT+F:在自定义字体和默认字体间切换(需先配置字体)

想让日语游戏翻译更自然?试试这三样"调味料"

跑通基础翻译只是第一步。用过一阵子你会发现,机器翻译总有几个词翻得让你皱眉。这时候,真正的乐趣才刚刚开始。

第一味:手动翻译文件。插件会把每次自动翻译的结果写进Translation\{语言}\Text\_AutoGeneratedTranslations.txt。你在里面把某句译文改成自己更满意的版本,保存后按ALT+R,游戏里立刻生效。日积月累,你就拥有一份专属于自己的"游戏词典"。更讲究一点的做法,是把词条复制到新的txt文件里手动维护,还能打包成zip让插件直接读取,方便分享给朋友。

第二味:正则表达式。游戏里像"物品+数字"这种固定格式的文本,逐条翻译太蠢。用一条正则就能批量搞定:以r:开头的行表示直接替换模式,比如r:"^シンプルリング ([0-9]+)$"=Simple Ring $1。还有更聪明的分割器正则(sr:),能把"编号+名字"这种拼接文本拆开分别翻译再拼回去。注意一点:正则别乱用,能不用就不用,否则会影响性能。

第三味:图片翻译。有些游戏的关键信息直接画在图片里,纯文本挂钩无能为力。这时可以开启纹理翻译:让插件把游戏里的贴图"倾倒"到Translation\{语言}\Texture目录,你用画图工具改好中文,再放回原位置,游戏里就会用你的图替换原图。它通过文件名里的哈希值来识别哪张图对应哪个资源,改完记得保留文件名中的哈希部分。

游戏卡顿、乱码、没反应?这些坑提前帮你填平

用到这儿,你基本已经是个熟练工了。最后再把我踩过的几个坑一次性倒给你:

  • 中文变方块?很多游戏自带的字体根本不含中文字形。解决方法是给插件指定一个中文字体:UGUI用OverrideFont,TextMeshPro优先用FallbackFontTextMeshPro指定回退字体,这样只补缺字,不至于全局替换。
  • 游戏变卡了?先看看是不是开了EnableTextureDumpingEnableTextureScanOnSceneLoad——这两个开关是给翻译制作期用的,性能开销不小,日常游玩建议关掉。如果是一般卡顿,试试调低MaxCharactersPerTranslation,或者关闭EnableUIResizing让插件少做点UI调整。
  • 翻完游戏逻辑错乱?少数游戏会读取屏幕上的文本来决定剧情走向,译文会导致它"看不懂"。此时把TextGetterCompatibilityMode设为True,插件会在游戏读取文本时"装回"原文,逻辑就正常了。
  • IL2CPP游戏?这类游戏需要专门的IL2CPP版本插件,且功能支持还不完整,个别文字可能要手动刷新才能翻出来,请做好心理准备再上手。
  • 想用付费服务?选之前先确认该引擎支持你要的语言对,并且务必保管好API Key——泄露了就立刻去官网吊销。顺便说一句,插件虽然努力省请求,但不会为你的账单兜底,用量心里要有数。

写在最后:别让语言成为游戏的边界

还记得开头那个对着满屏日文发呆的深夜吗?装上XUnity.AutoTranslator之后,同样的场景会变成:对话自动换成中文,物品名一眼看懂,剧情再也不用靠猜。它免费、开源、适配绝大多数Unity游戏,从解压到玩上,用不了十分钟。

所以别犹豫了——选一款你吃灰已久的"生肉"游戏,照着上面的路子装上试试。第一次看到日文对话在眼前变成中文的那一刻,你会觉得这一切都值得。愿语言不再是障碍,愿你从此只负责享受游戏本身。

【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表