多言語対応(Localization)

目次

Unreal EngineのLocalization機能に則ったローカライズ方法

ADX2サウンドデータの場合

(1) 多言語対応のキュー及びキューシートの作成

CRI AtomCraft 上で「多言語に対応したキュー及びキューシート」を作成します。
作成方法についてはCRI AtomCraft マニュアルの「多言語対応」をご参照ください。
その後ビルドを行い、acbファイルを出力します。

(2) 言語別フォルダの作成

Unreal EngineプロジェクトのContentフォルダ直下に"L10N"フォルダを作成し、その下に各言語ごとのフォルダを作成します。
例えば日本語と英語と中国語に対応する場合は下記のようにフォルダを作成します。
criware_ue4_035_how_to_localize_on_UE4_official_localization_l10n_tree.jpg

"ja", "en"等のフォルダ名はUnreal Engineの仕様に従います。

(3) 基本となるアセットのインポート

Unreal Engineプロジェクトを開きます。
(1)で作成したacbファイルの内、日本語のものをインポートします。
criware_ue4_035_how_to_localize_on_UE4_official_localization_adx2_step3.jpg

(4) 日本語ローカライズアセット用のフォルダを作成

[キューシートアセットを右クリック]→[Asset Localization]→[Create Localized Asset]→[Japanese]をクリックします。
criware_ue4_035_how_to_localize_on_UE4_official_localization_create_japanese.jpg

すると日本語ローカライズアセット用フォルダが作成され、コンテンツブラウザがその場所に移動します。
criware_ue4_035_how_to_localize_on_UE4_official_localization_japanese_created.jpg
このとき作成されたアセットは不要なので削除します。
※上記作業の目的は適切なフォルダを作成することであり、必ずしも上記方法を採用する必要はありません。
 手動でフォルダを作成しても問題有りません。

(5) 日本語用ローカライズアセットを作成

(1)で作成したacbファイルの内、日本語のものをドラッグ&ドロップしてインポートします。
criware_ue4_035_how_to_localize_on_UE4_official_localization_japanese_reimported.jpg

(6) 英語ローカライズアセット用のフォルダを作成

元々のキューシートアセットの配置場所に移動します。
criware_ue4_035_how_to_localize_on_UE4_official_localization_base_assets.jpg

[キューシートアセットを右クリック]→[Asset Localization]→[Create Localized Asset]→[English]をクリックします。
criware_ue4_035_how_to_localize_on_UE4_official_localization_create_english.jpg

すると英語ローカライズアセット用フォルダが作成され、コンテンツブラウザがその場所に移動します。
criware_ue4_035_how_to_localize_on_UE4_official_localization_english_created.jpg
このとき作成されたアセットは不要なので削除します。
※上記作業の目的は適切なフォルダを作成することであり、必ずしも上記方法を採用する必要はありません。
 手動でフォルダを作成しても問題有りません。

(7) 英語用ローカライズアセットを作成

(1)で作成したacbファイルの内、英語のものをドラッグ&ドロップしてインポートします。
criware_ue4_035_how_to_localize_on_UE4_official_localization_english_reimported.jpg

(8) その他の言語について同手順を繰り返す

その他、対応予定のそれぞれの言語に対して(6),(7)と同様の手順でローカライズアセットの作成を行います。
ローカライズアセットの作成作業は以上となります。

(9) ローカライズアセットの使用方法

キューアセット, キューシートアセットを取り扱う際は、(3)で作成したアセットを使用します。
するとアセットロード時に、言語設定に応じて適切なローカライズアセットがロードされるようになります。
※誤って"L10N"フォルダに配置されているアセットを直接使用してしまうと、言語設定に応じた切り替えが行われないため、ご注意ください。

(10) 言語切り替え方法

実際に言語を切り替える方法 については後述します。

Sofdec2ムービーデータの場合

Sofdec2ムービーデータを各言語向けにローカライズする場合、コンテンツブラウザ上のSofdec2 Movie Sourceのuassetを、対応したい言語向けにAsset Localizationを行うことでローカライズできます。
具体的な手順例としては下記の通りとなります。

(1) ムービーファイルを配置する

まず、ムービーファイルは各言語用ごと下記のディレクトリに配置されているとします。
  • [ProjectDir]/CriWare/ja/SampleMovie.usm
  • [ProjectDir]/CriWare/en/SampleMovie.usm

(2) 言語別フォルダの作成

Unreal EngineプロジェクトのContentフォルダ直下に"L10N"フォルダを作成し、その下に各言語ごとのフォルダを作成します。
例えば日本語と英語と中国語に対応する場合は下記のようにフォルダを作成します。
criware_ue4_035_how_to_localize_on_UE4_official_localization_l10n_tree.jpg

"ja", "en"等のフォルダ名はUnreal Engineの仕様に従います。

(3) 基本となるアセットのインポート

Unreal Engineプロジェクトを開きます。
(1)で配置したムービーファイルの内、日本語のものをインポートします。
今回は下記ディレクトリにインポートしたものとします。
  • [ProjectDir]/CriWare/SampleMovie.uasset
SampleMovie.uassetをアセットエディタで開いた際の[File]→[File Path]は"CriWare/ja/SampleMovie.usm"となります。

