UE5でFPSゲーム制作 Part25-翻訳
今回はC++からではなく直接入力する方法で翻訳します。個人制作の範囲なら翻訳を別の人が担当するということは少ないと思います。
参考になるサイト
最新UE4タイトルでのローカライズ事例 【UE4 Localization Deep Dive 2019】 | ドクセル (docswell.com)
テキストの翻訳
翻訳にはローカライゼーションダッシュボードを使用します。
まずは、その他からストリングテーブルを選択します。ST_Widgetと名付けます。ストリングテーブルはUIや字幕、アイテムリスト等で分けておくと後で把握しやすいかなと思います。
ST_Widget
ストリングテーブルではネームスペースとキー、ソースストリングを設定します。完全に自分も把握してるわけではないのですが
ネームスペース:STごとに一つだけ設定するタグ。
キー:翻訳対象を設定するためのキー。(システム言語的なやつ)
ソースストリング:翻訳前のデフォルト言語として使われる文字列。
という感じで使います。右下の追加でキーを追加します。
ローカライゼーションダッシュボード
ツールからローカライゼーションダッシュボードを開きます。
パッケージから収集でInclude Path Wildcardsにストリングテーブルを作ったフォルダを指定します。「Content/フォルダ階層/*」で指定します。
一番下の新規カルチャーを追加で翻訳したい言語を指定します。今回は日本語を追加します。
(ネイティブ「青い丸のところ」には使用しない言語をデフォルト言語として設定するのが良いとのこと。今回は日本語に翻訳するだけなのでネイティブは英語のままにしてます。)
「テキストを収集する」というアイコンを押すとストリングテーブルから収集されます。
デフォルト言語である英語は100%ですが、収集された未翻訳の言語がある日本語はワード数が変わらないままです。
日本語のアクションから「このカルチャーの翻訳を編集」を選択します。
未翻訳のなかに先ほどストリングテーブルに追加したソースストリングがあるので、Translationのところに翻訳した言語を入力して保存します。
ローカライゼーションダッシュボードに戻って「ワード数をカウントする」を押すと、テキストを再度収集して日本語のワード数が100%になりました。最後に「テキストをコンパイル」を押します。
あとは対応するキーをウィジェットやBP側で設定します。
WBP_Titleに設定したStartというテキストを翻訳してみます。変数等を使用しないテキストを翻訳するときは、Text上から直接編集できます。
Textウィジェットを選択し、右のTextのところにある旗のマークをクリックするとローカライズの画面が出てくるので、ストリングテーブルからST_Widgetを選択すると、キーを選択できるようになるのでStartGameのキーを設定します。
これで翻訳ができました。
ゲームプレビュー上の言語を変更するにはエディタの環境設定→地域&言語でゲームのプレビュー言語を変更します。
エディタ上でも翻訳された言語を確認するには、ウィジェットBPの真ん中付近にある地球のマークからjaを選択したり、日本語の翻訳エディタのところでエディタでプレビューをクリックしたりしてみてください。
(ここ反映されたりされなかったりするのですが原因がよくわかりませんでした。)
BP上で翻訳する
WBP_MainHUDの武器の名前など、変数で表示する部分はブループリント上で翻訳する必要があります。
String型をText型に変換するToTextノードを消して、Find Text in Localization Tableノードに変更します。
NamespaceはST_Widgetに設定したネームスペースにし、武器の名前をKeyに割り当てます。Keyはスペースを入力できないので、Weapon Name変数はRifleA、SmgBのように変更する必要があります。