RuneTranslate가 이제 Artemis 엔진 비주얼 노벨을 번역합니다
RuneTranslate가 이제 Artemis Engine 비주얼 노벨 — VNDB에 약 730개 릴리스가 등록된 iMel/Mikage의 Lua 기반 엔진 — 을 영어와 30개 이상의 언어로 번역합니다. 순수 TypeScript로 이 엔진의 .pfs 아카이브를 읽고(PF8의 SHA-1 키 기반 XOR 암호화 포함), .ast(Lua 테이블) 및 .txt 스크립트에서 대사, 등장인물 이름, 선택지를 추출하며, 인라인 루비/네임플레이트/색상 명령을 보존하고, 번역된 스크립트를 낱개 파일로 내보내 게임이 리팩 없이 로드하도록 합니다. 새로 추가되었으며 아직 다수의 실제 게임에서 검증되지 않았습니다 — 열리지 않는 게임이 있으면 제보해 주세요.
RuneTranslate가 지금까지 팬 번역가에게 사실상 손댈 수 없었던 엔진을 이제 읽어냅니다. 바로 수백 개의 일본 릴리스를 뒷받침해 온 Lua 기반 비주얼 노벨 프레임워크인 Artemis Engine입니다. Artemis 게임 폴더를 열었다가 .pfs 아카이브 더미만 있고 읽을 수 있는 것은 하나도 없어 포기한 적이 있다면 — 그게 바로 이 엔진입니다. RuneTranslate는 이제 이 엔진을 감지하고, 그 아카이브를 순수 TypeScript로(암호화까지 포함해) 열어, 스크립트에서 대사·등장인물 이름·선택지를 읽어낸 뒤, 게임이 스스로 로드하는 번역본을 내보냅니다. RuneTranslate가 지원하는 가장 최신 엔진입니다.
이것은 완전히 새로운 엔진이며, 솔직한 부분을 먼저 말씀드립니다. Artemis 지원은 갓 만들어졌고 아직 다수의 실제 게임에서 검증되지 않았습니다. 그러니 무엇보다도 먼저 — RuneTranslate를 Artemis 게임에 물렸는데 감지되지 않거나, 열리지 않거나, 게임이 로드하지 못하는 결과물을 내보낸다면 꼭 알려주세요. 방법은 글 끝에서 더 다룹니다.
Artemis Engine이란 실제로 무엇인가
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는 번역된.ast/.txt스크립트를 원래 아카이브 경로에 낱개로, 게임 옆에 씁니다. 리팩이 없습니다 — 게임은 그냥 묶인 원본 대신 여러분의 번역을 읽습니다. (우리 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를 실행하고 New project를 클릭한 뒤 Artemis 게임 디렉터리를 지정하세요. 엔진 감지는 자동으로 실행됩니다 — 엔진의 .pfs 아카이브를 발견하면 프로젝트를 Artemis로 인식합니다. 원본 게임 폴더는 절대 수정되지 않습니다.
2단계: 스크립트를 읽어내는 방식
RuneTranslate가 .pfs 아카이브를 열어 스크립트를 대신 뽑아내며, 진행하면서 복호화하고 파싱합니다:
- 암호화된 `PF8` 아카이브 —
SHA-1키 기반 XOR 방식으로 자체 복호화하므로, 별도의 언패커를 실행할 일이 없습니다. - 암호화되지 않은 `PF6` / 구형 `PF2` 아카이브 — 직접 읽습니다.
- `.ast` 및 `.txt` 스크립트 — 대사·이름·선택지를 파싱하여 파일별로 묶어 에디터에 나열합니다.
인라인 엔진 명령과 줄바꿈은 무엇이든 제공자에 도달하기 전에 숫자 자리표시자 뒤로 마스킹되었다가 나올 때 복원됩니다 — 그래서 루비 주석, 네임플레이트, 색상 태그가 왕복을 손상 없이 견뎌냅니다.
3단계: 번역
제공자를 고르고 실행하세요. 비주얼 노벨의 경우 캐릭터 목소리와 어조에는 LLM(OpenAI / Anthropic)이 가장 좋고, 내레이션에는 DeepL이 빠르고 깔끔하며, 짧은 메뉴 문자열과 선택지에는 무료 Google Translate로 충분합니다. 이름이 게임 전체에서 동일하게 표시되도록 등장인물과 반복 용어를 미리 용어집으로 정리하세요 — Glossary 101을 참고하세요. 마무리했다면 AI refiner를 이용한 선택적 패스가 각 줄을 문맥 속에서 다시 읽어, 기계 번역이 남기기 쉬운 딱딱하고 직역투인 표현을 다듬어 줍니다.
4단계: 바로 실행 가능한 사본 내보내기
Export를 클릭하세요. RuneTranslate는 번역된 .ast / .txt 스크립트를 원래 경로에 낱개로 놓고, 손대지 않은 .pfs 아카이브와 나란히 둔 게임 번역 사본을 씁니다. 리팩이 없습니다 — Artemis는 묶인 원본보다 낱개 스크립트를 우선해 로드하므로, 게임은 그냥 여러분의 번역을 읽습니다. 실행하면 대상 언어로 플레이됩니다.
알려진 한계
- 컴파일된 `.asb` 시나리오도 읽힙니다 — 많은 Artemis 게임이 시나리오를 읽을 수 있는
.ast/.txt대신 컴파일된 바이너리 AST(ASB마커로 시작하는 형식)로 출시하며, 일부는 확장자를 바꿔 놓습니다(우리가 테스트한 한 게임은.iet를 사용). RuneTranslate는 확장자가 아니라 시그니처로 이를 감지하여 그 자리에서 번역합니다. 게임이 화자 이름을 스크립트 내 텍스트가 아니라 그래픽이나 명령 이름으로 저장하는 경우, 그 이름은 스크립트가 아니라 이미지-텍스트 흐름에서 나옵니다 — 이름이 일본어로 남아 있다면 대개 그 때문입니다. - 낱개 파일 오버라이드가 기대되는 로드 경로이며, 대부분의 Artemis 게임에서 작동합니다. 엔진이 묶인 사본보다 낱개 스크립트를 선호하기 때문입니다. 이를 따르지 않는 드문 타이틀에서는 내보내기 조정이 필요할 수 있는데 — 이것이 바로 우리가 아직 확인 중인 실제 게임 동작의 종류입니다.
- 이미지 아트에 새겨진 텍스트 — 비트맵으로 그려진 타이틀 화면이나 메뉴 버튼 — 은 스크립트 텍스트가 아니라 픽셀이므로 스크립트 추출기가 닿을 수 없습니다. 그런 경우 이미지-텍스트 번역을 참고하세요.
- 정확한 아카이브와 스크립트 변형은 릴리스마다 다를 수 있습니다. 항상 여러분의 특정 사본에서 검증하세요.
완전히 새롭습니다 — 무엇이 깨지는지 알려주세요
분명하게 다시 말합니다. Artemis 지원은 새로 추가된 것이며 아직 다수의 실제 게임에서 테스트되지 않았습니다. .pfs 리더, 암호화, .ast / .txt 파서는 만들어졌고 단위 테스트를 거쳤지만, 이 엔진에는 우리가 다 보지 못한 수년간의 스튜디오별 변형이 있습니다. 그러니 RuneTranslate를 Artemis 게임에 물렸는데 감지되지 않거나, 아카이브가 열리지 않거나, 아무것도 추출하지 못하거나, 게임이 로드하지 못하는 결과물을 내보낸다면, 우리 Discord에 제보해 주세요 — 게임 이름과 패키징 방식(.pfs 변형이 무엇인지, .ast vs .txt vs .asb)이야말로 우리가 가장 빠르게 견고하게 만드는 데 도움이 됩니다.
RuneTranslate를 다운로드해서, 늘 읽고 싶었던 그 Artemis VN에 물려 시도해 보세요. 우리가 또 다른 아카이브 기반 VN 엔진을 어떻게 다루는지 보려면 다음으로 Kirikiri 가이드를 읽어 보세요.
RuneTranslate를 써볼 준비가 되셨나요?
무료 등급에서 모든 엔진과 모든 번역 제공자가 열립니다. Supporter($3/mo)로 최고 속도가 열립니다.
Windows용 다운로드