アンリアルエンジンのテキスト翻訳(ローカリゼーション)システム





こんにちは、私の名前はドミトリーです。 私は趣味としてアンリアルエンジンでコンピューターゲームを作っています。 数日前に、私はクエストと対話エディターについての記事を書きました ゲームのダイアログを書いたので、おそらく他の言語に翻訳したいと思うでしょう。 この記事では、Unrealエンジンでテキストをローカライズするために設計されたモジュールの仕組みを説明します。



そのため、最初にそのエディターの優先→有効化→ローカリゼーションダスボールドを有効にする必要があります。 残念ながら、このモジュールはまだ実験段階です。



画像



その後、Unrealエンジンを再起動する必要があります。 これを行うと、Localization DasbordアイテムがWindowsメニューに表示されます。 私たちはそれに行き、これを見ます。



画像



ここで、新しいカルチャを追加(新しいカルチャを追加)し、ネイティブ言語を選択する必要があります。これは、私の場合はテキストが書かれている言語であり、おそらくロシア語になるでしょう。



次に、Unrealエンジンがテキストを抽出する場所を決定する必要があります。



まず、UnrealエンジンはFText型のすべての変数からテキストを抽出するということを言わなければなりません(実際、これはこの型とFStringの主な違いです)。 FText変数はあるが、Unrealエンジンでこのテキストを翻訳したくない場合は、オフにすることができます。



画像






[テキストファイルからの収集]スイッチをオンにすると、c ++ファイルからテキストを抽出できます。 デフォルトでは、テキストは「.h」、「。cpp」、「。ini」から抽出されます。当然、これらのファイルの変数はC ++でFTextとして定義する必要があります。これは次のように行います。



/* Top of File */ #define LOCTEXT_NAMESPACE "Your Namespace" ... FText TestHUDText = LOCTEXT( "Your Key", "Your Text" ) ... #undef LOCTEXT_NAMESPACE /* Bottom of File */
      
      





かそこら



 FText TestHUDText = NSLOCTEXT( "Your Namespace", "Your Key", "Your Text" )
      
      





[パッケージから収集]スイッチをオンにすると、Unrealエンジンはアセットからテキストを抽出します。 デフォルトは「.uasset」および「.umap」です。



私にとってはすべてがこのように見えました:



画像



[テキストの収集]ボタンをクリックすると、Unrealエンジンがローカライズファイルを作成します。 Unrealエンジンに直接翻訳するか、翻訳ファイルをインポートして「.po」ファイルエディターを使用できます。 Poeditを使用しました。



重要:翻訳が完了したら、「テキストのコンパイル」ボタンをクリックすることを忘れないでください。 そして、翻訳はゲームに表示されません。



ゲーム内のテキストを切り替えるには、次の機能を使用できます。



 void AHUD_StoryGraph::ChangeLocalization(FString target) { FInternationalization::Get().SetCurrentCulture(target); }
      
      





ターゲットとして、en-英語、ru-ロシア語などの略語に置き換える必要があります。



重要:翻訳を表示するには、ゲームを標準ゲームモードで起動する必要があります。エクスポートで実行した場合、翻訳は削除されません。



ゲームをパックするときは、プロジェクト設定→パックに移動し、前提条件を含めるを選択し、ゲームに含める言語を選択して、インターナシアライゼーションサポートパラメーターを英語のみからすべてに変更する必要があります。



画像



実際、すべてが、今では世界のすべての言語でゲームをローカライズできます。



ここにあります



All Articles