【Unity】Unityで多言語化(Localization)に対応する

unity多言語化技術関連

【Unity】Unityで多言語化(Localization)に対応する

はじめに

この記事ではUnityでの多言語対応について説明します。今回使う公式のLocalization方法では以下のバリエーションをサポートしています。

  • 文字列のローカリゼーション
  • アセットのローカリゼーション
  • 疑似ローカリゼーション
  • ローカリゼーションデータをXLIFF,CSV,Googleスプレッドシートにインポートエクスポートします。

この中でも、「文字列のローカリゼーション」と「アセット(画像)のローカリゼーション」のやり方を説明していきます。

Localization(ローカリゼーション)とは

作ったソフトを世界中で遊べるように、メニューやメッセージを各国の言語に翻訳して使いやすくしていくことです。

ローカリゼーションの全体手順

全体はこの手順で進んでいきます。詳細に関しては以下の内容を読んでください。

  1. パッケージマネージャからLocalizationの機能拡張をインストール
  2. 文字列、絵等についての各言語テーブルを作成
  3. 言語テーブルに各言語のリソースを追加
  4. 配置してあるコンポーネントにLocalization機能を追加
  5. 対応リソースを選択

1,2は1回だけの操作、3~5は各コンポーネントごとに繰り返します。

1,ローカリゼーションの機能拡張をインストール

1,パッケージマネージャを開く

Unityの画面から、メニューバー「window」→「Package Manager」を選択する

2,Localizationパッケージを探す

このような画面が開きます。

2021.2以降では、「+」の隣の「Packages:Unity Registry」にすることにより、パッケージマネージャには表示されるはずです。

わからない場合には左上の「+」ボタンを押して、「Add package from git URL」をクリックし、

左上に出てくる以下のボックスに「com.unity.localization」と入れます。

インストール

右下のInstallをクリックしてインストールします。

これで終了です。

ローカリゼーション設定を作成する

1,ウィンドウを出す

Unityから、「Edit」→「Project Setting」をクリックし、以下の画面を出します。

2,ファイル保存ディレクトリを選択する

「Create」ボタンを押すと、フォルダ選択ダイアログが出ますので、その中からプロジェクトに任意の「例:Localization」フォルダを作ります。

そうするとこのような画面が出ます。

3,ロケールを作成する

Localization画面の「Local Generator」をクリックすると以下のような画面が表示されます。英語と日本語のリソースを作りたい場合は「English」と「Japanese」を選択し「Generate Locales」をクリックします。

このように「Available locales」にEnglishとJapanseが表示されます。

これで同じようにプロジェクトの中にも「Localization」フォルダと各リソースが出来上がっています。

デフォルトのロケールを選択する

赤で囲んである部分をJapanseに設定します。

2,文字列、絵等(アセット)についての各言語テーブルを作成

ローカリゼーションテーブルを開く

ウィンドウのメニューから[ウィンドウ]>[アセット管理]>[ローカリゼーションテーブル]を選択します

ローカライズするための画像を用意します。(今回は2か国語なので、2枚用意します)

画像用のテーブルを作成する

Collection」を選択し、「Type」を「Asset Table Collection」にして、名前を付けます。Createを押して生成ディレクトリを選択し、テーブルを作ります。

文字列のテーブルを作成する

「New Tables Collection」を選択し、「Type」を「String Table Collection」にして、名前を付けます。Createをおしてテーブルを作ります。

画像用・文字用のテーブルができた状態

言語テーブルに各言語のリソースを追加

画像をローカライズする

画像を用意する

プロジェクトウィンドウに多言語化で使う画像をドラッグアンドドロップします

画像テーブルエントリーを作成

「SelectTableCollection」を「Asset Table 」にして「Add New Entry」をクリックすると、新しいテーブルエントリーが作られます。

「KEY」任意 「English」「Japanese」の両方に用意した画像をドラッグアンドドロップします。

文字列をローカライズする

文字列テーブルエントリーを作成

「Add New Entry」をクリックして、新しいテーブルエントリーを作ります。

「SelectTableCollection」を「StringTable」にして「Add New Entry」をクリックすると、新しいテーブルエントリーが作られます。

「KEY」任意 「English」「Japanese」の両方にそれぞれの言語で文字列を入れます。

3,配置してあるコンポーネントにLocalization機能を追加

UIコンポーネントを追加

Hierarchyビューを右クリックして「UI」→「Text(TMP)」と「RawImage」を追加

画像のLocalize対応

Localize追加

RowImageコンポーネントに「Localize」追加

リソースの指定

「Localization Texture Event」が追加されるので、その中の「Localized Asset Reference」からテーブルに追加した項目を選択することで、言語環境によって自動的にリソースが入れ替わります。

文字列の入れ替え

Localize追加

TextMeshProのタイトル右側の点々をクリックし、Localizeを選択します。

リソースの指定

「Localization String Event」が追加されるので、その中の「Localized String Reference」からテーブルに追加した項目を選択することで、言語環境によって自動的にリソースが入れ替わります。

確認方法

ローカリゼーションテーブルを開く

ウィンドウのメニューから[ウィンドウ]>[アセット管理]>[ローカリゼーションテーブル]を選択します

ロケーションを切り替えて確認する

Active LocaleをEnglishやJapaneseに切り替えることにより、リソースがきちんと切り替わっているか確認することができます。

まとめ

Localizationは国外で使われるソフトウェアにとって必須の機能です。各言語に対応することによってたくさんの人に遊んでもらうことができます。

かなり難しい内容ですが頑張って挑戦してみてください。

ロボットコーダーズではこの内容を直接教えてもらうことが可能です。

参考

Quick Start Guide | Localization | 1.0.5

この記事ではUnity公式の以下の内容を説明しています。

About Localization | Localization | 1.0.5
タイトルとURLをコピーしました