FEATURED · 精选文章

Unity游戏翻译终极实战:我用XUnity.AutoTranslator十分钟啃下全日文RPG

发布时间 / 2026/8/20 1:16:03
来源 / 创域科博编辑部
栏目 / 资讯中心
Unity游戏翻译终极实战:我用XUnity.AutoTranslator十分钟啃下全日文RPG Unity游戏翻译终极实战我用XUnity.AutoTranslator十分钟啃下全日文RPG【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator周末深夜我满怀期待地双击了一款刚入手的日文RPG。开场动画结束后满屏假名和汉字扑面而来——剧情看不懂技能说明看不懂连背包里那把伝説の剣到底加多少攻击力都只能靠猜。那一刻我意识到这款游戏再好语言这道墙不翻过去我连十分钟都玩不下去。而最终帮我解决这个问题的是一个名叫 XUnity.AutoTranslator 的开源Unity游戏翻译插件。它能在游戏运行的同时自动抓取界面上的文字并调用在线翻译服务把日文实时换成中文整个过程不用退出游戏、不用改游戏本体文件。今天这篇文章就把我从下载、安装、踩坑到最终跑通一款日文RPG的全过程原原本本写给你看。一、被生肉劝退后我盯上了实时机翻这条路线先交代一下背景。市面上的汉化方案无非三种等汉化组发布补丁、用外部工具截图翻译、或者装插件实时翻译。前两种我都试过——补丁等了两周还没影儿截图翻译麻烦到让人想放弃。这时候我开始研究Unity游戏机翻工具发现思路其实很简单既然游戏界面里的文字最终都要经过统一的UI组件渲染那能不能在文字显示前拦一道把原文换成译文再放回去XUnity.AutoTranslator 走的正是这条路。它通过挂钩Hook游戏内的文本组件在你看到文字之前先把内容送去翻译拿到结果再替换显示。听起来复杂但对使用者来说它本质上就是一个装上就能用的翻译引擎。更关键的是它完全免费、开源而且社区活跃这让我这种不喜欢付费工具的人瞬间有了好感。二、从下载到进游戏BepInEx翻译插件安装配置实录第一步确认游戏类型和插件框架动手前先确认两件事你的游戏是不是Unity引擎开发的以及你打算用哪个插件管理器。XUnity.AutoTranslator 对插件框架的兼容面很广这也是它比很多同类工具强的地方插件框架适用场景推荐度BepInEx目前最主流的Unity模组管理器文档多、报错好排查★★★★★MelonLoader部分游戏社区的标配框架★★★★IPA老牌插件管理器★★★UnityInjector老游戏环境★★ReiPatcher免依赖独立安装双击运行即可★★★应急用我的游戏是Unity做的电脑上正好装着 BepInEx所以直接走最省心的路线。如果你还没装 BepInEx请先去装好它——它就是一套放进游戏目录就能用的文件很多Unity游戏的Mod教程里都有它的安装说明。第二步把插件文件放进游戏目录拿到 XUnity.AutoTranslator 的 BepInEx 版本压缩包后直接解压到游戏根目录。解压后检查一下正常结构应该长这样游戏目录/BepInEx/plugins/XUnity.AutoTranslator/XUnity.AutoTranslator.Plugin.Core.dll 游戏目录/BepInEx/plugins/XUnity.AutoTranslator/XUnity.AutoTranslator.Plugin.BepInEx.dll 游戏目录/BepInEx/plugins/XUnity.AutoTranslator/Translators/…… 游戏目录/BepInEx/core/XUnity.Common.dll一句话总结就是解压进根目录、确认dll落在 BepInEx 文件夹里、然后启动游戏。全程不需要你写一行代码。第三步第一次启动让插件自己生成配置首次启动游戏后插件会在BepInEx/config/下自动生成XUnity.AutoTranslator.ini配置文件翻译用的文本目录也会自动创建。到这里BepInEx翻译插件的安装配置就算基本完成了——从下载到能跑起来我实际花了不到十分钟。如果你用的是 ReiPatcher 独立安装方式流程更简单解压后运行安装程序再通过它生成的快捷方式启动游戏即可适合不想折腾插件管理器的玩家。三、为什么只有菜单被翻译了聊聊文本框架识别安装完成后我满心欢喜地进游戏结果发现主菜单的按钮是中文了但角色对话、物品说明还是日文。这其实是新手最容易碰到的第一个坑。原因在于Unity游戏里的文字并不只有一种渲染方式。插件默认只开启了一部分文本框架的翻译剩下的是出于性能考虑默认关闭的。这就像房间里有很多盏灯插件只帮你开了最亮的那几盏其他的需要你自己去配电箱打开。在配置文件[TextFrameworks]小节里你能看到这样一段[TextFrameworks] EnableUGUITrue EnableNGUITrue EnableTextMeshProTrue EnableTextMeshFalse EnableIMGUIFalse这几个开关分别对应Unity里常见的文本技术UGUI是Unity官方UI系统TextMeshPro是现在很多游戏用来渲染高清文字的高级方案NGUI是老牌第三方UITextMesh通常用于3D空间里的漂浮文字IMGUI则是开发调试界面常用的即时模式GUI。我遇到的情况就是游戏对话用的TextMeshPro默认没开。把EnableTextMeshPro设为True保存后按 ALTR 热键重载翻译文件或者干脆重启游戏对话就乖乖变成中文了。如果你玩的是特定类型的游戏可以顺手把 FairyGUI、UTAGE 这类视觉小说引擎的支持也检查一遍。记住一条经验发现哪块文字没翻译先想它是用什么框架渲染的再去对应开关里找原因。四、十几种翻译引擎怎么选我的实测对比翻译框架跑通后下一个问题就是让谁来翻译插件的[Service]小节里有个Endpoint参数决定了翻译请求发给哪家服务。XUnity.AutoTranslator 内置的引擎数量多得惊人我整理了一份对照表翻译引擎是否需要密钥免费额度我的体感GoogleTranslate不需要无硬性限制但稳定性一般上手最快首选尝鲜DeepLTranslate不需要无硬性限制质量明显更好我的主力BingTranslate不需要无硬性限制与Google体验接近PapagoTranslate不需要无硬性限制日韩互译表现不错BaiduTranslate需要AppId每月前5万字符免费中文语境下友好YandexTranslate需要密钥每日100万字符适合俄语场景LingoCloudTranslate需要Token认证后每月100万字符中日英三语专用WatsonTranslate需要URL密钥每月100万字符企业级备选DeepLLegitimate需要密钥每月50万字符稳定但需订阅GoogleTranslateLegitimate需要密钥新用户有试用金稳定版Google我的选择逻辑很简单先试 GoogleTranslate如果觉得译文生硬就切到 DeepLTranslate。DeepL 的语序和措辞明显更自然适合剧情类游戏而如果想追求稳定、愿意注册密钥就用对应服务的Legitimate正规API版本它们通常有免费额度且不容易断。重要提醒那些不需要密钥的免费接口本质上是借用公开网页接口随时可能因服务商调整而失效这是所有同类工具的通病不算插件本身的毛病。五、翻译质量不满意三招手动补救自动翻译毕竟不是人工精翻遇到人名、专有名词翻得离谱的情况太常见了。好在插件给足了补救手段我常用的有三招。第一招手动改翻译文件插件会把每次在线翻译的结果写入Translation\zh\Text\_AutoGeneratedTranslations.txtzh换成你配置的目标语言。你可以直接打开这个文件把不满意的条目改成自己的译法按 ALTR 就能即时生效不用重启游戏。我玩到中期基本就是把ああ这种语气词统一改成啊啊、把主角名改成固定译名越改越顺手。第二招正则表达式批量处理游戏里的物品名、技能名往往是前缀数字的固定格式这类文本用正则表达式一次就能批量搞定。文件里以r:开头的行是标准正则翻译r:^シンプルリング ([0-9])$简易戒指 $1以sr:开头的是分割器正则专门对付游戏把好几段文字拼在一起显示的情况——它先把整段文字按规则拆开、分别翻译、再拼回去sr:^([0-9]{2}) ([\S\s])$$1 $2正则用多了会拖慢性能所以我的建议是能不用就不用用了就尽量写精确。第三招替换词与前后处理_Substitutions.txt负责在翻译前替换特定词语比如把老被翻错的人名提前换掉_Preprocessors.txt和_Postprocessors.txt则分别在发送前、接收后对文本做处理。这些文件的存在让游戏文本实时翻译不只是一锤子买卖而是可以反复打磨的工程。六、中文变成方块字字体与UI溢出修复实录翻译通了之后我又撞上第二个大坑中文倒是显示出来了可全是一排排的口口口——游戏默认字体根本不包含中文字符。这就好比你把中文歌词塞进一张只支持英文的歌词屏屏幕只能吐出一堆问号。解决办法在[Behaviour]小节里[Behaviour] OverrideFont你的中文字体文件 FallbackFontTextMeshProLiberationSans SDF EnableUIResizingTrueOverrideFont可以给所有UGUI文本强制指定一个支持中文的字体文件TextMeshPro则建议用FallbackFontTextMeshPro做备用字体只在原字体缺字时才顶上兼容性更好。顺手把EnableUIResizing打开插件会在翻译后自动调整UI组件的溢出方式防止中文太长被截断。这一套组合拳下来方块字问题基本绝迹。七、它会不会把游戏卡死聊聊性能与防刷机制实时翻译最让人担心的就是性能。我在实际游玩中倒是没感觉到明显卡顿这要归功于插件内置的一套防刷屏机制。简单说就是同一句话在1秒内没有变化才排队翻译避免反复请求同一时间只发一个翻译请求绝不并发轰炸所有翻译结果都会缓存同一句话绝不翻译两遍单次翻译默认不超过200个字符超长文本直接跳过一旦检测到游戏在疯狂产生新文本比如滚动字幕插件会主动停机保护对玩家来说最直观的收益就是既不烧翻译接口的流量也不拖累游戏帧率。如果你用的是按量计费的API这套机制还能帮你省下真金白银。想要更省就把EnableBatchingTrue批处理和UseStaticTranslationsTrue内置静态词典缓存保持开启。八、进阶玩法资源重定向与图片替换如果一款游戏连文本组件都挂钩不上或者想翻译的内容藏在图片里插件还留了两手高级方案。资源重定向通过随插件分发的 XUnity.ResourceRedirector 模块可以拦截游戏加载的各类资源。最常见的是把游戏里的 TextAsset文本资源重定向到你提供的文件实现整段剧情文本的替换而且不修改游戏原始文件、不破坏游戏版本兼容性。纹理翻译从2.16.0版本起插件支持把游戏内的图片导出、替换后再加载回去适合那些Mod生态贫瘠的游戏。配置如下[Texture] TextureDirectoryTranslation\zh\Texture EnableTextureTranslationFalse EnableTextureDumpingFalse注意这两个开关默认都是关闭的因为导出图片有性能开销。要手动做图片汉化时再开启导出、修图、放回目录、开启加载流程还算顺。这条路线属于给没有Mod支持的游戏准备的兜底方案普通玩家了解即可。九、老司机也要知道的坑IL2CPP兼容边界Unity游戏分两种运行模式Mono代码托管模式和 IL2CPP代码编译成C再运行。现在不少新游戏走IL2CPP而插件对IL2CPP的适配虽然一直在推进但远谈不上完美。我帮你把限制清单列出来免得你踩坑后一头雾水文本挂钩能力偏弱某些文本改动检测不到可能需要手动按 ALTU 刷新TextGetterCompatibilityMode文本取值兼容模式在IL2CPP下不支持针对特定插件的翻译功能尚未支持IMGUI文本翻译尚未支持不少高级功能属于理论上可用状态如果你是IL2CPP游戏建议先用GoogleTranslate这类免费引擎试跑确认核心对话翻译正常再深入配置别一上来就追求全功能。十、给开发者的扩展指南如果你不只是玩家还想给自己的Mod加上翻译能力或者自建一个翻译服务插件留的口子也很规整。想在自己的插件里调用翻译用异步API即可AutoTranslator.Default.TranslateAsync( untranslatedText, result { if( result.Succeeded ) { var translatedText result.TranslatedText; } } );不想让翻译器碰你Mod的界面把包含文字的游戏对象命名为含XUAIGNORE的字符串翻译器就会自动绕行用XUAIGNORETREE还能连子对象一起豁免。想接入自己的翻译服务实现一个翻译端点Endpoint放到Translators目录下即可。门槛不高社区里已经有人基于它接入了本地大模型、Sugoi离线翻译器等多种方案生态相当热闹。翻译引擎的源码都在src/Translators/目录里想学习或者魔改都有现成范例。动手之前可以用下面的命令把仓库克隆下来研究git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator十一、FAQ新手最常问的六个问题问装了插件后游戏报错怎么办答先在配置文件里把TextGetterCompatibilityMode设为True试试不少游戏在翻译后需要用这个模式欺骗游戏逻辑否则游戏会因读取到译文而行为异常。问怎么彻底关闭自动翻译答在翻译面板ALT0里把端点选为空或者把配置里的Endpoint设为空值即可。问翻译请求太多了怕流量超标答降低MaxCharactersPerTranslation开启批处理并确认UseStaticTranslations为开启状态。问快捷键都有哪些答ALT0打开翻译面板ALTT在原文和译文之间切换ALTR重载翻译文件ALTU手动触发挂钩ALTF切换字体覆盖ALTQ在插件因连续报错停机后重启它。问翻译文件太多太乱能不能分场景管理答可以。翻译文件里支持#set level、#unset level等指令把不同翻译限定到指定场景ID或可执行文件下配合EnableTranslationScopingTrue使用适合大项目汉化。问为什么我按了热键没反应答先确认当前游戏窗口是激活状态再确认对应文本框架已启用——热键只能对已挂钩的文本起作用。十二、写在最后十分钟跨过那堵语言墙回到开头那个深夜。从下载插件到看见第一句中文对话我实际只花了不到十分钟但从能翻译到翻译得舒服我花了一整个周末——改字体、调引擎、写正则、修翻译文件每一步都是这个插件给足了我工具和自由。它不替你做决定但把选择权都交到了你手里用什么引擎、翻哪些文本、怎么翻全都由你说了算。如果你也正被某款心仪的Unity游戏卡在语言门外不妨今晚就试一试。免费的、开源的、十分钟就能跑起来的游戏文本实时翻译可能就是你和那款生肉游戏之间最后的那层窗户纸。捅破它剩下的就是纯粹的游戏乐趣了。【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