Motor compatible · Unity
Una gran parte de los juegos indie y doujin japoneses modernos — RPG, novelas visuales y títulos de simulación — se publican en Unity. RuneTranslate traduce el texto que esos juegos externalizan: cargas de TextAsset (blobs de escenario JSON / CSV / TSV / texto plano) y campos de cadena de MonoBehaviour empaquetados dentro de .assets, archivos de nivel y AssetBundles (incluidos los juegos de un solo bundle data.unity3d), más archivos de script sueltos bajo StreamingAssets. Un motor de ejecución UnityPy incluido lee y escribe los recursos binarios, todo en un espacio de trabajo por proyecto para que el juego original se mantenga intacto. El texto de MonoBehaviour se maneja en compilaciones tanto Mono como IL2CPP — en Mono los árboles de tipos vienen de los Managed/*.dll del juego, y en IL2CPP RuneTranslate los reconstruye a partir de GameAssembly.dll + global-metadata.dat (mejor esfuerzo; necesita metadatos analizables). También descifra los bundles Addressable cifrados con AES-CTR e inyecta una fuente de reserva no latina para CJK y otros sistemas de escritura. Fuera del alcance: los literales de cadena compilados en el código del juego (Assembly-CSharp.dll). Verifica en un juego real antes de redistribuir.
Los scripts de VN/RPG de Unity suelen externalizarse como tablas JSON o CSV, así que los nombres de personajes y los términos recurrentes aparecen cientos de veces a lo largo de muchos TextAssets. Los proveedores los reformularán de forma inconsistente de un lote a otro. Pon en el glosario al protagonista, al grupo, los NPC recurrentes, los nombres de lugares y cualquier término característico de habilidad o sistema desde el principio para que cada TextAsset y archivo de StreamingAssets los renderice de forma idéntica. Glosario 101 →
Apunta RuneTranslate al directorio del juego (el que contiene la carpeta <Name>_Data). La detección del motor busca globalgamemanagers / data.unity3d / resources.assets. El motor de ejecución UnityPy incluido se usa automáticamente — sin necesidad de instalación de Python aparte.
RuneTranslate escanea los archivos serializados en busca de cadenas TextAsset y MonoBehaviour en el idioma de origen (japonés por defecto; configura cualquier idioma de origen soportado por proyecto), más los archivos de script sueltos bajo StreamingAssets. Las cargas estructuradas (JSON / KAG / HTML) se cortan en líneas traducibles individuales para que la estructura del archivo complete el ida y vuelta intacta.
DeepL es un fuerte predeterminado para el diálogo narrativo; OpenAI GPT-4o o Anthropic Claude manejan mejor el habla estilizada y la onomatopeya. Google Translate gratuito o un modelo local (Ollama / LM Studio) cubren las cadenas de menú y los nombres de objetos. El enrutamiento de proveedores puede enviar cadenas cortas a un carril barato.
Al exportar, RuneTranslate copia el juego y escribe las cadenas traducidas de vuelta en los archivos de recursos y los scripts de StreamingAssets en el sitio. La compilación traducida se ejecuta como el original — sin malabares manuales de recursos.