Engine suportado · Unity
Uma grande parcela dos jogos indie e doujin japoneses modernos — RPGs, visual novels e jogos de simulação — é lançada em Unity. O RuneTranslate traduz o texto que esses jogos externalizam: cargas de TextAsset (blobs de cenário em JSON / CSV / TSV / texto puro) e campos de string de MonoBehaviour empacotados dentro de .assets, arquivos de level e AssetBundles (incluindo jogos de bundle único data.unity3d), mais arquivos de script soltos em StreamingAssets. Um runtime UnityPy embutido lê e escreve os assets binários, tudo em um espaço de trabalho por projeto para que o jogo original permaneça intocado. O texto de MonoBehaviour é tratado tanto em builds Mono quanto IL2CPP — no Mono as type trees vêm dos Managed/*.dll do jogo, e no IL2CPP o RuneTranslate as reconstrói a partir de GameAssembly.dll + global-metadata.dat (melhor esforço; precisa de metadados analisáveis). Ele também descriptografa AssetBundles Addressable criptografados com AES-CTR e injeta uma fonte de fallback não-latina para CJK e outros sistemas de escrita. Fora do escopo: literais de string compilados no código do jogo (Assembly-CSharp.dll). Verifique em um jogo real antes de redistribuir.
Os scripts de VN/RPG em Unity geralmente são externalizados como tabelas JSON ou CSV, então nomes de personagens e termos recorrentes aparecem centenas de vezes em muitos TextAssets. Os provedores vão reformulá-los de forma inconsistente de lote em lote. Coloque no glossário o protagonista, o grupo, os NPCs recorrentes, os nomes de lugares e qualquer habilidade ou termo de sistema marcante logo de início, para que cada TextAsset e cada arquivo StreamingAssets os renderize de forma idêntica. Glossário 101 →
Aponte o RuneTranslate para o diretório do jogo (aquele que contém a pasta <Name>_Data). A detecção de motor procura por globalgamemanagers / data.unity3d / resources.assets. O runtime UnityPy embutido é usado automaticamente — sem necessidade de instalar Python separadamente.
O RuneTranslate varre os arquivos serializados em busca de strings de TextAsset e MonoBehaviour no idioma de origem (japonês por padrão; defina qualquer idioma de origem suportado por projeto), mais arquivos de script soltos em StreamingAssets. Cargas estruturadas (JSON / KAG / HTML) são fatiadas em linhas traduzíveis individuais para que a estrutura do arquivo faça o round-trip intacta.
O DeepL é um padrão forte para diálogos narrativos; o OpenAI GPT-4o ou o Anthropic Claude lidam melhor com falas estilizadas e onomatopeias. O Google Translate gratuito ou um modelo local (Ollama / LM Studio) cobrem strings de menu e nomes de itens. O roteamento de provedores pode enviar strings curtas para uma via mais barata.
Na exportação, o RuneTranslate copia o jogo e escreve as strings traduzidas de volta nos arquivos de asset e nos scripts de StreamingAssets no lugar. A build traduzida roda como a original — sem manuseio manual de assets.