(4) 日本語用ローカライズアセットを作成

[SampleMovieアセットを右クリック]→[Asset Localization]→[Create Localized Asset]→[Japanese]をクリックします。
これにより、日本語に対応したSampleMovie.uassetは"/L10N/ja/CriWare"にコピーされます。

(5) 英語用ローカライズアセットを作成

元々のムービーアセットの配置場所に移動します。
次に英語対応のため、[SampleMovieアセットを右クリック]→[Asset Localization]→[Create Localized Asset]→[English]をクリックします。
これにより、日本語用のSampleMovie.uassetが"/L10N/en/CriWare"にコピーされます。
ここで、日本語用のSampleMovie.uassetを英語対応のものに変更します。
"/L10N/en/CriWare"以下にコピーしたSampleMovie.uassetをダブルクリックしアセットエディタを開きます。
[File]→[File Path]に英語に対応したusmファイルへのContent以下からのパス(CriWare/en/SampleMovie.usm)を入力します。

(6) その他の言語について同手順を繰り返す

その他、対応予定のそれぞれの言語に対して(5)と同様の手順でローカライズアセットの作成を行います。
ローカライズアセットの作成作業は以上となります。

(7) ローカライズアセットの使用方法

ムービーアセットを取り扱う際は、(3)で作成したアセットを使用します。
するとアセットロード時に、言語設定に応じて適切なローカライズアセットがロードされるようになります。
※誤って"L10N"フォルダに配置されているアセットを直接使用してしまうと、言語設定に応じた切り替えが行われないため、ご注意ください。

(8) 言語切り替え方法

実際に言語を切り替える方法 については後述します。

実際に言語を切り替える方法

注意
パッケージ化したゲームを実行中の場合のみ、言語を切り替えることができます。
以下のいずれかの方法で言語設定を変更します。
  • (A) BP上で「Set Current Culture」ノードを実行する
  • (B) C++上で「SetCurrentCulture」関数を実行する
この操作以降にロードされるアセットが、先ほど指定した言語に対応したローカライズアセットとなります。
※既にロード済みのアセットが変化することはありませんのでご注意ください。

AssetGroup機能

例えば「音声は英語で流すが、字幕は日本語で表示したい」というシチュエーションがあるかもしれません。
音声に関するアセットのみを英語に設定し、字幕に関するアセットのみを日本語に設定することができれば実現できそうです。
Unreal Engine には下記二つの機能が用意されています。
  • (A) いくつかのアセットをまとめてグループ化する機能
  • (B) グループ単位で言語を設定する機能
よって、下記のようにすれば「音声は英語で流すが、字幕は日本語で表示したい」という動作を実現できます。
  • (1)
    • AtomキューシートアセットとAtomキューアセットをまとめてグループ化する(以降このグループを「AtomSoundGroup」と呼ぶ)
    • 字幕に関するアセットをまとめてグループ化する(以降このグループを字幕グループと呼ぶ)
  • (2)
    • 「AtomSoundGroup」を英語に設定する
    • 字幕グループを日本語に設定する
「AtomSoundGroup」を作成し、グループ単位で言語を切り替える方法を以下に示します。

(1) AtomキューシートアセットとAtomキューアセットをまとめて「AtomSoundGroup」を作成する

(1-1)
Unreal EngineプロジェクトのConfigフォルダにあるDefaultEngine.iniファイルをテキストエディタで開きます。
下記設定を追加します。
[Internationalization.AssetGroupClasses]
+AtomSoundGroup=SoundAtomCue
+AtomSoundGroup=SoundAtomCueSheet
[Internationalization.AssetGroupCultures]
+AtomSoundGroup=en
(1-2)
Unreal EngineプロジェクトのConfigフォルダにあるDefaultGame.iniファイルをテキストエディタで開きます。
(1-1)と同じ設定を追加します。

(2) グループ単位で言語を設定する

注意
パッケージ化したゲームを実行中の場合のみ、言語を切り替えることができます。
まず、以下のいずれかの方法で言語を設定します。
  • (A) BP上で「Set Current Asset Group Culture」ノードを実行する
  • (B) C++上で「SetCurrentAssetGroupCulture」関数を実行する
今回の例では「Asset Group」に「AtomSoundGroup」を指定します。
この操作以降にロードされるアセットが、先ほど指定した言語に対応したローカライズアセットとなります。
※既にロード済みのアセットが変化することはありませんのでご注意ください。

その他注意点

「Set Current Culture」ノード/関数を使用すると全てのアセットの言語が変更されます。
そのため、上記API使用後に改めて「Set Current Asset Group Culture」ノード/関数を使ってグループ単位で言語を設定し直す必要があります。

Unreal EngineのLocalization機能に依存しないローカライズ方法

CRI Atom Craftで多言語対応用に出力された複数のファイルは同名のキューを有しています。
Unreal Engineアプリケーション実行中に言語切り替えを行う場合、SoundAtomCueのuassetのCueSheetを、使用したい言語に対応しているCueSheetで設定する必要があります。
そして、CueSheetの変更を行ったSoundAtomCueをAtomComponentに再度セットし直すことで、対応したい言語の音声を再生できるようになります。