引擎指南FAQPatreonDiscord下载
登录
RuneTranslate · 端到端翻译日式游戏
引擎指南对比图片文字存档编辑器作弊模式FAQ下载PatreonDiscordYouTube隐私政策服务条款联系我们
全部文章
artemis · engine

如何将 Artemis 引擎视觉小说翻译成英语

2026年6月23日·6 分钟阅读

RuneTranslate 把 Artemis 引擎(iMel/Mikage)视觉小说翻译成英语和 30 多种语言 —— 读取 .pfs 归档(含 PF8 加密)、提取对话和选项,并导出游戏加载的 root.pfs 覆盖补丁。尽力而为。

为了翻译 Artemis 引擎游戏,RuneTranslate 读取了一个长期以来对粉丝译者几乎无从下手的框架:Artemis 引擎,一个基于 Lua 的视觉小说框架,支撑着数百部日语作品。打开一个 Artemis 游戏文件夹,你会发现一堆 .pfs 归档和没有任何可读内容。RuneTranslate 会检测这个引擎、用纯 TypeScript 打开那些归档(连同加密一起)、从它的脚本中读出对话、角色名和选项,并导出游戏自己就能加载的译好副本。

Artemis 有多年、每个工作室各异的变体,所以如果你把 RuneTranslate 指向一个 Artemis 游戏,而它检测不到、打不开,或导出了游戏无法加载的东西,请告诉我们 —— 文末有具体方法。

Artemis 引擎究竟是什么

Artemis 是由 iMel Inc.(也以 Mikage 著称的工作室)开发的商业日语视觉小说引擎。像 Kirikiri 或 NScripter 这样较老的引擎暴露的是一门定制的领域专用脚本语言,而 Artemis 围绕 Lua 构建 —— 它的剧本脚本本质上就是 Lua 数据表 —— 这让开发者用起来灵活,但实际上对任何想从外部翻译成品游戏的人来说是一堵墙。VNDB 上约有 730 部作品建立在它之上,所以它远非小众玩物;它是一整个机器翻译工具历来跳过的旧作库。

在磁盘上,一个 Artemis 游戏是一个 Windows .exe 加一个或多个 .pfs 资源归档,承载脚本、美术和音频。里面的脚本大多是 .ast 文件(Lua 表剧本脚本)和 .txt 文件(一种更简单的、面向行的格式)。RuneTranslate 直接从那些归档和脚本工作,所以无论工作室是以 .ast 还是 .txt 发布剧本,它都覆盖这个游戏。

Artemis 游戏为何一直如此难翻译

与像 Ren'Py 那样源代码驱动的引擎相比,Artemis 把它的文本藏在好几层之后。有几个具体的层让它对手工译者和天真的工具都无从下手:

  • 一切都在 `.pfs` 归档里。 脚本不是松散在磁盘上的 —— 它们被打进 Artemis 自己的 .pfs 容器格式里(你会看到 PF8、PF6 以及遗留的 PF2 变体)。没有该格式的读取器,一开始就没有东西可编辑。
  • 最新的归档是加密的。 当前的 PF8 格式不只是打包文件,它还加密文件内容:每个条目都用一个从归档自身索引的 SHA-1 哈希派生出的密钥做 XOR。你不能简单地把字节抠出来 —— 你必须复现引擎的密钥派生才能拿回可读脚本。
  • 脚本是 Lua 数据,不是纯文本。 一个 .ast 剧本是一个 Lua 表 —— 对话、说话者名字和选项是结构化表里的嵌套字段,与引擎命令混在一起。现实中有两种表布局(一个较老的 v1 和一个较新的 v2),译者必须两者都懂,才能在不弄乱周围结构的情况下把真正的台词抠出来。
  • 内联引擎命令穿插在对话之间。 注音/振假名标注、名牌、颜色变化和点击等待都内联写在文本里。一个不认得它们的查找替换会把命令标记也翻译了,游戏就坏了。

净效应是:即便能流利读日语的译者,也必须先拆开一个专有的加密容器,再手工解析 Lua 表,再小心绕过内联标记 —— 然后才有一行被翻译。这正是 RuneTranslate 现在替你做的工作。

RuneTranslate 现在能做什么

RuneTranslate 把 Artemis 当作一等公民的引擎,用纯 TypeScript 处理整条流水线 —— 没有外部工具、没有 Python 附属程序、无需安装任何东西:

  • 直接读取 `.pfs` 归档。 它自行打开 PF8、PF6 和遗留的 PF2 归档格式,包括 PF8 的 `SHA-1` 密钥 XOR 加密 —— 复现引擎的密钥派生,让脚本内容以可读形式出来。
  • 提取对话、名字和选项。 它解析可读的 .ast(Lua 表)剧本脚本 —— 较老的 v1 和较新的 v2 布局 —— 和 .txt(面向行)脚本,以及许多游戏实际发布的编译过的二进制 `ASB` 剧本(按签名检测,即便被改名为像 .iet 这样的自定义扩展名),并在编辑器里列出每一条可翻译的行:说出的对话、名牌上的角色名,以及分支选项。
  • 保留引擎命令。 内联标记 —— 注音/振假名、名牌、颜色、点击等待 —— 和换行在任何东西到达翻译服务之前都会被屏蔽为数字占位符,然后在出去的路上被精确还原。文本被翻译;引擎指令不被翻译。
  • 导出一个覆盖补丁。 Artemis 从挂载的 .pfs 归档中读取它的脚本,所以导出时 RuneTranslate 会写出一个译好的覆盖补丁归档 —— 一个 root.pfs.NNN 文件,每个源 .pfs 各一个 —— 进游戏的一个副本。Artemis 最后挂载编号最高的归档并从中读取,于是补丁遮蔽打包的原件,而无需重建游戏自己的归档。(译好的脚本也会被松散地写出,作为无害的额外物。)这与我们的 Kirikiri 补丁流程是同一个覆盖补丁思路。

