Moteur pris en charge · Unity
Une grande part des jeux indépendants et doujin japonais modernes — RPG, romans visuels et titres de simulation — sortent sur Unity. RuneTranslate traduit le texte que ces jeux externalisent : les charges utiles TextAsset (blobs de scénario JSON / CSV / TSV / texte brut) et les champs de chaîne MonoBehaviour empaquetés dans les .assets, les fichiers de niveau et les AssetBundles (y compris les jeux à bundle unique data.unity3d), plus les fichiers de script libres sous StreamingAssets. Un runtime UnityPy embarqué lit et écrit les actifs binaires, le tout dans un espace de travail par projet pour que le jeu d'origine reste intact. Le texte MonoBehaviour est géré sur les builds Mono et IL2CPP — sur Mono les arbres de types proviennent des Managed/*.dll du jeu, et sur IL2CPP RuneTranslate les reconstruit à partir de GameAssembly.dll + global-metadata.dat (au mieux ; nécessite des métadonnées analysables). Il déchiffre aussi les AssetBundles Addressable chiffrés en AES-CTR et injecte une police de repli non latine pour le CJC et d'autres écritures. Hors périmètre : les littéraux de chaîne compilés dans le code du jeu (Assembly-CSharp.dll). Vérifiez sur un vrai jeu avant de redistribuer.
Les scripts de romans visuels/RPG Unity sont généralement externalisés en tables JSON ou CSV, si bien que les noms de personnages et les termes récurrents apparaissent des centaines de fois sur de nombreux TextAssets. Les fournisseurs les reformuleront de façon incohérente d'un lot à l'autre. Mettez au glossaire le protagoniste, le groupe, les PNJ récurrents, les noms de lieux, et tout terme de compétence ou de système signature en amont pour que chaque fichier TextAsset et StreamingAssets les affiche à l'identique. Le glossaire : les bases →
Pointez RuneTranslate vers le répertoire du jeu (celui contenant le dossier <Name>_Data). La détection du moteur cherche globalgamemanagers / data.unity3d / resources.assets. Le runtime UnityPy embarqué est utilisé automatiquement — pas d'installation Python séparée nécessaire.
RuneTranslate scanne les fichiers sérialisés pour les chaînes TextAsset et MonoBehaviour en langue source (japonais par défaut ; définissez toute langue source prise en charge par projet), plus les fichiers de script libres sous StreamingAssets. Les charges utiles structurées (JSON / KAG / HTML) sont découpées en lignes traduisibles individuelles pour que la structure du fichier fasse l'aller-retour intacte.
DeepL est un solide défaut pour le dialogue narratif ; OpenAI GPT-4o ou Anthropic Claude gèrent mieux le langage stylisé et les onomatopées. Google Translate gratuit ou un modèle local (Ollama / LM Studio) couvre les chaînes de menu et les noms d'objets. Le routage de fournisseurs peut envoyer les courtes chaînes vers une voie bon marché.
À l'export, RuneTranslate copie le jeu et réécrit les chaînes traduites dans les fichiers d'actifs et les scripts StreamingAssets en place. Le build traduit fonctionne comme l'original — pas de jonglage manuel d'actifs.