
ワールドカップ
平日の朝8時からキックオフと聞いてどうやって会社をサボるか思案中の勤労精神の低い皆さんこんにちは。日本戦に限らず殆どの試合が深夜から早朝の時間帯に行われるので寝不足が激しいのですが、振り返ってみると観戦時間の70%ぐらいは居眠りしているので、無理して見る必要もない気がしてきました。スペイン対サウジとかちょっと目を閉じていたら3-0になっていたし。
多言語化対応
Steamでゲームを発売することを考えるとゲームの多言語対応は必須と考えた方が良いと思います。
なぜならSteamで日本語設定のユーザー比率はSteam全体の2〜3%前後でしかないので、より多くの方に自作ゲームを届けようとするなら英語圏やその他地域に対する対応は行うべきでしょう。
制作中のゲーム「Under A Groove」はリズムゲームという仕様もあって他ジャンルのゲームほどテキストは必要としないのですが、それでもタイトル画面やメニュー画面ではUIラベル、操作説明等を表示しないといけないので、少なからずも多言語化を行う必要があります。

上の図は展示会等で使用している「Under A Groove」のタイトル画面ですが、展示会バージョンでは日本語と英語の操作説明を併記しています。しかし製品版では選択された言語での表示のみとなる予定です。
こうした静的なテキストを選択した言語によって表示を切替える仕様とするには、Unity Localizationを使うのが便利だと思います。
Unity Localization
Unity LocalizationはUnity公式が提供しているパッケージでUnity2019.4以上であればPackage Managerからインストール可能です。

このUnity Localizationを使った多言語化対応の基本手順は以下のようになります。
- Localization Settingsを作成する
- 言語(Locale)アセットを登録する
- 文字列の翻訳テーブル(String Table)を作成する
- コンポーネントへ適用する
Localization Settings の作成
Unity LocalizationはKey-Value形式でKeyと各言語のValueを設定していきます。その形式データをテーブルと呼んでいるため、まずはテーブルを作ります。
Unityの上部メニューから Window > Asset Management > Localization Tables を選択すると、

Localizatoin Tables画面が表示されるので、中央の「Create」ボタンを押下

使用するテーブル(Key-Value形式)を選択する画面に切り替わります。以後、UIや会話文など用途に応じて翻訳用のテーブルを作成し、この画面でテーブルを切替えて設定していきます。

今回は新規作成なので左側の New Table Collection を選択して新しくテーブルを作成します。

今回は翻訳用のテーブルを作るのでNew Table Collection画面ではTypeを String Table Collection を選択。Nameにテーブル名を入力した後、Locale Generatorボタン押下します。
言語(Locale)アセット登録
多言語化対応する言語が一覧に表示されます。

翻訳したい言語(日本語、英語など)にチェックを入れてAdd Localesボタンを押下します。

Localization Tables画面に戻るので、先ほど選択した言語が表示されていることを確認したらCreateボタンを押下します。保存先を選ぶと言語別にテーブルが生成されます。
文字列の翻訳テーブル(String Table)作成
ここからいよいよ多言語化の設定を行います。 Localization Tables画面を開いてCurrent Tableから先程作成したテーブルを指定

New Entryボタンを押すと、Keyと各言語毎に対応した文言を入力する行が追加されるので、Keyに後述するコンポーネントへの設定時に指定するキー名を入力、その右側から各言語に応じたテキストを書いていきます。

コンポーネントへ適用する
多言語化した文言を表示するTextMeshProに対してInspectorの右上にある三点リーダーを クリックして Localize を選択します。

LocalizeStringEventコンポーネントが自動で追加されるので、Entry NameにLocalization Tables画面で作成したテーブルのKeyを指定します。

Keyを指定すると自動的にTextMeshProにKeyで指定した文言が入力されます。

言語切替の確認方法
Editor上で言語を切り替えて確認するにはLocalization Scene Controlsを使います。
Unityの上部メニューから Window > Asset Management > Localization Scene Controls を選択します。

Localization Scene Controls画面のActive Localeに表示したい言語を指定します。

例えば言語に英語を選択すると

英語化したゲーム画面となります。
ゲーム実行中の場合は言語選択のプルダウンがGame画面右上に表示されるので、そこから動的に変更する事もできます。

今回は静的な文字列をローカライズする手順を説明しました。条件によって文言が変わるような動的な文字列の場合のローカライズは次回説明したいと思います。




















