日译英是最佳场景,但你可以针对 30 多种语言中的任意一种 —— 西班牙语、法语、德语、葡萄牙语、俄语、中文、意大利语、土耳其语、越南语等等。

你需要准备什么

  • Windows 版 RuneTranslate —— 免费;每一种引擎和翻译服务都已解锁(免费档位是速度受限,而非功能受限)。
  • 一个 Artemis 游戏文件夹。这是包含游戏 .exe 及其 .pfs 归档的目录(脚本和资源都打包在那些里面)。
  • 一个目标语言 —— 英语、西班牙语、法语、德语、葡萄牙语、俄语、中文、意大利语、土耳其语、越南语,以及 20 多种其他语言。
  • 一个翻译服务。免费的 Google Translate 开箱即用;DeepL 有免费档位;OpenAI、Anthropic、一个本地模型(Ollama / LM Studio),以及任意 OpenAI 兼容 API 都需要自备密钥。Artemis 游戏对话量大、对语气敏感,所以 LLM(OpenAI / Anthropic)或 DeepL 通常读起来最好。

第 1 步:打开游戏文件夹

启动 RuneTranslate,点击 新建项目,把它指向 Artemis 游戏目录。引擎检测会自动运行 —— 当它看到引擎的 .pfs 归档时,就把项目识别为 Artemis。你的原始游戏文件夹永远不会被修改。

第 2 步:脚本是如何被读取的

RuneTranslate 会打开 .pfs 归档并替你把脚本取出来,一边走一边解密和解析:

  • 加密的 `PF8` 归档 —— 用 SHA-1 密钥 XOR 方案在应用内解密,于是你从不运行单独的拆包器。
  • 未加密的 `PF6` / 遗留 `PF2` 归档 —— 直接读取。
  • `.ast` 和 `.txt` 脚本 —— 解析出对话、名字和选项,并在编辑器里按文件分组列出。

内联引擎命令和换行在任何东西到达翻译服务之前都会被屏蔽为数字占位符,然后在出去的路上被还原 —— 于是注音标注、名牌和颜色标记原封不动地熬过整个往返。

第 3 步:翻译

选一个翻译服务并运行。对于视觉小说,LLM(OpenAI / Anthropic)最适合角色声线和语气,DeepL 对旁白又快又干净,而免费的 Google Translate 对短菜单字符串和选项够用。事先给你的角色阵容和反复出现的术语建好术语表,让名字在整个游戏里渲染得一模一样 —— 参见 术语表 101。完成后,用 AI 润色器 做可选的一遍处理,它会在上下文中重读每一行,收紧机器翻译往往留下的生硬、直译的措辞。

第 4 步:导出即刻可运行的副本

点击 导出。RuneTranslate 会写出一个游戏的译好副本,带一个 root.pfs.NNN 覆盖补丁归档 —— 每个源 .pfs 各一个 —— Artemis 会最后挂载它并优先于打包原件读取。(译好的脚本也会被松散地放出,作为无害的额外物。)运行它,游戏就用你的目标语言游玩。

已知的局限

  • 编译过的 `.asb` 剧本会被读取 —— 许多 Artemis 游戏以编译过的二进制 AST(以 ASB 标记开头的形式)而非可读的 .ast / .txt 发布剧本,还有一些改了扩展名(我们测过的一个游戏用 .iet)。RuneTranslate 按签名而非扩展名检测它,并就地翻译。当一个游戏把说话者名字存在图形里或作为命令名而非脚本内文本时,那些名字来自图片文字流程,而非脚本 —— 如果某个名字保持日语,通常就是这个原因。
  • 覆盖补丁是加载路径。 译好的 root.pfs.NNN 归档才是游戏实际读取的东西。在少数以不同方式挂载归档的作品上,导出可能需要调整 —— 正是这种真实游戏行为,我们随着报告陆续到来而加固。
  • 烘焙进图像美术里的文本 —— 一个作为位图绘制的标题画面或菜单按钮 —— 是像素,不是脚本文本,所以脚本提取器够不到它。那种情况请参见 图片文字翻译。
  • 确切的归档和脚本变体在不同版本之间可能不同。请始终在你的具体副本上验证。

遇到坎了?告诉我们

.pfs 读取器、加密和 .ast / .txt / .asb 解析器都已构建并经过单元测试,但 Artemis 有多年、每个工作室各异的变体。如果一个游戏检测不到、打不开归档、什么也提取不出,或导出了它无法加载的东西,请在我们的 Discord 上报告 —— 游戏名和它的打包方式(哪种 .pfs 变体,.ast 对 .txt 对 .asb)正是最能帮我们最快加固它的东西。

下载 RuneTranslate,把它指向你一直想读的那个 Artemis VN,试一试。想看看我们如何处理另一个基于归档的 VN 引擎,接着读 Kirikiri 教程。

相关阅读
01

如何翻译游戏的 .po 和 .mo 文件(gettext)

gettextpomoenginetutorial2026年8月4日 · 7 分钟
阅读 →
02

如何翻译 AliceSoft System 游戏(Rance、Evenicle……)

alicesoftranceengine2026年6月26日 · 6 分钟
阅读 →
03

如何将 YU-RIS 视觉小说翻译成英语

yu-risengine2026年6月25日 · 6 分钟
阅读 →

准备好试用 RuneTranslate 了吗?

免费版即可解锁全部引擎 + 全部翻译服务商。支持者($3/mo)解锁全速翻译。

下载 Windows 版