アセット ローカリゼーションにより、カルチャごとに別れたアセットを 1 つのアセットに完全に置き換えることができます。
ローカライズされたアセットは、プロジェクトの「Content」フォルダ内の 「L10N」 フォルダの下にある、カルチャごとのフォルダにあります。つまり、 /Game/MyFolder/MyAsset
という名前のアセットをフランス語 (「fr」) でローカライズする場合、ローカライズされたアセットは /Game/L10N/fr/MyFolder/MyAsset
になります。
コンテンツ ブラウザ には、ローカライズされたアセットの管理に役立つオプションがあります。これらは [Asset Localization] サブメニューの下にあります。コンテンツ ブラウザ オプションを使用してローカライズされたアセットを作成または管理するには、LocRes
ファイルをローカライズするカルチャに指定する必要があります。デフォルトでは、ローカライズされたアセットは、コンテンツ ブラウザに表示されません。それらを表示するには、[Settings (設定)]>[Show Localized Content] をクリックします。
カルチャが実行時に変更された場合、コンテンツのホット リロードはエディタでのみ利用可能であるため、ローカライズされたアセットはホット リロードされません。実行時に動的にカルチャを変更する機能をサポートする場合は、それらの変更を有効にするためにゲームを再起動する必要があります。ゲームを再起動すると、ローカライズされたアセットが削除され、リロードされます。
バイトコードを含むアセット (ブループリントなど) は、C++ でネイティブ化されるため、ローカライズできません。これらのアセットは、実行時に置き換えることはできません。
フォントをローカライズする
フォントのローカライズは、以下の 2 つの方法のいずれかで実現できます。
-
コンポジット フォント を使用して、すべてのカルチャに対して単一のフォント アセットを作成できます。
-
アセット ローカリゼーションを使用して、カルチャごとに個別のフォント アセットを作成できます。
2 番目のオプションは、プロジェクトが実行時に動的なカルチャの変更をサポートしておらず、制限のないユーザー定義のテキスト (プレーヤー名、チャット ウィンドウなど) を表示しない場合にのみ推奨されます。それ以外の場合、最初のオプションが方がより良い結果となります。
ダイアログをローカライズする
ダイアログ ローカリゼーションは、Dialogue Wave アセット タイプを中心に行われ、標準のローカリゼーション パイプラインの収集段階で収集された音声テキスト (およびオプションの字幕のオーバーライド) を定義できます。
Dialogue Wave 自体は完全なダイアログまたは会話システムではありません。それぞれの組み合わせに対して指定された Sound Wave を使用して、単に「行 X では、A さんが B さん、C さん、D さんと話をしている」という表現のみが提供されます。各言語ごとに必要な固有の Sound Wave の数は、言語のルールによって異なる場合があります。しかし、このような問題は Dialogue Wave の中でカプセル化されます。その結果、適切なコンテキストでそれを再生するだけで、正確なローカライズ結果が得られます。
Unreal Engine (UE) には、ローカライズされたダイアログの録音と管理に役立つ一連のユーティリティも提供しています。UE4 でダイアログをローカライズするためにこれらのユーティリティを使用する必要はありませんが、多くのタスクが自動化できます。
これらのユーティリティを使用すると、ローカライズ ターゲットの「Content」フォルダに {TargetName}Dialogue.csv
というファイル名で追加のカルチャ ベースのファイルが生成されます。ダイアログ シート は、ローカリゼーション パイプラインによってアセットから収集されたカルチャごとのダイアログ行を含むカスタム CSV ファイルです。これらはローカリゼーション エクスポート スクリプトのステップで生成され、ローカリゼーション インポート スクリプトのステップでアーカイブに再インポートされます。
ダイアログ シートについては、以下の点に留意してください。
-
SpokenDialogue フィールドは、録音中にコピー編集ができ、現在の翻訳として再インポートできます。
-
AudioFileName フィールドは、ダイアログの行でカルチャごとに録音音声の WAV ファイルを定義します (下記参照)。
音声がこれらのダイアログ シートから録音された場合、音声ファイルの名前は Audio FileName フィールドで定義された名前の後に付けられ、カルチャのサブフォルダに配置されます (例えば、MyRecordedAudio/fr
)。その後、インポート ダイアログを使用してそれを UE4 にインポートし、適切な ダイアログ と Sound Wave アセットを生成できます (これは新しいオーディオが利用可能になったときに繰り返し実行できます)。
デフォルトのダイアログ ファイル名形式は一意性を保証しますが、ユーザにとってはあまり読みやすいものではありません。これは、[Project Settings (プロジェクト設定)] の [Audio] セクションにある [Dialogue Filename Format] 設定を使用して変更できます。使用するファイル名形式を後で変更するのは難しいので、オーディオの録音を開始する前に決定する必要があります。
テキスト翻訳と比較してダイアログ翻訳のコストは比較的高いため、ダイアログのローカライズは以下のワークフローに従い、スクリプトが完了したときに開始されます。
-
ダイアログの行に、ネイティブのダイアログを設定します。
-
ネイティブのダイアログを録音し、コピー編集します (おそらく数回のイテレーションで)。コピー編集した場合、編集されたネイティブのダイアログを翻訳用に再インポートします。
-
ネイティブのダイアログをテキストに変換し、ローカライズされたダイアログを作成する準備をします。
-
ローカライズされたダイアログを録音し、コピー編集します (おそらく数回のイテレーションで)。コピー編集した場合、ローカライズされたダイアログを再インポートして、字幕が正確か確認します。
このプロセス中にネイティブ テキストを変更した場合、ワークフローのステップ 1 から再開します。
アセット グループを作成する
アセット グループを使用すると、他のプロジェクトとは異なるカルチャが割り当てられる一連のアセット クラスを作成できます。
一般的なユースケースとして、他のすべてのコンテンツが別の言語を使用しているときに、プレーヤーが 1 つの言語を使用してオーディオを選択できるようにします。これを行うには、Audio という新しいアセット グループを定義し、プロジェクトのオーディオ クラスを使用するように設定します (通常、DefaultGame.ini
に定義されます)。
[Internationalization.AssetGroupClasses]
+Audio=SoundWave
+Audio=DialogueWave
これで、プロジェクトの他の部分に影響を与えることなく、このアセット グループに固有のカルチャを割り当てることができます。詳細は、「文字列テーブル」を参照してください。