Unity多言語について

はじめに

Unityでの多言語ローカライズは非常に実用的な機能であり、ゲームが複数の言語に対応することで、さまざまな言語を話すプレイヤーが快適にゲームを楽しむことができます。

ローカライズを実現する方法はいくつか存在し、それぞれにメリット・デメリットがあります。本記事では、そういった方法を紹介しつつ、Unity公式の多言語対応用パッケージ「Localization」について詳しく解説していきます。

このLocalizationパッケージを使えば、手軽に多言語対応が可能になります。さっそくその使い方を見ていきましょう!

1. 多言語ローカライズ用パッケージ「Localization」

1.1 概要

Localizationは、Unity公式が提供しているローカライズ用のパッケージで、Unityプロジェクトに簡単に多言語対応を追加できるようになります。

その仕組みは、各言語に対応するテキストやリソースを表形式で管理するもので、Localization Tablesを使ってキーと各言語のテキスト・アセットを紐づけることができます。

このパッケージを利用すれば、現在の言語や地域設定を簡単に取得・変更することができ、世界中のユーザーに向けたゲームやアプリを開発するうえで非常に重宝します。

1.2 実行イメージ

1.3 使用バージョン

※バージョンによって仕様が異なる場合がありますので、ご使用のバージョンに合わせて調整してください。

2. パッケージのインストールと設定

2.1 Localizationのインストール

Unityメニューから
Window -> Package Manager を開き、「Unity Registry」を選択した状態で「Localization」と検索し、インストールします。
※「Packages: In Project」のままだと見つからない場合があります。

2.2 グローバル設定

Edit -> Project Settings -> Localization -> Create に進み、「Localization」アセットを作成します。保存先のフォルダを指定してください。

次に「Locale Generator」を使って ja(日本語)zh(中国語)en(英語) を追加します。初回追加時は保存フォルダを選択する必要があります。

「Locale Generator」では言語の追加・削除が行え、それぞれのロケール設定ファイルが自動生成されます。初期言語はここで設定可能です。

※ ちなみに、古いバージョンで、ボダン名はAdd Localeじゃなくて、Locale Generatorとなります。

3. 多言語テキストの設定

3.1 テーブルの作成

Window -> Asset Management -> Localization Tables を開き、「New Table Collection」をクリックします。

テーブルには、「String Table(文字列)」か「Asset Table(リソース)」を選択できます。今回は「String Table Collection」を選択してテキスト用に作成します。

保存先フォルダを指定すると、設定済みファイルが確認できます。プロジェクト構成に合わせて管理しやすい場所に保存しましょう。

3.2 テキストの入力

作成したテーブルに、Keyと各言語のテキストを入力していきます。
複数のモジュールで管理したい場合は、用途ごとにテーブルを分けて作成しても問題ありません。

3.3 静的テキストの設定

シーンにUI -> TextMeshProのラベルやボダンを追加し、その右側メニューで「Localize」をクリックすると、自動で「Localize String Event」コンポーネントが追加されます。

「String Reference」欄で、先ほど作成したテーブルのKeyを指定すればローカライズ完了です。

スクリプトで言語を切り替える方法

public class ChangeLanguage : MonoBehaviour
{

public void SwitchEnglish()
{
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[0];
}

public void SwitchJapanese()
{
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[1];
}

public void SwitchChinese()
{
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[2];
}
}

ここで終わります。日本語だけで開発を行うことでいい。英語や中国語(ドイツ語と韓国語とミャンマー語も可能、でも長い時間がかかる可能性高い。)への翻訳は、研究室の外国人メンバーに任せていいです。

まとめ

Unity公式のLocalizationパッケージは、Unityプロジェクトにおける多言語対応において非常に使いやすく、導入・設定も簡単です。

特にテキスト量がそれほど多くないプロジェクトにおいては、最適な選択肢と言えるでしょう。大規模なプロジェクトではExcelと連携することで管理性も向上します。

機能も豊富で拡張性もあり、学んでおいて損はない優れたローカライズツールです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール