原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】Unity Localizationを使って簡単にローカライズをする

ワールドカップ

平日の朝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を使った多言語化対応の基本手順は以下のようになります。

  1. Localization Settingsを作成する
  2. 言語(Locale)アセットを登録する
  3. 文字列の翻訳テーブル(String Table)を作成する
  4. コンポーネントへ適用する

 

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画面右上に表示されるので、そこから動的に変更する事もできます。

 

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

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。