『ユニテのひみつ』のひみつ 1 多言語対応

先日、RPG MAKER UNITEで作成したスマホ向けのアプリ『ユニテのひみつ』をリリースしました。

Android
https://play.google.com/store/apps/details?id=jp.windbellrrr.app.unite.basic

iOS
https://apps.apple.com/app/secret-of-unite/id6450209741

この『ユニテのひみつ』作る際に、どのような改造をUNITEへしたのか、また、どんなアドオンを作成したのかを、何回かに分けて解説していこうと思います。

多言語対応

タイトルメニューに追加した言語切り替えボタン

タイトルメニューに追加した言語切り替えボタン

Steamなどで販売されているゲームは、多言語対応されているものがほとんどです。
フリーゲームとして気軽に作成、配布するような用途ではそこまでする必要を感じないかもしれませんが、スマホアプリとして世界へ向けてリリースしたり、SteamやDLsiteなどで販売するケースにおいては、多言語対応は「ぜひとも組み込んでおきたい」機能だと思います。

RPG MAKER UNITEには、ゲーム自体を多言語化する仕組みが入っていません。
このため、UNITEに改造を加えて、多言語対応を実装してみました。

『ユニテのひみつ』で採用した多言語対応の仕組みは以下のようなものです。

・ゲーム内で利用するすべてのテキストにユニークなキー文字列を割り振る(このデータはExcelで管理)

全てのテキストにキー文字列を割り当て

・UNITEエディター内のテキストを設定する箇所では、テキストの代わりにそのキー文字列を設定しておく(//以降の文字列はコメントとして無視されるようにしています)

UNITEエディタのテキスト入力ボックスにはキー文字列を設定

・実行時に、キー文字列を現在のゲーム内言語のテキストに差し替えて表示する(テキスト参照箇所に置換処理を挟み、置換可能なキー文字列だった場合はテキストに差し替える)

イベントコマンド内のキー文字列(とコメントとしての実際の日本語文字列)

イベントコマンド内のキー文字列(とコメントとしての実際の日本語文字列)

実際のゲーム画面

実際のゲーム画面

 

『ユニテのひみつ』では、日本語と英語に対応しました。
テキストの管理方法として、UnityのLocalizationパッケージの利用も考慮したのですが、Localizationパッケージは使用経験がなかったため、今回は実装経験のあるExcel管理の独自実装で対応しました。

私はソースの変更をGitで管理しているのですが、履歴を調べてみたところ、UNITE自体の多言語対応にはだいたい1週間くらいかかっていました。
それとは別に、ゲームのイベント内で使用しているメッセージ等の多言語対応作業を行いました(ゲーム制作中にイベントコマンドのメッセージ欄に入れておいたテキストをExcel側に貼り付け、翻訳し、ユニークなキー文字列を割り振り後、そのキー文字列をUNITEのメッセージ欄にコピペ)。この作業には実質2日くらいかかっていたと思います。
#まずは普通に最後までゲームを作り、その後イベントコマンドに入れ込んだすべての日本語テキストを全部キー文字列に差し替える作業を行いました。

 

実際に作業して感じましたが、UNITEで作るゲーム自体の多言語対応は、とてもアドオン化できるようなものではないです。

特にエディター側での名前表示などを多言語対応するのが大変で(なにしろ対応しなければならない箇所が多いため)、実際には未対応の部分が残っていたりします。

きちんと多言語対応したときの表示(キー文字列がエディター上でも置換され表示されている)

きちんと多言語対応したときの表示

多言語対応未対応箇所の表示(キー文字列が左のツリー上で置換されていない)

多言語対応未対応箇所の表示(キー文字列がそのまま表示されている)
作業を終えて

率直な感想ですが、多言語対応はやはり大変でした。
UNITE自体の改造も大変でしたが、テキストの多言語対応はやはり翻訳、キー文字列の割り当て、エディター内のテキストをすべてキー文字列に差し替える作業が本当に大変でした。

実際に作業してみて思いましたが、やはり多言語対応の仕組み(1バイナリでの多言語対応)は、将来的にはUNITE自体の機能として公式に入れていただきたいところですね。
公式に対応いただくことで、すべてのUNITEユーザーがその恩恵を受けることができるようになりますし、従来のツクールシリーズとの差別化も図れるので良いのでは……と思います。