artemis · engine
Cách dịch visual novel dùng Artemis Engine sang tiếng Anh
RuneTranslate dịch visual novel dùng Artemis Engine (iMel/Mikage) sang tiếng Anh và hơn 30 ngôn ngữ: đọc archive .pfs (PF8, PF6 và PF2), trích hội thoại và lựa chọn, rồi xuất bản vá ghi đè root.pfs mà game tự nạp. Đã xác nhận chạy trong game.
Để dịch game Artemis Engine, RuneTranslate đọc một framework từng gần như không thể đụng tới với các nhóm dịch fan: Artemis Engine, framework visual novel dựa trên Lua đứng sau hàng trăm tựa game Nhật. Mở thư mục một game Artemis, bạn chỉ thấy một đống archive .pfs và không có gì đọc được. RuneTranslate phát hiện engine, mở các archive đó bằng Rust thuần, đọc hội thoại, tên nhân vật và lựa chọn từ script, rồi xuất một bản sao đã dịch mà game tự nạp.
Artemis khác nhau khá nhiều theo từng studio qua nhiều năm. Nếu bạn trỏ RuneTranslate vào một game Artemis mà nó không phát hiện được, không mở được, hoặc xuất ra bản game không nạp được, hãy báo cho chúng tôi (cách báo ở cuối bài).
Artemis Engine thực chất là gì
Artemis là engine visual novel thương mại của Nhật, do iMel Inc. phát triển (studio còn được biết đến với Mikage). Các engine cũ như Kirikiri hay NScripter có ngôn ngữ script riêng, còn Artemis xây dựng quanh Lua: script kịch bản về cơ bản là các bảng dữ liệu Lua. Điều này linh hoạt cho nhà phát triển, nhưng với người muốn dịch một game đã hoàn thiện từ bên ngoài thì thực tế là một bức tường. Khoảng 730 tựa trên VNDB được xây trên engine này, nên đây không phải hiện tượng ngách mà là cả một kho game mà các công cụ dịch máy từ trước đến nay đều bỏ qua.
Trên đĩa, một game Artemis gồm file .exe cho Windows cùng một hoặc nhiều archive tài nguyên .pfs chứa script, hình ảnh và âm thanh. Script bên trong chủ yếu là file .ast (script kịch bản dạng bảng Lua) và file .txt (định dạng đơn giản theo từng dòng). RuneTranslate làm việc trực tiếp từ các archive và script đó, nên xử lý được game dù studio phát hành kịch bản ở dạng .ast hay .txt.
Vì sao game Artemis khó dịch đến vậy
So với engine hướng mã nguồn như Ren'Py, Artemis giấu văn bản sau nhiều lớp. Vài lớp cụ thể đã khiến nó nằm ngoài tầm với của cả người dịch tay lẫn các công cụ sơ sài:
- Mọi thứ nằm trong archive `.pfs`. Script không nằm rời trên đĩa mà được đóng gói trong định dạng container
.pfsriêng của Artemis (bạn sẽ gặp các biến thểPF8,PF6vàPF2cũ). Không có trình đọc định dạng này thì ngay từ đầu đã chẳng có gì để chỉnh sửa. - Script là dữ liệu Lua, không phải văn bản thuần. Một kịch bản
.astlà một bảng Lua: hội thoại, tên người nói và lựa chọn là các trường lồng trong bảng có cấu trúc, trộn lẫn với lệnh của engine. Có hai bố cục bảng ngoài thực tế (v1 cũ và v2 mới), và người dịch phải hiểu cả hai mới lấy được các câu thoại thật mà không làm hỏng cấu trúc xung quanh. - Lệnh của engine nằm xen giữa hội thoại. Chú thích ruby/furigana, bảng tên, đổi màu và chờ bấm chuột được viết ngay trong văn bản. Công cụ tìm và thay thế không nhận ra chúng sẽ dịch luôn các token lệnh, và game hỏng.
Kết quả là: ngay cả người dịch đọc tiếng Nhật thành thạo cũng phải giải nén một container độc quyền, tự phân tích các bảng Lua, rồi cẩn thận tránh các mã đánh dấu xen kẽ, trước khi dịch được một dòng nào. RuneTranslate giờ làm hết phần việc đó cho bạn.
RuneTranslate làm được gì hiện nay
RuneTranslate coi Artemis là một engine được hỗ trợ đầy đủ và xử lý toàn bộ quy trình bằng Rust thuần: không công cụ ngoài, không sidecar Python, không cần cài thêm gì:
- Đọc trực tiếp archive `.pfs`. RuneTranslate tự mở các định dạng archive
PF8,PF6vàPF2cũ, nên nội dung script đọc được ngay. - Trích hội thoại, tên và lựa chọn. Nó phân tích các script kịch bản
.ast(bảng Lua) đọc được, cả bố cục v1 cũ lẫn v2 mới, các script.txt(theo từng dòng), VÀ cả kịch bản nhị phân `ASB` đã biên dịch mà nhiều game thực sự phát hành (nhận ra qua chữ ký, kể cả khi bị đổi sang phần mở rộng riêng như.iet), rồi liệt kê mọi dòng cần dịch trong trình chỉnh sửa: hội thoại, tên nhân vật trên bảng tên và các lựa chọn rẽ nhánh. - Giữ nguyên lệnh của engine. Mã đánh dấu xen trong văn bản (ruby/furigana, bảng tên, màu, chờ bấm chuột) và ngắt dòng được che sau các placeholder số trước khi gửi tới nhà cung cấp dịch, rồi khôi phục chính xác khi nhận về. Văn bản được dịch, còn lệnh của engine thì không.
- Xuất bản vá ghi đè. Artemis đọc script từ các archive
.pfsđã được mount, nên khi xuất, RuneTranslate ghi một archive bản vá ghi đè đã dịch (fileroot.pfs.NNN, mỗi.pfsgốc một file) vào bản sao của game. Artemis mount archive có số cao nhất sau cùng và đọc từ đó, nên bản vá che các bản gốc đã đóng gói mà không cần dựng lại archive của game. (Script đã dịch cũng được ghi rời như một phần thừa vô hại.) Đây là cùng ý tưởng bản vá ghi đè với luồng bản vá Kirikiri của chúng tôi.
Tiếng Nhật sang tiếng Anh là cặp hợp nhất, nhưng bạn có thể chọn ngôn ngữ đích trong hơn 30 ngôn ngữ: tiếng Tây Ban Nha, Pháp, Đức, Bồ Đào Nha, Nga, Trung, Ý, Thổ Nhĩ Kỳ, Việt, và nhiều nữa.
Bạn cần gì
- RuneTranslate cho Windows hoặc Linux: miễn phí, mọi engine và mọi nhà cung cấp trừ RuneLingua đều mở sẵn (gói Miễn phí chỉ bị giới hạn tốc độ, không bị giới hạn tính năng).
- Một thư mục game Artemis. Đó là thư mục chứa
.execủa game và các archive.pfs(script và tài nguyên được đóng gói trong đó). - Một ngôn ngữ đích: tiếng Anh, Tây Ban Nha, Pháp, Đức, Bồ Đào Nha, Nga, Trung, Ý, Thổ Nhĩ Kỳ, Việt và hơn 20 ngôn ngữ khác.
- Một nhà cung cấp dịch. Google Translate miễn phí dùng được ngay; DeepL có bậc miễn phí; OpenAI, Anthropic, mô hình cục bộ (Ollama / LM Studio) và mọi API tương thích OpenAI thì dùng khóa của bạn. Game Artemis nặng hội thoại và nhạy với giọng điệu, nên LLM (OpenAI / Anthropic) hoặc DeepL thường cho bản đọc hay nhất.
Bước 1: Mở thư mục game
Mở RuneTranslate, bấm Dự án mới và trỏ vào thư mục game Artemis. Engine được tự phát hiện: khi thấy các archive .pfs của engine, RuneTranslate nhận ra dự án là Artemis. Thư mục game gốc của bạn không bao giờ bị chỉnh sửa.
Bước 2: Script được đọc như thế nào
RuneTranslate mở các archive .pfs và lấy script ra cho bạn, vừa giải nén vừa phân tích:
- Archive `PF8`: được giải nén ngay trong RuneTranslate, nên bạn không cần chạy trình giải nén riêng.
- Archive `PF6` / `PF2` cũ: đọc trực tiếp.
- Script `.ast` và `.txt`: được phân tích để lấy hội thoại, tên và lựa chọn, rồi liệt kê trong trình chỉnh sửa, nhóm theo file.
Lệnh của engine và ngắt dòng được che sau các placeholder số trước khi tới nhà cung cấp, rồi khôi phục khi nhận về, nên chú thích ruby, bảng tên và thẻ màu đi một vòng mà không bị đổi.
Bước 3: Dịch
Chọn nhà cung cấp rồi bấm Dịch. Với visual novel, LLM (OpenAI / Anthropic) là lựa chọn tốt nhất cho giọng nhân vật và sắc thái, DeepL nhanh và sạch cho phần dẫn truyện, còn Google Translate miễn phí đủ cho các chuỗi menu ngắn và lựa chọn. Hãy lập bảng thuật ngữ cho dàn nhân vật và các thuật ngữ lặp lại ngay từ đầu để tên được dịch giống nhau xuyên suốt game, xem Bảng thuật ngữ 101. Khi dịch xong, có thể chạy thêm một lượt với bộ tinh chỉnh AI: nó đọc lại từng dòng trong ngữ cảnh và làm mượt những chỗ cứng, dịch sát chữ mà dịch máy thường để lại.
Bước 4: Xuất bản sao chạy được ngay
Bấm Xuất. RuneTranslate ghi một bản sao đã dịch của game kèm archive bản vá ghi đè root.pfs.NNN (mỗi .pfs gốc một file) mà Artemis mount sau cùng và ưu tiên đọc hơn các bản gốc đã đóng gói. (Script đã dịch cũng được thả rời như một phần thừa vô hại.) Chạy game là bạn chơi bằng ngôn ngữ đích.
Giới hạn đã biết
- Kịch bản `.asb` đã biên dịch vẫn đọc được. Nhiều game Artemis phát hành kịch bản dưới dạng AST nhị phân đã biên dịch (dạng bắt đầu bằng dấu
ASB) thay vì.ast/.txtđọc được, và vài game đổi cả phần mở rộng (một game chúng tôi thử dùng.iet). RuneTranslate nhận ra theo chữ ký chứ không theo phần mở rộng, và dịch ngay tại chỗ. Nếu game lưu tên người nói trong hình ảnh hoặc dưới dạng tên lệnh thay vì văn bản trong script, các tên đó không nằm trong script, nên chúng giữ nguyên như được vẽ trừ khi game để ảnh đó dưới dạng file rời mà bạn mở được trong Studio ảnh. Nếu một cái tên vẫn là tiếng Nhật, thường là vì lý do này. - Bản vá ghi đè là đường nạp. Archive
root.pfs.NNNđã dịch mới là thứ game thực sự đọc. Với số ít tựa mount archive theo cách khác, phần xuất có thể cần chỉnh lại. Đây đúng là kiểu hành vi game thật mà chúng tôi củng cố dần theo các báo cáo gửi về. - Chữ vẽ sẵn trong ảnh (màn hình tiêu đề hay nút menu vẽ thành bitmap) là điểm ảnh chứ không phải văn bản script. Dịch chữ trong ảnh chỉ với tới nó khi game để ảnh đó dưới dạng file rời, không nằm trong
.pfs. - Biến thể archive và script cụ thể có thể khác nhau giữa các bản phát hành. Luôn kiểm tra trên bản game của bạn.
Gặp trục trặc? Báo cho chúng tôi
Trình đọc .pfs và các bộ phân tích .ast / .txt / .asb đã được thử trên game thật và xác nhận trong game, nhưng Artemis khác nhau theo từng studio qua nhiều năm. Nếu một game không được phát hiện, không mở được archive, không trích ra gì, hoặc xuất ra bản không nạp được, hãy báo trên Discord của chúng tôi. Tên game và cách nó được đóng gói (biến thể .pfs nào, .ast hay .txt hay .asb) chính là thông tin giúp chúng tôi củng cố nhanh nhất.
Tải RuneTranslate, trỏ vào visual novel Artemis mà bạn đã muốn đọc từ lâu và thử xem. Để xem chúng tôi xử lý một engine VN dựa trên archive khác thế nào, đọc tiếp hướng dẫn Kirikiri.
Bài liên quan
Sẵn sàng thử RuneTranslate?
Gói miễn phí mở khóa mọi engine và mọi nhà cung cấp dịch trừ RuneLingua. Supporter ($3.99/tháng) mở khóa tốc độ tối đa.
Tải cho Windows & Linux
