RuneTranslate يترجم الآن روايات محرك Artemis المرئية
RuneTranslate يترجم الآن روايات Artemis Engine المرئية — المحرك المبني على Lua من iMel/Mikage والذي تعتمد عليه نحو 730 إصدارًا على VNDB — إلى الإنجليزية وأكثر من 30 لغة. يقرأ أرشيفات .pfs الخاصة بالمحرك بلغة TypeScript خالصة، بما في ذلك تشفير XOR بمفتاح SHA-1 في PF8، ويستخرج الحوار وأسماء الشخصيات والخيارات من نصوص .ast (جدول Lua) و.txt، ويحافظ على أوامر الـ ruby ولوحة الاسم واللون المضمّنة، ويصدّر النصوص المترجمة كملفات منفصلة ليحمّلها اللعبة دون إعادة تحزيم. مضاف حديثًا ولم يُتحقق منه بعد على كثير من الألعاب الحقيقية — أبلغنا عن أي لعبة لا تُفتح.
يقرأ RuneTranslate الآن محرّكًا ظلّ حتى الآن شبه مستحيل على مترجمي المعجبين: Artemis Engine، إطار عمل الروايات المرئية المبني على Lua والذي تقف خلفه مئات الإصدارات اليابانية. إذا سبق أن فتحت مجلد لعبة Artemis فوجدت كومة من أرشيفات .pfs ولا شيء قابلًا للقراءة، ثم استسلمت — فهذا هو المحرّك بعينه. صار RuneTranslate الآن يكتشفه، ويفتح تلك الأرشيفات بلغة TypeScript خالصة (بما فيها التشفير)، ويقرأ الحوار وأسماء الشخصيات والخيارات من نصوصه، ويصدّر نسخة مترجمة تحمّلها اللعبة من تلقاء نفسها. إنه أحدث محرّك يدعمه RuneTranslate.
هذا محرّك جديد كليًّا، ويأتي الجزء الصادق أولًا: دعم Artemis بُني حديثًا، ولم يُتحقق منه بعد عبر كثير من الألعاب الحقيقية. لذا قبل أي شيء — إذا وجّهت RuneTranslate إلى لعبة Artemis فلم تُكتشف، أو لم تُفتح، أو صدّرت شيئًا ترفض اللعبة تحميله، فمن فضلك أخبرنا. والمزيد عن الكيفية في النهاية.
ما هو Artemis Engine فعليًّا
Artemis محرّك روايات مرئية يابانية تجاري طوّرته شركة iMel Inc. (الاستوديو المعروف أيضًا بـ Mikage). فبينما تعرض المحرّكات الأقدم مثل Kirikiri أو NScripter لغة كتابة نصوص خاصة بها، بُني Artemis حول Lua — فنصوص السيناريو فيه هي في جوهرها جداول بيانات Lua — ما يجعله مرنًا للمطوّرين، لكنه عمليًّا جدارٌ في وجه كل من يحاول ترجمة لعبة جاهزة من الخارج. وقد بُني عليه نحو 730 إصدارًا على VNDB، فهو أبعد ما يكون عن فضول متخصّص ضيّق؛ إنه أرشيف كامل من الأعمال طالما تخطّته أدوات الترجمة الآلية.
على القرص، تتكوّن لعبة Artemis من ملف .exe لنظام Windows إضافة إلى أرشيف مورد .pfs واحد أو أكثر يحمل النصوص والرسوم والصوت. والنصوص بداخلها في معظمها ملفات .ast (نصوص سيناريو بجداول Lua) وملفات .txt (صيغة أبسط قائمة على الأسطر). يعمل RuneTranslate مباشرة من تلك الأرشيفات والنصوص، فيغطّي اللعبة سواء أطلق الاستوديو السيناريوهات بصيغة .ast أم .txt.
لماذا كانت ألعاب Artemis عصيّة على الترجمة إلى هذا الحد
مقارنةً بمحرّك مدفوع بالمصدر مثل Ren'Py، يُخفي Artemis نصّه خلف عدّة طبقات. وقد أبقته بعض هذه الطبقات المحدّدة خارج المتناول أمام المترجمين اليدويين والأدوات الساذجة على حدّ سواء:
- كل شيء يقبع داخل أرشيفات `.pfs`. فالنصوص ليست منفصلة على القرص — بل مُحزَّمة في صيغة الحاوية
.pfsالخاصة بـ Artemis (سترى المتغيّراتPF8وPF6وPF2القديمة). ومن دون قارئ لتلك الصيغة، لا يوجد أصلًا ما يُحرَّر. - الأرشيفات الأحدث مشفّرة. فصيغة
PF8الحالية لا تحزّم الملفات فحسب، بل تشفّر محتوياتها: يُجرى XOR لكل مُدخَل مقابل مفتاح مشتقّ من تجزئةSHA-1لفهرس الأرشيف نفسه. لا يمكنك ببساطة اقتطاع البايتات — بل عليك إعادة إنتاج اشتقاق المفتاح الخاص بالمحرّك لتستعيد نصًّا قابلًا للقراءة. - النصوص بيانات Lua لا نصّ عادي. فسيناريو
.astهو جدول Lua — إذ يكون الحوار وأسماء المتحدّثين والخيارات حقولًا متداخلة داخل جداول مُهيكلة، مختلطةً بأوامر المحرّك. وثمة تخطيطان للجداول في الواقع (v1 أقدم وv2 أحدث)، وعلى المترجم فهم كليهما ليستخرج الأسطر المنطوقة فعلًا دون إفساد البنية المحيطة بها. - أوامر المحرّك المضمّنة منسوجة عبر الحوار. فتعليقات الـ ruby/furigana ولوحات الأسماء وتغييرات اللون ووقفات النقر مكتوبة مضمّنة مع النص. وأي بحث-واستبدال لا يتعرّف عليها سيترجم رموز الأوامر أيضًا، فتنكسر اللعبة.
المحصّلة النهائية: حتى المترجم الذي يقرأ اليابانية بطلاقة عليه أولًا فكّ حاوية مشفّرة مملوكة، ثم تحليل جداول Lua يدويًّا، ثم التنقّل بحذر حول الترميز المضمّن — قبل أن يُترجَم سطر واحد. هذا هو العمل الذي يؤدّيه RuneTranslate الآن نيابةً عنك.
ما الذي يفعله RuneTranslate الآن
يعامل RuneTranslate محرّك Artemis بوصفه محرّكًا من الدرجة الأولى، ويتولّى المسار بأكمله بلغة TypeScript خالصة — بلا أدوات خارجية، بلا وحدة Python جانبية، ولا شيء لتثبيته:
- يقرأ أرشيفات `.pfs` مباشرة. يفتح صيغ الأرشفة
PF8وPF6وPF2القديمة داخليًّا، بما في ذلك تشفير XOR بمفتاح `SHA-1` في PF8 — مُعيدًا إنتاج اشتقاق مفتاح المحرّك ليخرج محتوى النص قابلًا للقراءة. - يستخرج الحوار والأسماء والخيارات. يحلّل نصوص السيناريو
.astالقابلة للقراءة (بجداول Lua) — بتخطيطَيها v1 الأقدم وv2 الأحدث — ونصوص.txt(القائمة على الأسطر)، وكذلك سيناريوهات `ASB` الثنائية المُصرَّفة التي تُطلقها كثير من الألعاب فعليًّا (تُكتشف بالتوقيع، حتى لو أُعيدت تسميتها بامتداد مخصّص مثل.iet)، ثم يسرد كل سطر قابل للترجمة في المحرّر: الحوار المنطوق، وأسماء الشخصيات على لوحات الأسماء، والخيارات المتفرّعة. - يحافظ على أوامر المحرّك. فالترميز المضمّن — الـ ruby/furigana، ولوحات الأسماء، واللون، ووقفات النقر — وفواصل الأسطر تُقنَّع خلف عناصر نائبة رقمية قبل أن يصل أي شيء إلى مزوّد الترجمة، ثم تُستعاد تمامًا عند الخروج. فيُترجَم النص، ولا تُترجَم تعليمات المحرّك.
- يصدّر دون إعادة تحزيم. يفضّل Artemis نصًّا منفصلًا على القرص على الملف ذاته وهو محزَّم داخل
.pfs، لذا يكتب RuneTranslate عند التصدير نصوص.ast/.txtالمترجمة منفصلةً، على مساراتها الأصلية داخل الأرشيف، بجوار اللعبة. لا إعادة تحزيم — فاللعبة ببساطة تقرأ ترجماتك بدل الأصول المحزَّمة. (وهو نفس نهج تجاوز الملفات المنفصلة المتَّبع في مسار ترقيع Kirikiri لدينا.)
اليابانية → الإنجليزية هي الحالة المثلى، لكن يمكنك استهداف أيٍّ من أكثر من 30 لغة — الإسبانية والفرنسية والألمانية والبرتغالية والروسية والصينية والإيطالية والتركية والفيتنامية وغيرها.
ما الذي تحتاجه
- RuneTranslate لنظام Windows — مجاني؛ وكل محرّك ومزوّد مفتوح (الطبقة المجانية مقيّدة في السرعة لا في الميزات).
- مجلد لعبة Artemis. وهو الدليل الذي يحوي ملف
.exeالخاص باللعبة وأرشيفات.pfsالتابعة لها (النصوص والأصول محزَّمة بداخلها). - لغة هدف — الإنجليزية والإسبانية والفرنسية والألمانية والبرتغالية والروسية والصينية والإيطالية والتركية والفيتنامية، وأكثر من 20 لغة أخرى.
- مزوّد ترجمة واحد. يعمل Google Translate المجاني مباشرة؛ ولـ DeepL طبقة مجانية؛ أما OpenAI وAnthropic ونموذج محلي (Ollama / LM Studio) وأي واجهة برمجية متوافقة مع OpenAI فتتطلّب مفتاحك الخاص. ألعاب Artemis كثيفة الحوار وحسّاسة للنبرة، لذا عادةً ما يُقرأ نموذج LLM (OpenAI / Anthropic) أو DeepL بأفضل صورة.
الخطوة 1: افتح مجلد اللعبة
شغّل RuneTranslate، وانقر New project، ووجّهه إلى دليل لعبة Artemis. يعمل اكتشاف المحرّك تلقائيًّا — فحين يرى أرشيفات .pfs الخاصة بالمحرّك، يتعرّف على المشروع بوصفه Artemis. ولا يُعدَّل مجلد لعبتك الأصلي أبدًا.
الخطوة 2: كيف تُقرأ النصوص
يفتح RuneTranslate أرشيفات .pfs ويستخرج لك النصوص، فاكًّا التشفير ومحلِّلًا أثناء تقدّمه:
- أرشيفات `PF8` المشفّرة — تُفكّ داخليًّا باستخدام مخطّط XOR بمفتاح
SHA-1، فلا تُشغّل أبدًا أداة فكّ تحزيم منفصلة. - أرشيفات `PF6` غير المشفّرة / `PF2` القديمة — تُقرأ مباشرة.
- نصوص `.ast` و`.txt` — تُحلَّل بحثًا عن الحوار والأسماء والخيارات، وتُسرَد في المحرّر مجمّعةً حسب الملف.
تُقنَّع أوامر المحرّك المضمّنة وفواصل الأسطر خلف عناصر نائبة رقمية قبل أن يصل أي شيء إلى المزوّد، ثم تُستعاد عند الخروج — فتنجو تعليقات الـ ruby ولوحات الأسماء ووسوم اللون من رحلة الذهاب والإياب دون أن تُمَسّ.
الخطوة 3: ترجِم
اختر مزوّدًا وشغّل. في الرواية المرئية، نموذج LLM (OpenAI / Anthropic) هو الأفضل لصوت الشخصية ونبرتها، وDeepL سريع ونظيف للسرد، وGoogle Translate المجاني مناسب لسلاسل القوائم القصيرة والخيارات. جهّز مسردًا لطاقم شخصياتك ومصطلحاتك المتكرّرة مسبقًا لتظهر الأسماء متطابقة عبر اللعبة كلها — انظر Glossary 101. وعند الانتهاء، يعيد تمريرٌ اختياري عبر مُنقِّح الذكاء الاصطناعي قراءة كل سطر في سياقه ويشدّ الصياغة المتيبّسة والحرفية التي تميل الترجمة الآلية إلى تركها وراءها.
الخطوة 4: صدّر نسخة جاهزة للتشغيل
انقر Export. يكتب RuneTranslate نسخة مترجمة من اللعبة مع وضع نصوص .ast / .txt المترجمة منفصلةً على مساراتها الأصلية، جنبًا إلى جنب مع أرشيفات .pfs التي لم تُمَسّ. لا إعادة تحزيم — فـ Artemis يحمّل النصوص المنفصلة تفضيلًا لها على الأصول المحزَّمة، فتقرأ اللعبة ترجماتك ببساطة. شغّلها، وستعمل بلغتك الهدف.
قيود معروفة
- سيناريوهات `.asb` المُصرَّفة تُقرأ — كثير من ألعاب Artemis تُطلق السيناريو بصيغة AST ثنائي مُصرَّف (الصيغة التي تبدأ بعلامة
ASB) بدلًا من.ast/.txtالقابل للقراءة، ويعيد بعضها تسمية الامتداد (تستخدم إحدى الألعاب التي اختبرناها.iet). يكتشف RuneTranslate ذلك بالتوقيع لا بالامتداد، ويترجمه في مكانه. وحيثما تخزّن لعبةٌ أسماء المتحدّثين في رسوم أو بوصفها أسماء أوامر بدل نصّ داخل السيناريو، تأتي تلك الأسماء من مسار النص-الصورة لا من السيناريو — فإذا بقي اسم باليابانية، فهذا هو السبب عادةً. - تجاوز الملفات المنفصلة هو مسار التحميل المتوقّع، وهو يعمل في معظم ألعاب Artemis لأن المحرّك يفضّل نصًّا منفصلًا على النسخة المحزَّمة. أما في العنوان النادر الذي لا يحترم ذلك، فقد يحتاج التصدير إلى تعديل — وهذا بالضبط نوع سلوك الألعاب الحقيقية الذي ما زلنا نؤكّده.
- النص المطبوع داخل الرسوم — شاشة عنوان أو زر قائمة مرسوم بوصفه صورة نقطية — هو بكسلات لا نصّ سيناريو، فلا يستطيع مستخرِج النصوص الوصول إليه. ولذلك، انظر ترجمة النص-الصورة.
- قد يختلف المتغيّر الدقيق للأرشيف والنص بين الإصدارات. تحقّق دائمًا على نسختك بعينها.
إنه جديد كليًّا — أخبرنا بما يتعطّل
يستحقّ التكرار بوضوح: دعم Artemis إضافة جديدة ولم يُختبَر بعد عبر كثير من الألعاب الحقيقية. فقارئ .pfs، والتشفير، ومحلِّلا .ast / .txt مبنيّة ومُختبَرة بوحدات الاختبار، لكن للمحرّك سنوات من التنوّع الخاص بكل استوديو لم نرَه كلّه. فإذا وجّهت RuneTranslate إلى لعبة Artemis فلم تُكتشف، أو لم تُفتح الأرشيفات، أو لم يُستخرج شيء، أو صُدِّر شيء ترفض اللعبة تحميله، فمن فضلك أبلِغ عنه على Discord الخاص بنا — فاسم اللعبة وطريقة تحزيمها (أيّ متغيّر .pfs، و.ast مقابل .txt مقابل .asb) هو بالضبط ما يساعدنا على تعزيزه بأسرع وقت.
نزّل RuneTranslate، ووجّهه إلى رواية Artemis المرئية التي طالما أردت قراءتها، وجرّبه. ولإلقاء نظرة على كيفية تعاملنا مع محرّك رواية مرئية آخر قائم على الأرشيف، اقرأ دليل Kirikiri تاليًا.
مستعد لتجربة RuneTranslate؟
تفتح الباقة المجانية كل محرك + كل مزود ترجمة. باقة Supporter ($3/mo) تفتح السرعة الكاملة.
التنزيل لنظام Windows