RuneTranslate artık Artemis motorlu görsel romanları çeviriyor
RuneTranslate artık Artemis Engine görsel romanlarını — iMel/Mikage'nin Lua tabanlı, VNDB'de yaklaşık 730 sürümün arkasındaki motorunu — İngilizceye ve 30'dan fazla dile çeviriyor. Motorun .pfs arşivlerini saf TypeScript ile okur, PF8'in SHA-1 anahtarlı XOR şifrelemesi dahil; .ast (Lua tablosu) ve .txt betiklerinden diyalogları, karakter adlarını ve seçimleri çıkarır; satır içi ruby/isim levhası/renk komutlarını korur ve çevrilmiş betikleri, oyun yeniden paketleme olmadan yükleyebilsin diye ayrık dosyalar olarak dışa aktarır. Yeni eklendi ve henüz çok sayıda gerçek oyunda doğrulanmadı — açılmayan her oyunu bize bildirin.
RuneTranslate artık, şimdiye dek fan çevirmenleri için neredeyse dokunulmaz kalmış bir motoru okuyor: Artemis Engine, yüzlerce Japonca sürümün arkasındaki Lua tabanlı görsel roman çatısı. Bir Artemis oyununun klasörünü açıp bir yığın .pfs arşivi ve okunabilir hiçbir şey bulamadan pes ettiyseniz — işte o motor budur. RuneTranslate artık onu algılıyor, bu arşivleri saf TypeScript ile açıyor (şifreleme dahil), betiklerinden diyalogları, karakter adlarını ve seçimleri okuyor ve oyunun kendi başına yüklediği çevrilmiş bir kopya dışa aktarıyor. RuneTranslate'in desteklediği en yeni motor budur.
Bu yepyeni bir motor ve dürüst kısmı önce söyleyelim: Artemis desteği yeni oluşturuldu ve henüz çok sayıda gerçek oyunda doğrulanmadı. Yani her şeyden önce — RuneTranslate'i bir Artemis oyununa yönlendirdiğinizde algılamıyorsa, açmıyorsa ya da oyunun yükleyemeyeceği bir şey dışa aktarıyorsa, lütfen bize söyleyin. Nasıl yapacağınıza dair ayrıntılar sonda.
Artemis Engine gerçekte nedir
Artemis, iMel Inc. (aynı zamanda Mikage ile tanınan stüdyo) tarafından geliştirilen ticari bir Japon görsel roman motorudur. Kirikiri ya da NScripter gibi daha eski motorlar özel, alana özgü bir betik dili sunarken, Artemis Lua üzerine kuruludur — senaryo betikleri esasen Lua veri tablolarıdır — bu da onu geliştiriciler için esnek kılar ama pratikte, bitmiş bir oyunu dışarıdan çevirmeye çalışan herkes için bir duvara dönüşür. VNDB'de yaklaşık 730 sürüm onun üzerine kuruludur, dolayısıyla niş bir merak nesnesi olmaktan çok uzaktır; makine çeviri araçlarının tarihsel olarak atladığı koca bir eski katalogdur.
Diskte bir Artemis oyunu, bir Windows .exe dosyası ile betikleri, görselleri ve sesi barındıran bir veya daha fazla .pfs kaynak arşivinden oluşur. İçindeki betikler çoğunlukla .ast dosyaları (Lua tablosu senaryo betikleri) ve .txt dosyalarıdır (daha basit, satır odaklı bir biçim). RuneTranslate doğrudan bu arşivler ve betikler üzerinden çalışır, dolayısıyla stüdyo senaryoları .ast olarak da .txt olarak da dağıtmış olsa oyunu kapsar.
Artemis oyunlarını çevirmek neden bu kadar zor oldu
Ren'Py gibi kaynak temelli bir motorla kıyaslandığında, Artemis metnini birkaç katmanın arkasına saklar. Birkaç belirli katman, onu hem elle çevirenler hem de basit araçlar için ulaşılmaz kıldı:
- Her şey `.pfs` arşivlerinin içinde yaşar. Betikler diskte ayrık durmaz — Artemis'in kendi
.pfskapsayıcı biçimine paketlenmiştir (PF8,PF6ve eskiPF2çeşitlerini göreceksiniz). Bu biçim için bir okuyucu olmadan, en baştan düzenlenecek hiçbir şey yoktur. - En yeni arşivler şifrelidir. Güncel
PF8biçimi dosyaları yalnızca paketlemekle kalmaz, içeriklerini de şifreler: her girdi, arşivin kendi dizininin birSHA-1özetinden türetilen bir anahtara karşı XOR'lanır. Baytları öylece kesip alamazsınız — okunabilir betiği geri elde etmek için motorun anahtar türetmesini yeniden üretmeniz gerekir. - Betikler düz metin değil, Lua verisidir. Bir
.astsenaryosu bir Lua tablosudur — diyaloglar, konuşan adları ve seçimler, motor komutlarıyla karışmış hâlde, yapılandırılmış tabloların içine yuvalanmış alanlardır. Ortalıkta iki tablo düzeni vardır (daha eski bir v1 ve daha yeni bir v2) ve bir çevirmenin, çevrelerindeki yapıyı bozmadan gerçekten söylenen satırları çekip çıkarmak için her ikisini de anlaması gerekir. - Satır içi motor komutları diyalogun içine örülüdür. Ruby/furigana açıklamaları, isim levhaları, renk değişimleri ve tıklama beklemeleri metinle satır içi yazılır. Bunları tanımayan bir bul-değiştir, komut belirteçlerini de çevirir ve oyun bozulur.
Net sonuç: Japoncayı akıcı okuyabilen bir çevirmen bile önce özel, şifreli bir kapsayıcıyı açmak, sonra Lua tablolarını elle ayrıştırmak, sonra da satır içi işaretlemenin etrafından dikkatle dolaşmak zorundadır — tek bir satır çevrilmeden önce. İşte RuneTranslate'in artık sizin yerinize yaptığı iş bu.
RuneTranslate şimdi ne yapıyor
RuneTranslate, Artemis'i birinci sınıf bir motor olarak ele alır ve tüm hattı saf TypeScript ile yürütür — harici araç yok, Python yardımcı bileşeni yok, kurulacak hiçbir şey yok:
- `.pfs` arşivlerini doğrudan okur.
PF8,PF6ve eskiPF2arşiv biçimlerini kendi içinde açar; buna PF8'in `SHA-1` anahtarlı XOR şifrelemesi de dahildir — betik içeriği okunabilir çıksın diye motorun anahtar türetmesini yeniden üretir. - Diyalogları, adları ve seçimleri çıkarır. Okunabilir
.ast(Lua tablosu) senaryo betiklerini — hem daha eski v1 hem de daha yeni v2 düzenini —.txt(satır odaklı) betikleri VE birçok oyunun aslında dağıttığı derlenmiş ikili `ASB` senaryolarını (.ietgibi özel bir uzantıya yeniden adlandırılmış olsa bile imzayla algılanır) ayrıştırır ve düzenleyicide çevrilebilir her satırı listeler: söylenen diyalog, isim levhalarındaki karakter adları ve dallanan seçimler. - Motor komutlarını korur. Satır içi işaretleme — ruby/furigana, isim levhaları, renk, tıklama beklemeleri — ve satır sonları, herhangi bir şey çeviri sağlayıcısına ulaşmadan önce sayısal yer tutucuların arkasına gizlenir, sonra çıkışta birebir geri getirilir. Metin çevrilir; motor talimatları çevrilmez.
- Yeniden paketlemeden dışa aktarır. Artemis, diskteki ayrık bir betiği aynı dosyanın
.pfsiçine paketlenmiş hâline tercih eder; bu yüzden dışa aktarımda RuneTranslate çevrilmiş.ast/.txtbetiklerini, özgün arşiv yollarında, oyunun yanına ayrık dosyalar olarak yazar. Yeniden paketleme yoktur — oyun, paketlenmiş orijinaller yerine yalnızca sizin çevirilerinizi okur. (Bu, Kirikiri yama akışımızdaki ayrık dosya geçersiz kılma yaklaşımının aynısıdır.)
Japonca → İngilizce en verimli ikilidir, ancak 30'dan fazla dilin herhangi birini hedefleyebilirsiniz — İspanyolca, Fransızca, Almanca, Portekizce, Rusça, Çince, İtalyanca, Türkçe, Vietnamca ve daha fazlası.
Neye ihtiyacınız var
- Windows için RuneTranslate — ücretsiz; her motor ve sağlayıcı açıktır (ücretsiz katman özellikte değil, hızda kısıtlıdır).
- Bir Artemis oyun klasörü. Bu, oyunun
.exedosyasını ve.pfsarşivlerini içeren dizindir (betikler ve varlıklar bunların içine paketlenmiştir). - Bir hedef dil — İngilizce, İspanyolca, Fransızca, Almanca, Portekizce, Rusça, Çince, İtalyanca, Türkçe, Vietnamca ve 20'den fazlası.
- Bir çeviri sağlayıcısı. Ücretsiz Google Translate kutudan çıktığı gibi çalışır; DeepL'in ücretsiz bir katmanı vardır; OpenAI, Anthropic, yerel bir model (Ollama / LM Studio) ve OpenAI uyumlu her API kendi anahtarınızla kullanılır. Artemis oyunları diyalog ağırlıklı ve tona duyarlıdır, bu yüzden bir LLM (OpenAI / Anthropic) veya DeepL genellikle en iyi sonucu verir.
1. Adım: Oyun klasörünü açın
RuneTranslate'i başlatın, Yeni proje'ye tıklayın ve onu Artemis oyun dizinine yönlendirin. Motor algılama otomatik çalışır — motorun .pfs arşivlerini gördüğünde projeyi Artemis olarak tanır. Özgün oyun klasörünüz asla değiştirilmez.
2. Adım: Betikler nasıl okunur
RuneTranslate .pfs arşivlerini açar ve betikleri, yol boyunca şifresini çözüp ayrıştırarak sizin için çıkarır:
- Şifreli `PF8` arşivleri —
SHA-1anahtarlı XOR şemasıyla kendi içinde çözülür, böylece hiçbir zaman ayrı bir açıcı çalıştırmazsınız. - Şifresiz `PF6` / eski `PF2` arşivleri — doğrudan okunur.
- `.ast` ve `.txt` betikleri — diyalog, ad ve seçimler için ayrıştırılır ve düzenleyicide dosyaya göre gruplanmış hâlde listelenir.
Satır içi motor komutları ve satır sonları, herhangi bir şey sağlayıcıya ulaşmadan önce sayısal yer tutucuların arkasına gizlenir, sonra çıkışta geri getirilir — böylece ruby açıklamaları, isim levhaları ve renk etiketleri gidiş-dönüş yolculuğundan dokunulmadan çıkar.
3. Adım: Çevirin
Bir sağlayıcı seçin ve çalıştırın. Bir görsel roman için karakter sesi ve tonu bakımından bir LLM (OpenAI / Anthropic) en iyisidir, anlatım için DeepL hızlı ve temizdir, kısa menü dizeleri ve seçimler için de ücretsiz Google Translate yeterlidir. Adların oyun boyunca birebir aynı görünmesi için kadronuzu ve tekrar eden terimleri önceden sözlüğe ekleyin — bkz. Sözlük 101. İşiniz bittiğinde, YZ inceltici ile yapılacak isteğe bağlı bir geçiş her satırı bağlamı içinde yeniden okur ve makine çevirisinin ardında bırakmaya eğilimli olduğu katı, birebir ifadeleri toparlar.
4. Adım: Çalıştırmaya hazır bir kopya dışa aktarın
Dışa aktar'a tıklayın. RuneTranslate, çevrilmiş .ast / .txt betikleri özgün yollarında ayrık olarak yerleştirilmiş, dokunulmamış .pfs arşivlerinin yanında yer alan bir oyun kopyası yazar. Yeniden paketleme yoktur — Artemis ayrık betikleri paketlenmiş orijinallere tercih ederek yükler, böylece oyun yalnızca sizin çevirilerinizi okur. Çalıştırın; hedef dilinizde oynanır.
Bilinen sınırlamalar
- Derlenmiş `.asb` senaryoları okunur — birçok Artemis oyunu senaryoyu, okunabilir
.ast/.txtyerine derlenmiş ikili AST olarak (ASBişaretiyle başlayan biçim) dağıtır ve bazıları uzantıyı yeniden adlandırır (test ettiğimiz bir oyun.ietkullanıyor). RuneTranslate bunu uzantıdan değil imzadan algılar ve yerinde çevirir. Bir oyun konuşan adlarını betik içi metin yerine grafiklerde ya da komut adları olarak saklıyorsa, o adlar betikten değil görsel metin akışından gelir — bir ad Japonca kalıyorsa genellikle sebebi budur. - Ayrık dosya geçersiz kılma, beklenen yükleme yoludur ve çoğu Artemis oyununda işe yarar; çünkü motor ayrık bir betiği paketlenmiş kopyaya tercih eder. Buna uymayan nadir bir oyunda dışa aktarımın ayarlanması gerekebilir — bu tam da hâlâ doğrulamakta olduğumuz türden gerçek oyun davranışıdır.
- Görsel sanata gömülü metin — bit eşlem olarak çizilmiş bir başlık ekranı veya menü düğmesi — betik metni değil piksellerdir, dolayısıyla betik çıkarıcı ona ulaşamaz. Bunun için bkz. görsel metin çevirisi.
- Tam arşiv ve betik çeşidi sürümden sürüme farklılık gösterebilir. Her zaman kendi kopyanızda doğrulayın.
Yepyeni — neyin bozulduğunu bize bildirin
Açıkça yinelemekte fayda var: Artemis desteği yeni bir eklemedir ve henüz çok sayıda gerçek oyunda test edilmedi. .pfs okuyucusu, şifreleme ve .ast / .txt ayrıştırıcıları kurulu ve birim testlerinden geçmiş durumda, ancak motorun stüdyodan stüdyoya değişen, hepsini görmediğimiz yıllara yayılan çeşitlemeleri var. Yani RuneTranslate'i bir Artemis oyununa yönlendirdiğinizde algılamıyor, arşivleri açmıyor, hiçbir şey çıkarmıyor ya da oyunun yükleyemeyeceği bir şey dışa aktarıyorsa, lütfen Discord sunucumuzda bildirin — oyunun adı ve nasıl paketlendiği (hangi .pfs çeşidi, .ast mi .txt mi .asb mi) desteği en hızlı şekilde sağlamlaştırmamıza tam olarak yardımcı olan şeydir.
RuneTranslate'i indirin, onu uzun süredir okumak istediğiniz o Artemis görsel romanına yönlendirin ve deneyin. Arşiv tabanlı başka bir VN motorunu nasıl ele aldığımıza bakmak için sıradaki Kirikiri rehberini okuyun.
RuneTranslate'i denemeye hazır mısın?
Ücretsiz katman her motoru + her çeviri sağlayıcısını açar. Supporter ($3/mo) tam hızı açar.
Windows için indir