Fiz and the Rainbow Planet

Fiz and the Rainbow Planet

Not enough ratings
Translating the game in realtime
By Kuro
This guide will describe the process of installing and using the XUnity Auto Translator tool in conjunction with BepInEx in order to achieve a rough translation while playing the game.
2
2
   
Award
Favorite
Favorited
Unfavorite
Introduction
This guide will give you basic pointers on how to extract, edit, re-insert text into this game in realtime. This guide will only serve as an example of the process, so I will not be providing any translation files here.

The game is easy enough to get through in it's original language, but for those who want some understanding of what's going on in the story, this guide may be of some help.
Part 1. Acquire the software
In order to do anything, you will need to download a couple of tools meant for modifying Unity games. These programs are not malicious, and they are open source. This guide assumes you are playing the game on a Windows host machine.

Download XUnity Auto Translator. This is the actual plugin that will fetch translations on demand during gameplay. It can be found at this link:
https://github.com/bbepis/XUnity.AutoTranslator
Navigate to the "Releases" page and download the version for use with BepInEx (as of writing, that version's filename is "XUnity.AutoTranslator-BepInEx-5.3.1.zip").



Second, you will acquire BepInEx, the tool which we will be using to load the translator plugin. BepInEx can be acquired from this link:
https://github.com/BepInEx/BepInEx
Navigate to the releases page and grab the 32-bit version (x86). (At the time of writing, the filename is "BepInEx_win_x86_5.4.23.2.zip").
Part 2. Installation
One you have both of these tools downloaded, copy the contents from the BepInEx ZIP folder into the root directory of your game ("steamapps\common\FizRP\"). The location of your "steamapps" folder may vary depending on where your steam library is installed; by default, it may usually be located in "C:\Program Files (x86)\Steam\steamapps".

As I mentioned before, you must copy the contents from the ZIP file into the root directory of the game. In this case, root directory refers to the folder where the game's main executable (EXE file) is located. After this is complete, launch the game for a moment and then close it. If BepInEx is installed correctly, more files (such as LogOutput.log) will appear in the "BepInEx" folder. If not, make sure you didn't grab the 64-bit (x64) version of the tool by mistake.

After BepInEx is correctly installed, you are ready to also install the translation plugin. Similar to the install process for BepInEx, copy the files from the "XUnity.AutoTranslator" ZIP file into your game's root directory, and merge it with the existing BepInEx folder. Launch the game one more time and then close it after it has loaded. Under the BepInEx folder, there should now be a few more folders that have been created.

In BepInEx\config, there will now be a .INI file (AutoTranslatorConfig.ini). Editing this in a text editor will allow you to change the online translation API which it uses to fetch translations.
A full list of supported options can be found on the github page at this link:
https://github.com/bbepis/XUnity.AutoTranslator?tab=readme-ov-file#translators
It includes many services such as Google translate, DeepL, Yandex, and so on.

Additionally, as you play the game, the plugin will create and gradually fill out a text document under "\BepInEx\Translation\en\Text" titled "_AutoGeneratedTranslations.txt". This can be further edited for manual refinements or retranslation altogether. The text can also be edited in realtime during gameplay through the use of an advanced text editor such as notepad++ (or any other text editor which suports file reloading). A full list of keyboard commands can be found on the github page for the plugin under this link:
https://github.com/bbepis/XUnity.AutoTranslator?tab=readme-ov-file#key-mapping
Part 3. Things to note
The translations provided by a machine translator are of dubious quality, so take it with a grain of salt. I've generally found it to be helpful to understand the gist of what's going on in the story and dialogue, but it's obviously far from perfect.

Some quirks of the plugin include unintentionally breaking in-game text formatting (the game relies on a lot of this), and not being able to fetch/display a translation fast enough if a string of text is not displayed long enough on-screen. Usually, the first to third time displaying a line of text will log it into the .TXT document. Other lines may prove more difficult to record (such as the characters' brief vocalizations). When editing the translation .TXT file, it will be formatted in this manner:

OriginalText1=NewText1
OriginalText2=NewText2
OriginalText3=NewText3

...and etc

here's a real example of an excerpt from the game's logged text:

ここは泳いで 渡るところだね=I guess I'll have to swim across.
穴には 落っこちないように しなきゃ…=Gotta be careful not to fall in there...
--------フィズ--------\n\n <color\=#55FFFFFF>「どこまでも\n    冒険しよう!」</color>\n\n心優しいドラゴンの子\nでもハンマーを投げるぞ!=--------Fiz--------\n\n<color\=#55FFFFFF>'Let's adventure anywhere!"</color>\n\nThough kind-hearted, even this child can throw hammers!
------アクション------\n\n  :ジャンプ・泳ぐ\n  :ダッシュ・攻撃\n  :すりぬけハンマー\n\n必殺ワザのコスト:10=------ Actions: ------\n\n :Jump, Swim\n :Dash, Ability\n :Slippery Hammer\n\nSpecial Ability cost: 10
ゲームをつづける=Resume game
広場にもどる=Return to map
タイトルにもどる=Exit to title
まだ見つけていない、\n未知のたからもの。=Not found yet,\nunknown treasure.

As you can see, it gets a bit messy. Here are some of the results of me messing around with editing the dialogue:

Conclusion
Translating a game is difficult and time consuming, and I am by no means a professional. Please do not bother me for a full translation.
2 Comments
ras Dec 27, 2024 @ 12:08pm 
For me in the latest update the 32 bit version of BepInEx didn't work, the 64 bit version was required. Otherwise it worked as flawlessly before the update as it did afterwards.
metalman77728 Aug 22, 2024 @ 5:59pm 
Thanks for helping someone as inexperienced as me set this up. It helps a LOT.