6步搞定Unity游戏翻译:免费插件上手全攻略
6步搞定Unity游戏翻译免费插件上手全攻略【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator这篇攻略的主角是 XUnity.AutoTranslator——一个能直接嵌进 Unity 游戏运行时、把界面和对话实时翻译成中文的免费开源插件。它不依赖截图、不需要切换窗口装好配置完游戏里显示的每一句文本都会就地变成中文。下面先从一次真实的安装经历讲起再逐步带你走完从下载到调优的全流程。一、一次失败的汉化尝试让我换了思路上个月我下载了一款像素风推理游戏美术和音乐都在水准之上唯独没有官方中文。开局第一个选项就卡住了我满屏日文我连调查对话离开都分不清。第一反应是截图翻译切出游戏、截图、丢给手机、翻译、再切回来对照。玩十分钟要切十几次窗口谜题节奏被切成碎片两个多小时只推进了三个场景。后来听说 Unity 游戏有专门的翻译插件我抱着再折腾一次不行就删的心态试了试 XUnity.AutoTranslator。结果出乎意料从下载到看到中文前后不到半小时。选项变成中文是在游戏内直接完成的没有第二个窗口没有截图操作连道具描述和系统提示都跟着一起翻译了。为什么普通工具搞不定它能搞定关键在于两者的工作方式完全不同工具类型工作方式实际体验截图OCR翻译截屏→识别→翻译反复切窗口识别率看脸外挂字幕工具抓取屏幕上的文字层对引擎文本支持有限常漏翻XUnity.AutoTranslator运行时挂进文本组件翻译后原地写回文本就地替换沉浸感无损二、先搞清楚它到底解决什么问题简单说它是为 Unity 引擎游戏量身定做的实时翻译插件。它不翻译屏幕像素而是直接盯住游戏里的文本组件游戏准备显示一句话它先截下原文送去翻译服务再把译文写回组件。因为拦截发生在游戏内部翻译结果和游戏画面天然融为一体。什么情况适合用它目标游戏是 Unity 引擎开发且没有官方中文你不想等汉化组想第一时间玩到最新版本你能接受自动翻译的机翻味愿意用手动词典去纠正有稳定的网络连接自动翻译需要联网请求翻译服务什么情况可以省下这份功夫游戏已经有官方中文别折腾游戏不是 Unity 引擎比如虚幻、RPG Maker它帮不上忙你的游戏环境完全离线翻译请求根本发不出去你只想体验一小段 demo等正式版汉化就行它是靠什么实现就地翻译的插件内置了对多种 Unity 文本框架的挂钩支持包括最常见的 UGUI、TextMeshPro以及 NGUI、TextMesh、IMGUI还有 FairyGUI 和 Utage视觉小说引擎。每种框架的文本显示路径不同插件分别适配。其中 IMGUI、TextMesh 默认是关闭的README.md 里写了原因——它们容易误报或拖累性能需要时再手动打开。三、装好后如何验证翻译是否生效第一步把源码或预编译包拿到手最省事的办法是直接 clone 仓库git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator仓库里同时包含全部插件源码和配套依赖库集中在 libs 目录适合想自己编译、或想研究实现细节的朋友。只想拿来用的直接取发布包里对应的预编译 zip 即可。第二步挑一个合适的插件框架插件支持多种加载方式选哪个取决于你的游戏环境框架适用场景备注BepInEx大多数 Unity 游戏推荐新手文档最全社区资料最多MelonLoader用 MelonLoader 加载的游戏需先装好 MelonLoader 本体IPA依赖 IPA 管理器的游戏常见于部分日系游戏UnityInjector老牌 Unity 游戏个别功能受限独立模式ReiPatcher游戏没装任何插件管理器双击 Setup 程序即可门槛最低如果你的游戏目录里已经躺着 BepInEx 文件夹直接走 BepInEx 路线如果啥都没有ReiPatcher 独立模式是最省心的选择。第三步把文件放到该放的位置以 BepInEx 为例解压后文件应该摆成这样游戏根目录/ └── BepInEx/ ├── core/ │ └── XUnity.Common.dll ├── plugins/ │ ├── XUnity.ResourceRedirector/ │ │ ├── XUnity.ResourceRedirector.dll │ │ └── XUnity.ResourceRedirector.BepInEx.dll │ └── XUnity.AutoTranslator/ │ ├── XUnity.AutoTranslator.Plugin.Core.dll │ ├── XUnity.AutoTranslator.Plugin.BepInEx.dll │ ├── XUnity.AutoTranslator.Plugin.ExtProtocol.dll │ └── Translators/ │ └── GoogleTranslate.dll └── Translation/把 zip 直接解压到游戏根目录通常会自动落在正确位置。注意只要有一个 dll 没放对目录插件启动时就会找不到依赖这是装完没反应最常见的元凶之一。第四步改配置、定语言第一次启动游戏后插件会在 BepInEx/config 下生成 AutoTranslatorConfig.ini。打开它先改三个核心项[Service] EndpointGoogleTranslate FallbackEndpoint [General] FromLanguageja Languagezh-CNEndpoint决定用哪个翻译服务内置可选 Google、Bing、DeepL、百度、Papago 等对应实现都放在 src/Translators 目录下FromLanguage写游戏原文语言日语游戏填ja不确定就填autoLanguage是目标语言中文填zh-CN如果网络环境访问 Google 不稳定可以改用BingTranslate想用百度系给[Baidu]段填上 AppId 和 AppSecret再设EndpointBaiduTranslate。第五步启动游戏并验证重启游戏进入有对话或菜单的界面如果文字就地变成中文说明已经生效。按ALTT可以在原文和译文之间来回切换用来确认不是恰好没翻。更直观的验证方式打开Translation\zh-CN\Text目录插件会把已翻译的内容写进_AutoGeneratedTranslations.txt。文件里有内容说明挂钩→请求→回写整条链路都是通的。几个值得记一下的快捷键ALT0开关翻译器界面ALTT切换原文/译文显示ALTR热重载翻译文件改完词典不用重启游戏ALTU手动挂钩某些文本没被自动抓到时的补救手段四、不同游戏怎么调翻译节奏开放世界缓存管够减少重复请求开放世界文本量大但重复文本也多重点是别让同一个词反复去请求翻译服务[Behaviour] MaxCharactersPerTranslation200 EnableBatchingTrue插件本身有防刷机制同一句文本 1 秒内不重复请求、同一时间只发一个请求、结果同时缓存进内存和磁盘。把EnableBatching打开后支持的翻译服务能把多条请求合并成一次跑图时刷出来的重复文本基本不会再产生新请求。卡牌与数值游戏用正则拆分长文本卡牌游戏常把属性拼在一行显示比如[DEF14][ATK64]。整句送去翻译服务端会把括号和数字拆得乱七八糟。这时可以用翻译文件里的拆分正则先把文本拆开、逐段翻译、再拼回去sr:^\[(?stat[\w\s])(?num_i[\\-]{1}[0-9])?\](?after[\s\S])?$[${stat}${num_i}]${after}标准正则用r:开头拆分正则用sr:开头具体语法在 README.md 的正则章节有完整示例。这类规则建议少而精写太多会影响匹配性能。解谜与剧情游戏手动词典补精度自动翻译对专有名词最不友好人名、地名、道具名一旦翻错可能直接毁掉一条解谜线索。解法是手动词典把游戏里反复出现的关键词写进翻译文件插件会优先命中词典不再走机翻。# 主角与关键角色 シロガネ白银 アマツ天津 # 关键道具 こわれたカギ断裂的钥匙改完按ALTR热重载马上生效。这些翻译文件还可以打包进 zip 压缩包方便整包分享给其他玩家。中文显示乱码字体兜底配置翻成中文最常见的坑是翻译出来了但显示成方块。原因是游戏自带的字体里没有中文字形。解决办法是给插件指定一个兜底字体[Behaviour] OverrideFont你的中文字体名 FallbackFontTextMeshProFonts Materials/LiberationSans SDFOverrideFont管 UGUI 文本FallbackFontTextMeshPro管 TextMeshPro。填入游戏能正常加载的中文字体方块字基本就能消失。顺手把EnableUIResizingTrue保持打开译文比原文长时插件会自动调整换行和溢出避免文字被截断。五、报错排查思路与更多玩法装好了却没翻译按顺序检查这四件事目录对不对对照第三步的文件树逐项检查缺一个 dll 都可能导致静默失败配置生成了没首次启动后确认 AutoTranslatorConfig.ini 已出现这至少说明插件被加载了语言方向对不对FromLanguage和Language填反翻译结果会变成原文看日志开启[Debug] EnableLogTrue再跑一次插件会把挂钩和请求过程写进日志报错位置一目了然游戏闪退或卡死一个开关可能就够有些游戏会把显示的文字当作逻辑判断依据翻译后的文本会让游戏逻辑误判、直接卡死。这时打开下面这项通常就好了[Behaviour] TextGetterCompatibilityModeTrue它的原理是骗游戏画面上显示译文但游戏内部读到的仍是原文逻辑不受影响。判断是否需要它有个简单方法按ALTT切回原文一切正常、切到译文就出问题那就是它没跑了。翻译质量不满意换引擎与加替换规则同一句文本不同翻译服务的差距可能很大。内置引擎里 DeepL 的译文质量公认较高可以设EndpointDeepLTranslate对比一下某些词怎么翻都不对可以在_Substitutions.txt里做强制替换把不想要的译名直接换成你指定的配合手动词典玩两天就能把高频词都纠正过来翻译质量会随着你的使用不断变好还能玩出什么花样纹理、mod 与第三方引擎纹理翻译[Texture] EnableTextureTranslationTrue后插件可以把游戏贴图导出、改好再替换回去适合汉化那些文本钩子覆盖不到的图片型文字mod 文本不少 mod 的界面走 IMGUI默认不翻译打开EnableIMGUITrue后 mod 界面也能被覆盖第三方翻译器除了内置引擎社区还做了对接 Sugoi、各类大语言模型的翻译器质量上限更高扩展入口在src/XUnity.AutoTranslator.Plugin.Core里可以找到最后说一句回到开头那款像素推理游戏我现在已经玩到第三周目靠的不是等汉化而是二十多分钟的配置加两小时的手动词典。XUnity.AutoTranslator 免费、开源、社区活跃如果你手头正好躺着一款看得懂画面、看不懂文字的 Unity 游戏现在就可以打开终端执行那行 clone 命令。装好、配好、跑起来等第一句中文在游戏里弹出的瞬间你就明白这套方案值不值得。与其继续对着外语界面瞎猜不如花半小时自己动手。【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考