129.6K Views
November 06, 19
スライド概要
発表者: 鍬農健二郎(Epic Games Japan)
本スライドは2019年10月31日に行われた勉強会「 UE4 Localization Deep Dive」の講演資料となります。
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
UE4のローカライズ機能紹介 Epic Games Japan / Support Engineer Ken Kuwano
概要 ● 話すこと ● UE4のローカライズ機能 (Ver4.23) ● 基本機能の使い方、注意点など ● 話さないこと ● 具体的な実装の事例 ● 処理の流れ、設定の詳細など #UE4DD | @UNREALENGINE
目次 ● ● ● ● ローカライズ概要 ローカライズ機能 アセット別ローカライズ その他 #UE4DD | @UNREALENGINE
目次 ● ● ● ● ローカライズ概要 ローカライズ機能 アセット別ローカライズ その他 #UE4DD | @UNREALENGINE
ゲームのローカライズ ● ゲームをローカライズする ● 目的:複数地域をターゲットとした販売を行う ● 実行:複数地域にゲームを対応させる #UE4DD | @UNREALENGINE
ローカライズが必要なアセット ● テキスト ● 表示内容 ● フォント ● アセット ● ● ● ● ● テクスチャ ボイス・サウンド ムービー カットシーン アニメーション #UE4DD | @UNREALENGINE
ゲームのローカライズ ● ゲームをローカライズする ● 目的:複数地域をターゲットとした販売を行う ● 実行:複数地域にゲームを対応させる ● UE4のゲームをローカライズする ● UE4を利用する場合の複数地域対応はどうやる? ● ● ● 管理:アセットの管理、共有の方法 効率:ワークフロー、効率的な実装 効果:メモリ、パフォーマンス 本講演での内容はココ #UE4DD | @UNREALENGINE
ローカライズ? Localization:地域化 (L10N) ● 地域固有の構成部品や翻訳テキストを追加することによって、ソ フトウェアを特定の地域や言語に適合させる工程 ● 例:日本語用テキストを利用して日本語の表示に適用すること Internationalization:国際化 (I18N) ● ソフトウェアに技術的な変更を加えることなく多用な言語や地域 に適合させるソフトウェア設計の工程 ● 例:日本語テキストを日本語用として認識して適用する仕組み 出典:Wikipedia #UE4DD | @UNREALENGINE
UE4のローカライズ機能 https://docs.unrealengine.com/ja/Gameplay/Localization/index.html #UE4DD | @UNREALENGINE
目次 ● ● ● ● ローカライズ概要 ローカライズ機能 アセット別ローカライズ その他 #UE4DD | @UNREALENGINE
ローカライズ機能 ● テキストのローカライズ ● アセットのローカライズ #UE4DD | @UNREALENGINE
テキストのローカライズプロセス エディター (en) #UE4DD | @UNREALENGINE パッケージゲーム (ja)
テキストのローカライズプロセス テキスト 収集 エディター (en) #UE4DD | @UNREALENGINE 翻訳 テキスト 作成 パッケー ジ作成 言語切替 パッケージゲーム (ja)
テキストのローカライズプロセス テキスト 収集 翻訳 テキスト 作成 パッケー ジ作成 アセットからローカライ ズ対象のテキスト収集 OPTIONS QUIT #UE4DD | @UNREALENGINE 言語切替
テキストのローカライズプロセス テキスト 収集 翻訳 テキスト 作成 パッケー ジ作成 OPTIONS QUIT 収集したテキストから 翻訳テキスト作成 オプション 終了 #UE4DD | @UNREALENGINE 言語切替
テキストのローカライズプロセス テキスト 収集 翻訳 テキスト 作成 パッケー ジ作成 言語切替 パッケージ OPTIONS QUIT オプション 終了 #UE4DD | @UNREALENGINE 翻訳テキストを含む パッケージ作成
テキストのローカライズプロセス テキスト 収集 翻訳 テキスト 作成 パッケー ジ作成 言語切替 パッケージ OPTIONS QUIT オプション 終了 #UE4DD | @UNREALENGINE 利用言語に応じて テキストを表示
テキストのローカライズプロセス テキスト 収集 OPTIONS QUIT 翻訳 テキスト 作成 パッケー ジ作成 言語切替 OPTIONS QUIT パッケージ パッケージ OPTIONS QUIT OPTIONS QUIT オプション 終了 オプション 終了 オプション 終了 Localization Dashboard #UE4DD | @UNREALENGINE
テキストの収集 Localization Dashboard #UE4DD | @UNREALENGINE
テキストの収集 #UE4DD | @UNREALENGINE
テキストの収集とローカライズ ③ テキスト表示 Editor表示 Blue Print ①テキスト収集 #UE4DD | @UNREALENGINE C++ Loc Res ゲーム中表示 ② テキスト作成
収集するテキスト ● Blueprint:FText、STextBlockの定義 ● C++/.ini:LOCTEXT、NSLOCTEXTマクロで定義 #UE4DD | @UNREALENGINE
テキストの配置 (一意なテキスト情報) #UE4DD | @UNREALENGINE
テキストの表示 ● FormatTextでローカライズの表示にも対応 ● 可変入力 「XXXを捨てた」など ● 数 「N個手に入れた」など ● 複数性 「1Hit」,「2Hits」など ● 単位 「USD」,「yard」など #UE4DD | @UNREALENGINE
複数性を考慮したテキスト(en) There {NumCats}|plural(one=is,other=are) {NumCats} {NumCats}|plural(one=cat,other=cats) 1は”is”, その他は”are” #UE4DD | @UNREALENGINE 数 1は”cat”, その他は”cats”
複数性を考慮したテキスト(en→ja) There is 1 cat There are 2 cats (en) #UE4DD | @UNREALENGINE Localization Dashboardで 翻訳テキスト入力 1匹の猫がいる 2匹の猫がいる (ja)
自動対応したフォーマットテキスト テキストは言語独自のフォーマットへ対応可能 1) 数字:12345.67 ● ● ● jaなど deなど frなど : 12,345.67 : 12.345,67 : 12 345,67 ⇒ Groupingは”,” / Decimalは”.” ⇒ Groupingは”.” / Decimalは”,” ⇒ Groupingは” ” / Decimalは”,” 2) 日付:2020年10月31日 ● ● ● ja en fr #UE4DD | @UNREALENGINE : 2019/10/31 : Oct 31, 2019 : 31 oct. 2019 ⇒ yyyy/mm/dd ⇒ mm/dd/yyyy ⇒ dd-mm-yyyy
言語別規則 https://cdn.ymaws.com/www.igda.org/resource/collection/2DA60D94-0F74-46B1-A9E2-F2CE8B7 2EA4D/BestPracticesforGameTranslationv2.02_JP.pdf #UE4DD | @UNREALENGINE
言語別規則 http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html #UE4DD | @UNREALENGINE
テキストのローカライズプロセス テキスト 収集 OPTIONS QUIT 翻訳 テキスト 作成 パッケー ジ作成 言語切替 OPTIONS QUIT パッケージ パッケージ OPTIONS QUIT OPTIONS QUIT オプション 終了 オプション 終了 オプション 終了 Localization Dashboard #UE4DD | @UNREALENGINE .ini/commandなど
テキスト表示の言語指定方法 ● ゲーム起動時 ● 起動引数 ● .iniファイル ● システム言語 ● ライタイム ● コンソールコマンド ● 言語切替処理 (BP/C++) #UE4DD | @UNREALENGINE
言語の表示切り替え テキスト表示言語切替 #UE4DD | @UNREALENGINE
UE4のローカライズ機能 テキスト関連 Language テキストとアセットの表示 Culture Locale 数値/日付/時刻などのフォーマット表示 Asset Group 特定のアセットを対象とした表示の制御 #UE4DD | @UNREALENGINE
Cultureの切り替え ● ゲーム起動時の言語指定方法は複数存在するので、複数 設定時は適用の優先順が発生 ● 以下上から順に設定が優先される ● ● ● ● 起動引数 “culture=”で指定された言語 xxxEngine.iniの”culture=”で指定された言語 xxxGame.iniの”culture=”で指定された言語 システム言語 (OS) #UE4DD | @UNREALENGINE
テキストのローカライズプロセス テキスト 収集 翻訳 テキスト 作成 パッケー ジ作成 言語切替 エディターでの英語表示から パッケージでの日本語表示を行うフロー #UE4DD | @UNREALENGINE
ローカライズ機能 ● テキストのローカライズ ● アセットのローカライズ #UE4DD | @UNREALENGINE
アセットのローカライズ エディター (en) #UE4DD | @UNREALENGINE パッケージゲーム (ja)
アセットのローカライズプロセス アセット 配置 エディター (en) #UE4DD | @UNREALENGINE パッケー ジ作成 言語切替 パッケージゲーム (ja)
アセットのローカライズプロセス アセット 配置 パッケー ジ作成 Img (en) Img (ja) #UE4DD | @UNREALENGINE ローカライズ対象アセッ トを指定のパスに配置 言語切替
アセットのローカライズプロセス アセット 配置 パッケー ジ作成 言語切替 パッケージ Img (en) Img (ja) #UE4DD | @UNREALENGINE ローカライズ対象を含む パッケージ作成
アセットのローカライズプロセス アセット 配置 パッケー ジ作成 言語切替 パッケージ Img (en) Img (ja) #UE4DD | @UNREALENGINE 利用言語に応じて アセットを表示
アセットのローカライズプロセス アセット 配置 Img (en) Img (ja) Editor #UE4DD | @UNREALENGINE パッケー ジ作成 言語切替 パッケージ パッケージ Img (en) Img (en) Img (ja) Img (ja)
アセットの配置 ● アセットローカリゼーションの適用 ● Content/L10N/言語の配下にアセットを配置 元テクスチャの位置 日本語版テクスチャの位置 Content/UI/Texture/Logo/LogoBk Content/L10N/ja/UI/Texture/Logo/LogoBk #UE4DD | @UNREALENGINE
アセットの配置 ● アセットローカリゼーションの適用 ● Content BrowserからAsset Localizationから選択 #UE4DD | @UNREALENGINE
アセットのローカライズプロセス アセット 配置 Img (en) Img (ja) Editor #UE4DD | @UNREALENGINE パッケー ジ作成 言語切替 パッケージ パッケージ Img (en) Img (en) Img (ja) Img (ja) .ini/commandなど
アセット表示の言語指定方法 ● ゲーム起動時 ● 起動引数 ● .iniファイル ● システム言語 ● ライタイム ● コンソールコマンド ● 言語切替処理 (BP/C++) #UE4DD | @UNREALENGINE テキスト切替と同じ
言語の表示切り替え アセット表示言語切替 #UE4DD | @UNREALENGINE
UE4のローカライズ機能 アセット関連 Language テキストとアセットの表示 Culture Locale 数値/日付/時刻などのフォーマット表示 Asset Group 特定のアセットを対象とした表示の制御 #UE4DD | @UNREALENGINE
Asset Groupの切り替え ● アセットをグループ化して言語間で再利用できる機能 ● 一部のアセットだけを別の言語で使い回すようなケース... ● テキスト表示は”ja”だけど、Audioの一部は”en”を使いたい... ● xxxGame.ini, xxxEngine.ini で各種設定が可能 #UE4DD | @UNREALENGINE
Asset Group ● Asset Groupを使用しない (テキストは日本語表示、アセットも日本語を利用) テキスト (ja) アセット (ja) 単に日本語で表示する場合、 全テキストはja、全アセットもjaで表示 #UE4DD | @UNREALENGINE
Asset Group ● Asset Groupを使用する (テキストは日本語表示、サウンドの一部のみ英語を利用) テキスト (ja) その他 アセット (ja) Audio (it) Asset Group Sound Wave Sound Cue Class ”Sound Wave”と”Sound Cue”をグループ化(Audio)することで、 jaを表示中であっても”Sound Wave”と”Sound Cue”はitを使用 #UE4DD | @UNREALENGINE
Asset Groupの切り替え ● Asset Groupに対して紐づけるクラスの設定 ● Asset Groupを適用する言語の設定 上記の設定が行われた場合、 Sound WaveとSound Cueは起動時から英語アセットを使用 #UE4DD | @UNREALENGINE
アセットのローカライズプロセス アセット 配置 パッケー ジ作成 言語切替 エディターでの英語表示から パッケージで日本語表示を行うまでの流れ #UE4DD | @UNREALENGINE
目次 ● ● ● ● ローカライズ概要 ローカライズ機能 アセット別ローカライズ その他 #UE4DD | @UNREALENGINE
アセット別ローカライズ ● フォント ● 字幕とボイス ● ムービー字幕 #UE4DD | @UNREALENGINE
フォントのローカライズ ● テキストのローカライズの際に考慮したいこと? ● 表示する言語毎に適用するフォントを変えたい ● 表示する言語毎にフォントの文字サイズを変えたい など ● フォントのローカライズに対応させるには? ● Asset Localization を使って言語別にフォントを適用する方法 ● Sub Culture, Sub Font Familyを利用する方法 #UE4DD | @UNREALENGINE
フォントのローカライズ適用(1) ● Asset Localizationによって言語別でフォントを用意 Font (共通) Font (ja:日本語用) #UE4DD | @UNREALENGINE Font (th:タイ語用)
フォントのローカライズ適用(2) ● SubCulture, SubFontを利用して1つのFontで完結 Font (共通) #UE4DD | @UNREALENGINE Font Face Font Face Font Face Font Face Default Font Family Fallback Font Family Sub Font Family (ja:日本語用) Sub Font Family (th:タイ語用)
Font Default Font デフォルトで使用 Fallback Font 文字データが存在しない場合に使用 Sub Font 特定言語の特定範囲内の文字データで使用 #UE4DD | @UNREALENGINE
Font 適用言語 文字コード範囲 適用フォント #UE4DD | @UNREALENGINE
字幕とボイスのローカライズ ● Dialogueアセットで対話を構築 これはテスト字幕です。 https://docs.unrealengine.com/ja/Engine/Audio/Dialogue/index.html #UE4DD | @UNREALENGINE
字幕とボイスのローカライズ ● Dialogueアセットによる対話システム (1文単位) ● Dialogue Wave ● Dialogue Voice ● Sound Wave #UE4DD | @UNREALENGINE :対話情報 :話者情報 :ボイス音声
Dialogue Wave ボイス 字幕テキスト #UE4DD | @UNREALENGINE 話者情報
Dialogue Waveのローカライズ ボイスはアセットローカライズ 対話テキストはテキストローカライズ #UE4DD | @UNREALENGINE
動画字幕のローカライズ ● Media Playerの字幕を言語毎に切り替える機能 ● 未解放のため利用時は要ソース修正 ● 字幕データ再生には独自に再生処理の追加が必要 #UE4DD | @UNREALENGINE
Basic Overlays ● 字幕データを持つアセット ● Editor上で字幕内容が編集可能 ● アセットは言語毎に作成 ● 字幕ファイル(.srt)をインポート可能 Basic Overlays Localized Overlays Localize用テーブル 字幕データ(ja) Basic Overlays 字幕データ(en) #UE4DD | @UNREALENGINE
Localized Overlays ● 字幕を言語別で管理するアセット ● Basic Overlaysを言語毎に設定 Basic Overlays Localized Overlays Localize用テーブル 字幕データ(ja) Basic Overlays 字幕データ(en) #UE4DD | @UNREALENGINE
機能を使うためのソース修正 ソースを修正することでメニューに表示して選択可能に #UE4DD | @UNREALENGINE
Overlayの制御と関連クラス Project Widget Basic Overlays Media再生用 Subtitle Player 字幕再生 Subtitle Manager 字幕データ(ja) Localized Overlays ローカライズ用字幕情報 Basic Overlays 字幕データ(en) Basic Overlays 字幕データ(fr) 字幕制御 Engine #UE4DD | @UNREALENGINE Subtitle Data
Subtitle Playerの実装例
void UMyMediaSubtitlesPlayer::Play()
{
bEnabled = true;
}
void UMyMediaSubtitlesPlayer::Stop()
{
bEnabled = false;
FSubtitleManager::GetSubtitleManager()->SetMovieSubtitle(
this, TArray<FString>());
}
#UE4DD | @UNREALENGINE
Subtitle Playerの実装例
void UMyMediaSubtitlesPlayer::Tick(float DeltaSeconds)
{
if (bEnabled && SourceSubtitles)
{
UMediaPlayer* MediaPlayerPtr = MediaPlayer.Get();
if (MediaPlayerPtr)
{
FTimespan CurrentTime = MediaPlayerPtr->GetTime();
TArray<FOverlayItem> CurrentSubtitles;
SourceSubtitles->GetOverlaysForTime(CurrentTime, CurrentSubtitles);
TArray<FString> SubtitlesText;
for (const FOverlayItem& Subtitle : CurrentSubtitles)
{
SubtitlesText.Add(Subtitle.Text);
}
FSubtitleManager::GetSubtitleManager()->SetMovieSubtitle(
this, SubtitlesText);
}
else
{
Stop();
}
}
}
#UE4DD | @UNREALENGINE
目次 ● ● ● ● ローカライズ概要 ローカライズ機能 アセット別ローカライズ その他 #UE4DD | @UNREALENGINE
その他機能 ● Localization Preview ● Translation Picker ● String Table #UE4DD | @UNREALENGINE
Localization Preivew ● UMG上でローカライズテキストを確認する機能 ● ローカライズアセットはPreviewの対象外 #UE4DD | @UNREALENGINE
Localization Preivew 言語を指定すると即座にテキストローカライズの確認が可能 Preview 適用中 テキスト更新 (en→ja) ローカライズプレビューの適用前(左)と適用後(右) #UE4DD | @UNREALENGINE
Localization Preivew ● Preview Game Language (Editor Preference) ● Preview言語を指定した場合はDefault Previewとして反映 日本語を選択したらプレビューに反映 #UE4DD | @UNREALENGINE
Localization Preivew ● Localization Preview機能を利用するには予めテキスト をローカライズしておく必要があります テキストをローカライズすると #UE4DD | @UNREALENGINE Preview言語が選択可能になる
Translation Picker ● Editorからテキストローカライズ情報を抽出する機能 ● Dashboardにアクセスせず直接テキストを編集することも可能 #UE4DD | @UNREALENGINE
Translation Picker ● 機能を有効にする ● Editor設定の[Translation Picker]を有効する (Experimental) ● Transkltion Pickerを表示する ● #UE4DD | @UNREALENGINE Editorの[Window]一覧、もしくはDashboardにアイコンが表示
Translation Picker PIE中に翻訳テキストを直接編集が可能 #UE4DD | @UNREALENGINE
String Table ● 定型文や使い回す文字列を一元管理する際に利用 ● CSVからのインポート/エクスポートも可能 #UE4DD | @UNREALENGINE
String Table ● TextにKeyを指定することでValueの参照が可能 Valueが反映 TableとKeyを指定 #UE4DD | @UNREALENGINE
String Table ● テキストの一元管理が可能 ● 編集が競合しないことに注意 ● ハード参照を持つので注意 Hard Reference される String Table #UE4DD | @UNREALENGINE
Project設定 ● ローカライズパッケージ作成時は以下の設定が必須 ● Localizations to Package ● Cook/Stage/Package対象とする言語 ● Internationalization Support ● Packageする国際化データの言語セット #UE4DD | @UNREALENGINE
Project設定 ● Localizations to Packages ● ローカライズ対象の言語を指定する設定 ● 未選択時はContent/L10N/[culture]がパッケージに含まれない 対象とする言語を手動で選択... #UE4DD | @UNREALENGINE ローカライズ済みの言語から選択...
Project設定 ● プラットフォーム毎に言語情報を指定したい ● xxxGame.ini で含める言語の指定を上書きする ● 以下の例ではパッケージ作成時に”en”と”ja”のアセットやテキス トのみ含まれる #UE4DD | @UNREALENGINE
Project設定 ● Internationalization Support ● 対象言語を含むプリセットを一覧から選択する プリセット 言語 サイズ (MB) English 英語 ~1.77 EFIGS 英語、フランス語、イタリア語、ドイツ語、スペイン語 ~2.38 EFIGSCJK 英語、フランス語、イタリア語、ドイツ語、スペイン語、中国語、日本語、韓国語 ~5.99 CJK 中国語、日本語、韓国語 ~5.16 All 全ての言語 ~15.3 言語セットによって異なるサイズ一覧 #UE4DD | @UNREALENGINE
まとめ ● UE4にはローカライズに必要な基本機能がある ● 要件次第で独自のシステムやワークフローを適用した方 が良いこともしばしば ● ローカライズの計画はできるだけ早い段階で #UE4DD | @UNREALENGINE
ご清聴ありがとうございました。 #UE4DD | @UNREALENGINE
付録 ● ローカリゼーションダッシュボード ● ローカライズ関連の設定 #UE4DD | @UNREALENGINE
ローカリゼーションダッシュボード #UE4DD | @UNREALENGINE
Localization Dashboard #UE4DD | @UNREALENGINE
Localization Dashboardの機能 ● テキストのローカライズ機能 ● ● ● ● アセットやソースからテキストを収集できる 翻訳テキストのエクスポートができて共有することができる さまざまな言語の翻訳テキストを管理/編集することができる 翻訳テキストのローカライズ進捗状況を管理することができる ● テキストのローカライズサポート機能 ● ● ● ● #UE4DD | @UNREALENGINE サードパーティの翻訳ソフトと連動することができる ソースコントロールと連動することができる 翻訳テキストのプレビュー表示やフォントのプレビューができる テキストのコンフリクトチェックができる
Localization Dashboardは使える? ● メリット ● ● ● ● UE4 Editor内でローカライズ作業が完結する ローカライズのテキスト編集後に直ぐに確認できる ソースのメタデータなど広範囲に渡ってテキストを収集できる サードパーティソフトやソースコントロールと連動している ● デメリット ● ● ● #UE4DD | @UNREALENGINE 翻訳テキストを共有して編集することが単独ではできない ソーステキストを編集した場合に全ての言語に影響する 実験的機能としての位置付け (ただし利用することは可能)
Localization Dashbord 概要 連動サービス設定 プリセット詳細設定 テキスト収集設定 プリセット設定 言語設定 #UE4DD | @UNREALENGINE その他設定
とりあえずテキストのローカライズをする場合 ② ローカライズ対象の設定 ⑥ ワード数の更新 ⑤ テキストのコンパイル ③ テキストの収集 ① ローカライズ言語の追加 ④ 翻訳テキスト入力 #UE4DD | @UNREALENGINE
ローカライズの設定と確認方法 ● シンプルなテキストローカライズの設定方法 1. 2. 3. 4. 5. 6. [Native]言語を設定して利用する[Culture]言語を追加 [Gather Text]からテキストを収集する対象を設定 [Gather Text]を押してテキストを収集 [Translation Editor]から翻訳テキストを入力 [Compile Text]を押してテキストの変換 [Count Words]を押して言語数を更新 ● シンプルなテキストローカライズの確認方法 1. EditorからStandaloneで起動 2. Cultureコマンド(例:culture=ja)を入力して言語切替を確認 #UE4DD | @UNREALENGINE
Localization Dashbord 概要 #UE4DD | @UNREALENGINE
Localization Dashbord 概要 連動サービス設定 プリセット詳細設定 テキスト収集設定 プリセット設定 言語設定 #UE4DD | @UNREALENGINE その他設定
Localization Service ● 外部のローカライズサービス(XLoc, OneSky)と連動 ● Source Controlとの連動 #UE4DD | @UNREALENGINE
Localization Service (One Sky) https://www.oneskyapp.com/ #UE4DD | @UNREALENGINE
Localization Service (XLoc) http://www.xloc.com/ #UE4DD | @UNREALENGINE
.poファイルの編集 (Poedit) https://poedit.net/ #UE4DD | @UNREALENGINE
Localization Dashboard - Localization Service Localization Service Provider Localization Service Provider ローカライズプロバイダ名 特定のローカライズ連動サービスを利用する場合に選択 Source Control Enable Source Control ソースコントロール有効化 ソースコントロール及びサービスプロバイダが利用可能な場合、ローカ ライズ操作時に自動的にソースコントロールに接続 Enable Auto Submit ソースコントロール時自動サブミット有効化 ソースコントロール及びサービスプロバイダが利用可能な場合、ローカ ライズ操作時に自動サブミットを許可 #UE4DD | @UNREALENGINE
Localization Dashbord 概要 連動サービス設定 プリセット詳細設定 テキスト収集設定 プリセット設定 言語設定 #UE4DD | @UNREALENGINE その他設定
Localization Target ● Localization Target ● ローカライズのカテゴリ別に分類したもの ● Game Targets ● Projectのコード・アセットが対象 ● Engine Targets ● Engineのコード・アセットが対象 #UE4DD | @UNREALENGINE
Localization Dashboard - Localization Target Target Name ローカライズターゲット名 ローカライズターゲット名を指定 Conflict Status コンフリクト状態 ローカライズテキストのKeyコンフリクト状態を示します Loading Policy ローディング方針 Plugin及びPluginDLCのローカライズテキストのロード条件の指定 #UE4DD | @UNREALENGINE Never 常にテキストをロードしない Always 常にテキストをロードする Game アプリケーションがゲーム起動時のみロード Editor Editor起動時のみテキストをロード Property Names Editor起動時のみ.ini設定に従ってロードを許可 Tool Tips Editor起動時のみテキストをロード
Localization Target (Conflict Status) NamespaceとKeyで識別 (全て一意に割り当て) #UE4DD | @UNREALENGINE
Localization Target (Conflict Status) Namespaceが 異なるのでOK #UE4DD | @UNREALENGINE Keyが異なる のでOK
Localization Target (Conflict Status) NamespaceとKeyが 一致しているのでNG #UE4DD | @UNREALENGINE
Localization Target (Conflict Status) Conflict Status 説明 コンフリクトなし 収集して全てのテキストに対して一意なKey名が割 り当てられている正常な状態 コンフリクトあり Key名が重複した異常な状態、一意なKey名に割り 当てることで解決する必要があります コンフリクト不定 Targetの収集前のKey一致チェック前の状態 Textを収集することでConflict状態を更新します コンフリクトがある場合は ✖ボタンからチェックして修正 #UE4DD | @UNREALENGINE
Localization Dashbord 概要 連動サービス設定 プリセット詳細設定 テキスト収集設定 プリセット設定 言語設定 #UE4DD | @UNREALENGINE その他設定
Gather Text ● テキストを収集する対象(code/file/asset)の指定 ● Gather from Text Files ● .cpp/.h/.ini等のテキスト ● Gather from Packages ● .uasset/.umap等のアセット ● Gather from Meta Data ● #UE4DD | @UNREALENGINE UPROPERTY()のmetaタグ
Localization Dashboard - Gather Text Gather Text Target Dependencies ターゲット依存指定 ターゲットに存在するテキストをこのターゲットでは複製しない Additional Manifest Dependencies 追加マニフェスト依存指定 マニフェストに存在するテキストをこのターゲットで複製しない Required Module Names 必須モジュール名 テキストを収集するときにロードする必要があるモジュール名 プライマリゲームモジュールではないモジュールをソースとするパッ ケージまたはメタデータから収集するために使用 #UE4DD | @UNREALENGINE
Gather Text (Gather from Text Files) 検索対象 検索除外対象 対象拡張子 #UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text Gather Text Search Directories テキスト収集ディレクトリ 収集対象とするファイル検索対象のディレクトリの指定 Exclude Path Wildcards テキスト収集除外パス 収集対象から除外するディレクトリ等をワイルドカードで指定 File Extensions テキスト収集ファイル拡張子 収集対象とするファイルの拡張子の指定 Should Gather from Editor Only Data EditorOnlyデータのテキスト収集可否 Editor Onlyのデータを収集に含めるかの指定 #UE4DD | @UNREALENGINE
Gather Text (Gather from Packages) 検索対象 検索除外対象 対象拡張子 #UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text Gather Text Include Path Wildcards テキスト収集対象パス テキスト収集対象のディレクトリをワイルドカードで指定 Exclude Path Wildcards テキスト収集除外パス テキスト収集対象から除外するディレクトリをワイルドカードで指定 File Extensions テキスト収集ファイル拡張子 収集対象とするファイルの拡張子の指定 Collections コレクション指定 テキストを収集する対象とするコレクションの指定 Should Gather from Editor Only Data EditorOnlyデータのテキスト収集可否 Editor Onlyのデータを収集に含めるかの指定 Skip Gather Cache テキスト収集のキャッシュ許可 キャッシュをスキップするかどうかの指定 #UE4DD | @UNREALENGINE
Gather Text (Gather from Meta Data) 検索対象 検索除外対象 キー仕様 #UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text Gather Text Include Path Wildcards テキスト収集対象パス テキスト収集対象のディレクトリをワイルドカードで指定 Exclude Path Wildcards テキスト収集除外パス テキスト収集対象から除外するディレクトリをワイルドカードで指定 Should Gather from Editor Only Data EditorOnlyデータのテキスト収集可否 Editor Onlyのデータを収集に含めるかの指定 #UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text Gather Text Key Specifications キー仕様 メタデータからテキストを収集する条件を指定 Meta Data Key キー収集対象メタデータ ここで指定したメタデータをローカライズテキストとして収集 Text Namespace テキスト名前空間指定 収集されたテキストに設定される名前空間の指定 Text Key Pattern テキストキーパターン指定 収集されたテキストに設定されるKey値のフォーマット指定 #UE4DD | @UNREALENGINE
Localization Dashbord 概要 連動サービス設定 プリセット詳細設定 テキスト収集設定 プリセット設定 言語設定 #UE4DD | @UNREALENGINE その他設定
Export Text / Compile Text / Import Dialogue Localization Text エクスポート設定 Localization Text コンパイル設定 Dialogue Asset インポート設定 #UE4DD | @UNREALENGINE
Localization Dashboard Export Text Collapse Mode コンテキスト出力方式 .poファイルエクスポート時のコンテキスト出力形式を指定、 v4.14以前のフォーマットかv4.15以降のフォーマットを選択 Should Persist Comments on Export ユーザーコメント追加指定 .poファイルエクスポート時にソーステキスト内のコメントを保持 する必要があるかの指定 Should Add Source Locations as Comments ソース位置コメント追加指定 ソースの場所をコメントとして.poファイルエントリに追加する必 要があるかの指定 #UE4DD | @UNREALENGINE
Localization Dashboard Compile Text Skip Source Check ソースチェック無効 翻訳をコンパイルするときにソースチェックをスキップするか ソースの不一致が発生した翻訳をゲームで引き続き使用できる Validate Format Patterns フォーマットパターンの検証 コンパイルされているカルチャに対して形式パターンが有効であ ること(無効な複数の規則や壊れた構文を検出)を検証 Validate Safe Whitespace 空白スペースの検証 翻訳プロセス中に失われる可能性のある安全でない空白(先頭ま たは末尾の” ”)がテキストに含まれていないことを検証 #UE4DD | @UNREALENGINE
Localization Dashboard Import Dialogue Raw Audio Path AudioファイルImportパス このフォルダーにはカルチャサブフォルダーが含まれ、サブフォ ルダーにはImportする生の.wavファイルが含む Imported Dialogue Folder DialogueファイルImportパス L10Nカルチャフォルダーのルート指定(またはNative Dialogue をソースダイアログとしてインポートする場合のルート) Import Native as Source Nativeファイルソースインポート指定 falseの場合Native CultureのDialogueはNative Cultureのロー カライズされたデータとしてインポートする #UE4DD | @UNREALENGINE
Localization Dashbord 概要 連動サービス設定 プリセット詳細設定 テキスト収集設定 プリセット設定 言語設定 #UE4DD | @UNREALENGINE その他設定
Localization Dashboard #UE4DD | @UNREALENGINE
Localization Dashboard ベース言語情報 テキストのローカライズ対象の言語 #UE4DD | @UNREALENGINE
Localization Dashboard 全言語の一括のAction指定 言語毎の個別のAction指定 #UE4DD | @UNREALENGINE
Localization Dashboard #UE4DD | @UNREALENGINE
Localization Dashbord (Gather Text) Gather Text アセットやコードからテキスト情報を収集する Import Text ローカライズテキストファイル(.po)をインポートする(取り込む) Export Text ローカライズテキストファイル(.po)をエクスポートする(出力する) Import Script Dialogue Script(.csv)をインポートする(取り込む) Export Script Dialogue Script(.csv)をエクスポートする(出力する) Import Dialogue Sound Wave, Dialogue Waveアセットをインポートする Count Word 翻訳済みテキスト数を更新してWord Countに反映する Compile Text 翻訳済みテキストをコンパイルしてテキストデータを更新する #UE4DD | @UNREALENGINE
ローカライズ関連の設定 #UE4DD | @UNREALENGINE
.ini設定 (Engine.ini) Internationalization Culture 初期カルチャ指定 アプリケーション起動時、指定した言語で全ての内容を表示 Language 初期言語指定 アプリケーション起動時、指定した言語でテキスト/アセットを表示 Locale 初期ロケール指定 アプリケーション起動時、指定した言語のフォーマットテキストで表示 #UE4DD | @UNREALENGINE
.ini設定 (Engine.ini) Internationalization CultureMappings 言語マッピング指定 特定の言語が指定された場合、別の言語に置き換えが可能 EnabledCultures 使用言語指定 使用言語を指定、指定した言語を特定の構成でのみ使用可とすることができる DisabledCultures 未使用言語指定 未使用言語を指定、指定した言語は特定の構成で使用不可とすることができる PreviewGameLaguage プレビュー言語指定 PIE・Standalone実行におけるプレビュー言語の指定 LockLocalization ローカライズ機能制限指定 テキストの編集をロックしてローカライズ機能を無効化 (Editorのみ) #UE4DD | @UNREALENGINE
.ini設定 (Game.ini) Internationalization Culture 初期カルチャ指定 アプリケーション起動時、指定した言語で全ての内容を表示 Language 初期言語指定 アプリケーション起動時、指定した言語でテキスト/アセットを表示 Locale 初期ロケール指定 アプリケーション起動時、指定した言語のフォーマットテキストで表示 #UE4DD | @UNREALENGINE
.ini設定 (Game.ini) Internationalization CultureMappings 言語マッピング指定 特定の言語が指定された場合、別の言語に置き換えが可能 EnabledCultures 使用言語指定 使用言語を指定、指定した言語を特定の構成でのみ使用可とすることができる DisabledCultures 未使用言語指定 未使用言語を指定、指定した言語は特定の構成で使用不可とすることができる LockLocalization ローカライズ機能制限 テキストの編集をロックしてローカライズ機能を無効化 (Editorのみ) #UE4DD | @UNREALENGINE
.ini設定 (EditorSettings.ini) Internationalization Culture 初期カルチャ指定 アプリケーション起動時、指定した言語で全ての内容を表示 Language 初期言語指定 アプリケーション起動時、指定した言語でテキスト/アセットを表示 Locale 初期ロケール指定 アプリケーション起動時、指定した言語のフォーマットテキストで表示 #UE4DD | @UNREALENGINE
.ini設定 (EditorSettings.ini) Internationalization ShouldUseLocalizedNumericInput 数値入力ローカライズ Property名などの数値を指定の言語で表示 ShouldUseLocalizedPropertyNames Property名ローカライズ化 Property名を指定の言語で表示 ShouldUseLocalizedNodeAndPinNames Node/NodePin名ローカライズ化 BlueprintNode、Pin名をEditorLanguageの言語で表示 DisplayTimezone タイムゾーン指定 DataTime型(FDateTimeStructCustomization型変数)利用時にタイム ゾーンの初期値(e.g. +1300)を反映 #UE4DD | @UNREALENGINE
.iniファイル ● 定義例 +CultureMappings="zh-Hans;zh-CN" +CultureMappings="ja;ko" +EnabledCultures="zh" +EnabledCultures="ja;Shipping" +DisabledCultures="ja;Shipping" +DisabledCultures="ko;Development" +DisabledCultures="zh" #UE4DD | @UNREALENGINE → zh-Hans指定時にzh-CNを利用 → 日本語指定時に韓国語を利用 → どの構成でも中国語(zh)へ切り替え可 → ”Shipping”で日本語(ja)へ切り替え可 → ”Shipping”で日本語(ja)へ切り替え不可 ”Development”で日本語(ja)へ切り替え可 → ”Development”で韓国語(ko)へ切り替え不可 ”Shipping”で韓国語(ko)へ切り替え可 → 中国語(zh)へ切り替え不可
参考資料 ● ● ● ● ゲームローカライズの最良の手法 ● https://cdn.ymaws.com/www.igda.org/resource/collection/2DA60D94-0F74-46B1-A9 E2-F2CE8B72EA4D/BestPracticesforGameTranslationv2.02_JP.pdf FINAL FANTASY XVの多言語対応・世界同時発売 ~日本語からの翻訳での課題と挑戦~ ● https://cedec.cesa.or.jp/2018/session/detail/s5ab9c63541015.html ローカライズフレンドリーな ゲーム開発のための社内ガイドライン入門 ● https://cedec.cesa.or.jp/2015/session/BP/9345.html 英語だけじゃない! 外国人が語る欧州言語向けローカライズの現状と課題 http://cedec.cesa.or.jp/2010/program/BM/C10_P0202.html ● ● ● 世界へ向けたゲーム開発 ~ローカライズ支援ツール『LION』~ ● https://www.slideshare.net/dena_tech/lion-87961160 翻訳者が欲しい情報とその理由:開発者にできる事とするべき理由 Cedec2013 (架け橋ゲームズ) ● https://www.slideshare.net/translyucent/cedec2013 ソフトウェア国際化入門 ● http://www.kokusaika.jp/images/kjp/info/digitalxpress-vol28-i18n.pdf #UE4DD | @UNREALENGINE