3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】「遅すぎるアドバイス」リリース直前のローカライズは地獄!UI作成時から始めるLocalizationパッケージ実践ガイドをGoogleSpredSheetで

3
Last updated at Posted at 2025-11-22

【Unity】「遅すぎるアドバイス」リリース直前のローカライズは地獄!UI作成時から始めるLocalizationパッケージ実践ガイド

はじめに:遅すぎるアドバイス

先に言っておきます。遅すぎるアドバイスをします。

リリース前に慌ててローカライズの準備を始めても、もう手遅れです。
もしあなたのプロジェクトに将来的にリリースする可能性が少しでもあるなら、UIを作り始めたその瞬間からローカライズの準備を始めましょう。

一度全ての置き換え対象をリスト化できれば、Google SpreadSheetで同期して共有して共同編集することも可能です。
(一部スマート変換機能もありますが…過度な期待は禁物です)

この記事では、Unity公式のLocalizationパッケージを使った、実践的で「後悔しない」ためのローカライズフローを紹介します。


1. Unity Localizationの基本概念

Unityにはローカライズ専用の公式パッケージ Localization が存在します。

これを導入すれば、シーン内の文字が魔法のように自動で多言語化され…
もちろん、そんなわけはありません。

現実はもっと泥臭く、対象となる文字やテクスチャ一つひとつに対してコンポーネントを追加していく作業が発生します。

仕組みのイメージ:
文字表示コンポーネント(TextMeshProなど)に対し、「表示時」または「言語切替時」に、選択された言語の文字列へ動的に置き換えるコンポーネントをアタッチしていくイメージです。


2. Localizationパッケージの導入と初期設定

まずは最低限必要な設定を行います。

2.1. インストールと設定ファイル作成

  1. インストール: Package Manager の Unity Registry から Localization をインストールします。
  2. 設定ファイル作成: Project Settings に追加された Localization メニューから「Create」を押します。
    • Tip: 設定ファイルは Assets/Localization のようなフォルダを作成し、一括管理することをおすすめします。

2.2. 言語(Locale)の設定

  1. 「Add Locale」を押して、必要な言語を選択します(例:English, Japanese)。
  2. 選択後、「Add Locales」を押すと各言語の設定ファイルが作成されます。
    • ここでスマート変換用のフォーマットも編集可能です。
  3. 基本言語の選択: Specific Locale Selector からデフォルトとなる基本言語を選択します。
    • 重要: ここは極力**「英語」**をおすすめします。多くの場合、英語が翻訳のKey(基準)を兼ねることになるからです。

2.3. 翻訳テーブル(Table)の作成

Localizationのメイン画面となるテーブルを作成します。

  1. メニューバーから Window -> Asset Management -> Localization Tables を開きます。
  2. 「New Table Collection」からテーブルの種類を選んで作成します。名前は何でも構いません。
    • String Table Collection: 文字列が対象
    • Asset Table Collection: テクスチャやオーディオなどが対象

ここまでで、使うための最低限の準備は完了です。


3. 現場のLocalize作業フロー

ここからが本番、実際のローカライズ作業です。(String Tableを例にします)

基本的な作業手順

  1. ローカライズ対象の TextMeshPro (TMP) をシーンまたはプレハブから探します。
  2. TMPコンポーネントのコンテキストメニュー(三点リーダー︙)の一番下に追加されている Localize をクリックします。
  3. Localize String Event コンポーネントが追加されます。
  4. String Reference に、該当する String Table の Key を選択(または新規作成)します。

なぜ「UI作成時から」やるべきなのか

String Table は基本的に、「Keyとなる静的な文字列」を「選択言語の文字列」に置き換えるだけです。

つまり、作業順序としては**「UIの文字配置 → Localizeコンポーネント追加 → その文字列をテーブルに登録」**となります。
これが配置された文字やテクスチャの数だけ、作業として発生するのです。

これをリリース直前にまとめてやろうとすると、面倒この上ない地獄を見ます。 だからこそ、初めからやっておくことを強くおすすめします。

効率化のヒント(上級者向け)
作業量が膨大になるため、以下のような自動化スクリプトを組んでおくと幸せになれます。

  • TMPコンポーネントに Localize String Event を自動追加するように改造する。
  • プロジェクト内の全TMPを検索し、Localize String Event を追加した上で、設定されているテキストを一気に String Table の Key として登録するエディタ拡張スクリプトを作成する。

4. 言語切り替えとハマりポイント

エディタでの確認

Window -> Asset Management -> Localization Scene Controls から、エディタ再生時の表示言語(Active Locale)を切り替えられます。

【重要】よくあるハマりポイント

ここで「言語を日本語に切り替えたのに表示されない!」という問題が間違いなく発生します。

原因:TextMeshProに日本語フォントアセット(Atlas)が入っていない。
TMPで日本語を表示するための準備は別途必須ですので、必ず対応しておいてください。

参考
https://learning.unity3d.jp/7890/ (プロ必見!最新ローカライズ機能徹底解説 by unity安原さん)
https://www.slideshare.net/slideshow/google-sheetsunity-localization-package/250824951
(Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携 bv 一條さん)

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?