ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

XUnity Auto Translator 完整实战教程:十分钟把看不懂的 Unity 游戏变成中文版

XUnity Auto Translator 完整实战教程:十分钟把看不懂的 Unity 游戏变成中文版 XUnity Auto Translator 完整实战教程十分钟把看不懂的 Unity 游戏变成中文版【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator先讲一个我自己的故事。很多年前我在 Steam 上淘到一款口碑极佳的日式 RPG下载安装一气呵成结果进游戏三分钟就傻眼了——满屏片假名选项全靠蒙剧情全靠脑补那款游戏从此在我的库里吃灰。直到后来我遇到了XUnity Auto Translator一个专门解决Unity 游戏汉化难题的实时翻译插件能在游戏运行时自动把对话、菜单、道具说明翻译成你指定的语言。我库里那些看得见玩不动的外语游戏就这样一个个活了过来。这篇文章我不打算按说明书讲而是用带路的方式把从安装、配置、调优到翻车自救的完整路径给你捋一遍。全程不需要编程基础跟着走就行。动手前先搞清楚你的游戏用的是哪种插件框架很多人卡在第一步不是因为难而是下载错了安装包。XUnity Auto Translator 提供了好几个版本分别对应不同的游戏插件框架选错了装上去就是没反应。怎么判断其实很简单先打开你的游戏根目录看一眼目录里已经有BepInEx文件夹或者你本来就装过 BepInEx 打其他 mod→ 选BepInEx 版这也是官方最推荐的方案兼容性最好有MelonLoader文件夹 → 选MelonMod 版现代 Unity 游戏很常见游戏走的是 IPA 框架 → 选IPA 版以上都看不出来、或者游戏根本没有 mod 框架 → 直接用ReiPatcher 独立版这个版本自带补丁器不依赖任何框架两下点击就能用是不知道装哪个时的兜底方案。顺带提醒一句如果游戏里已经装了某种插件管理器就别再用独立版去补丁它两套机制打架容易出问题。一句话总结就是——有框架就匹配框架没框架就独立版。从解压到看到中文十分钟跑通的最小路径以最常用的 BepInEx 版为例完整流程是这样的。先从项目仓库的 Releases 页面下载XUnity.AutoTranslator-BepInEx-版本号.zip这个包把压缩包直接解压到游戏根目录。注意是直接解压解压后 dll 文件会自动落到BepInEx/plugins下面不用你手动搬。然后正常启动游戏等几秒钟插件会完成两件事挂钩游戏的文本组件并在BepInEx/config/下自动生成配置文件AutoTranslatorConfig.ini。第一次启动先别急着玩打开这个配置文件改两个最要紧的值[General] Languagezh-CN ; 目标语言简体中文 FromLanguageja ; 源语言日语改成你游戏的实际语言保存后重启游戏进入游戏随便点几个菜单、看几句对话——如果文字变成中文了恭喜你十分钟目标达成。如果你用的是 ReiPatcher 独立版流程也差不多解压到游戏根目录后运行SetupReiPatcherAndAutoTranslator.exe然后从生成的{游戏名} (Patch and Run).lnk快捷方式启动游戏之后就能直接点原 exe 玩了。跑通之后有几个热键你一定要记住它们是验证和调试的好帮手ALT0打开/关闭自动翻译的设置界面注意是数字 0不是字母 OALTT在原文和译文之间一键切换验证翻译是否生效就靠它ALTR立刻重载翻译文件你手动改完翻译文本不用重启游戏ALTU手动挂钩。有些文本默认钩子没抓到按一下它会主动去抓一遍ALTF当你配置了自定义字体时用它切换字体看效果ALTQ插件因为连续报错而自我保护停机后用它重启插件。让中文正常显示字体与 UI 的三个关键设置跑通翻译只是第一步很多游戏接着会给你一记闷棍——中文变成一排排小方块□□□。原因很简单游戏自带的字体文件里压根没有中文字形翻译结果写进去了但显示不出来。解决办法有三个层次从简单到讲究第一先把FromLanguage设成游戏的实际语言比如日语就写ja。虽然有些引擎支持auto自动检测但自动检测偶尔会误判明确指定能让翻译命中率更高这是性价比最高的一步。第二处理字体。对 UGUI 文本配置OverrideFont指定一个中文字体文件对 TextMeshPro 文本更推荐用FallbackFontTextMeshPro——它只做缺字回退不影响游戏原有字体风格[Behaviour] OverrideFontMyChineseFont.ttf ; UGUI 文本强制换字体 FallbackFontTextMeshProFonts/LiberationSans SDF ; TMP 文本缺字回退第三解决译文太长被截断的问题。日文原文一般很短翻成中文后经常变长超出文本框就显示不全。插件默认开启EnableUIResizingTrue会自动调整文本溢出模式如果个别界面还是挤可以配合ForceSplitTextAfterCharacters强制按字符数换行别让一句长台词憋死在一个窄框里。翻译引擎怎么选免费额度与稳定性一次说清翻译质量这件事七分看引擎三分看配置。XUnity Auto Translator 内置了一堆翻译端点Endpoint它们本质上是给插件插拔的翻译服务驱动放在Translators子文件夹里。按使用门槛大致分三类免登录、零成本型Google、Bing、DeepL、Papago 这些在线翻译服务都有对应的内置端点不用注册不用 key配置里填个名字就能用。其中 DeepL 的译文质量口碑最好Google 最通用但偶尔不稳定。注册拿免费额度型这类需要你去服务商官网注册一个 API key但免费额度通常够个人用了。比如 DeepL 官方 API 每月免费 50 万字符Azure 翻译对应 BingLegitimate每月 200 万字符Yandex 每天 100 万百度、彩云云译灵云认证后每月也有 100 万左右。这类端点最大的好处是稳定不怕被限流适合长期使用。需要注意API key 是你的私人凭证千万别随手发到群里。本地软件型比如 ezTrans XP、LEC 的 Power Translator需要本机装了对应软件好处是翻译不走网络、没有额度概念。配置方式就是在[Service]段指定端点还可以配一个备胎[Service] EndpointDeepLTranslate FallbackEndpointGoogleTranslateFallbackEndpoint的意思是主端点某次翻译失败时自动用备胎顶上去避免一句话翻不出来。这里插一句原理科普为什么插件有时候会自己停机因为它的防滥用机制非常严格——同时只发一个翻译请求、每遇到新文本先等 1 秒确认文本不再变化、单个游戏会话最多发 8000 次请求、连续 5 次无结果或队列积压到 4000 条就直接自我保护式关闭。这是为了保护你的 API 额度、也避免游戏把免费服务打爆。真遇到停机了先检查网络和 key确认问题解决后按ALTQ重启插件即可。从能看到好看手动校对、词典与正则的用法机翻毕竟是机翻专有名词、人名地名经常翻得离谱。好消息是这个插件把人工修正的入口留得明明白白。插件会自动把所有翻译结果写进Translation\zh-CN\Text\_AutoGeneratedTranslations.txt这个文件里格式就是一行原文译文。你直接在里面改比如把魔王改回你喜欢的译名保存后按ALTR立刻生效连游戏都不用重启。更讲究一点的做法是把想固定的词条从自动生成文件里剪切出来放到Text目录下你自己的.txt文件里——自动生成的文件优先级永远最低这样你手动维护的词条永远优先于机器翻译。还有两个更强大的预处理文件值得知道一是_Substitutions.txt替换词典在翻译请求发出去之前先把原文里的词替换掉适合固定人名地名的译法还支持参数化写法私は{{A}}I am {{A}}二是翻译文件支持正则适合处理带数字、带格式的文本。标准正则用r:开头r:^アイテム ([0-9])$物品 $1分割器正则用sr:开头能把一段拼在一起的文本拆开分别翻译再拼回去比如游戏把编号物品名拼在一行显示的情况sr:^([0-9]{2}) ([\S\s])$$1 $2小提示正则可以放在Text目录下任何手动的.txt文件里但千万不要放进_开头的自动生成文件那里不生效。正则这东西好使但别滥用规则越复杂性能损耗越大够用就行。进阶玩法作用域、图片汉化和几个隐藏开关如果你已经玩转了上面的内容下面这几个进阶功能能让你的汉化体验再上一个台阶。翻译作用域。同一份翻译文件可能被多个场景、多个 exe 共用容易互相污染。翻译文件支持指令限定作用范围前提是先在配置里打开开关[Behaviour] EnableTranslationScopingTrue然后在翻译文件里写#set level 1,2,3 ; 只在这些场景ID下生效 #set exe game1,game2 ; 只在指定的exe下生效 #unset level 4 ; 在场景4下禁用多语言版本的游戏还可以用{GameExeName}占位符把翻译目录按 exe 分开互不干扰。图片汉化纹理翻译。有些游戏的 UI 图片里直接嵌着文字文本翻译管不到它。插件提供了一套纹理替换流程先开EnableTextureDumpingTrue启动游戏后插件会把游戏里能识别的图片全部导出到Translation\zh-CN\Texture目录文件名末尾带着一段[hash]标识你用 PS 或画图把图里的日文涂掉改成中文文件名和 hash 千万别动最后把EnableTextureDumping关掉、打开EnableTextureTranslationTrue再进游戏图片就被替换掉了。注意纹理导出的性能开销不小改完图记得把 Dumping 关掉。字体局部微调。想针对某个界面单独缩小字号在Text目录放一个以resizer.txt结尾的文件写上行路径和命令CharaCustom/CustomControl/CanvasDrawChangeFontSizeByPercentage(0.5)意思是把这个路径下的所有文本字号缩到原来的 50%。类似的命令还有ChangeFontSize(16)、TMP_Alignment(...)等UGUI 和 TextMeshPro 各有对应的控制命令。给 mod 单独做翻译。想给某个 mod 的界面配专属翻译在Translation\zh-CN\Text\Plugins\下建一个以该 mod 的 dll 文件名命名的文件夹把翻译文件放进去再在第一行写#enable fallback允许回退到通用翻译即可。翻车自救高频问题的排查清单玩汉化出问题太正常了我把自己踩过的坑按频率排个序你按着顺序查完全没翻译先按 ALT0 看看设置界面是否正常弹出再确认配置里Endpoint没被清空、Language是否写对还不行就按 ALTU 手动挂钩一次。大部分翻了个别界面没翻九成是文本框架没开。IMGUI 和 TextMesh 默认是关闭的打开配置文件把EnableIMGUITrue、EnableTextMeshTrue试试。翻译后游戏逻辑错乱或闪退有些游戏会根据屏幕上显示的文字做逻辑判断一看是译文就懵了。把TextGetterCompatibilityModeTrue打开让游戏以为它看到的还是原文。插件莫名停机参考前面说的防滥用机制多半是网络不稳或请求超限。检查网络、确认 key 无误ALTQ 重启。中文是方块回到字体与 UI那一节上字体配置。翻译很慢、一句话半天才出来这是正常的插件故意延迟 1 秒确认文本不再滚动才发请求宁可慢一点也不重复请求。长文本可以调低MaxCharactersPerTranslation让插件别去碰超长文本。开发者彩蛋给你的插件也接上翻译如果你是 mod 作者XUnity Auto Translator 还留了几个正式的扩展口篇幅所限只点一下。想在你自己写的插件里查询翻译两行代码的事if (AutoTranslator.Default.TryTranslate(おはよう, out string translation)) { // 用翻译结果 }想接一个自己的翻译服务既可以用CustomTranslate端点指向任意符合规范的 HTTP 接口GET 请求带from、to、text参数返回纯文本结果也可以实现ITranslateEndpoint接口编译成 dll 丢进Translators文件夹就自动被识别。项目里src/XUnity.AutoTranslator.Plugin.Core目录下的代码结构很清晰想深度定制的可以照着源码研究。下一步就是现在至此从判断框架、完成安装、配置语言、挑选引擎到手动校对、图片汉化、问题排查一条完整的路你已经走完了。剩下的就是动手去项目仓库的 Releases 页面下载对应你游戏的安装包照着本文走一遍让那款吃灰的游戏重新亮起来。想研究源码、或者以后想给这个插件提点改进的把仓库克隆下来慢慢看git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator好的翻译配置是成功的一半但另一半永远是现在就打开那个游戏试一次。游戏愉快翻译无忧。【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表