パイプラインの最適化

ローカリゼーションパイプラインの最適化について説明します。

アセットを収集する

アセットの収集は、ローカリゼーション パイプラインの中でも最も多くのリソースを使用します。 これは、通常、ローカリゼーションでは、アセット (とその依存関係にあるもの) をロードして、それらに含まれるローカライズ可能なテキスト値を抽出する必要があるためです。 Unreal Engine (UE) では、収集時に実際にロードする必要のあるアセットの数を最小限に抑えるために、アセット ファイル (保存時に生成) のヘッダに「収集キャッシュ」が追加されます。これにより、アセット ヘッダだけをロードするだけでテキストを収集できるようになります。

アセットの現在のキャッシュを表示するには、コンテンツ ブラウザ[Asset Localization] メニューにアクセスして、 [Show Localization Cache] を選択します。 PipelineOpt-01.png

特定の種類のアセット (例えば、ブループリントまたは空でない レベルブループリントを持つレベル) は、バイトコードを使用しているため、収集キャッシュを生成できません。 これは、バイトコードは揮発性が高すぎるので、UE がバイトコードからテキスト値の収集をしても、保存時に確実にキャッシュできないためです。

バイトコードが原因でキャッシュされなかったアセット数の概要は、アセット収集中にログに出力されます。 アセット収集のほとんどの時間が、バイトコードを含むアセットからの収集に費やされている場合は、アセット内のテキストを 文字列テーブル に移動して、代わりにこれらのエントリを参照できるようにする必要があります。

アセットの収集時には、FText::ShouldGatherForLocalization を渡すシリアライズされたテキスト値を含むアセットのみがロードされます。 このチェックは、カルチャ不変、空、空白のみのテキスト、および文字列テーブルの参照には使用できません。 このため、文字列テーブルを使用すると、アセットの収集パフォーマンスが向上します。

アセット キャッシュを検証する

プロジェクトのアセットの古いキャッシュや欠損しているキャッシュのレポートや修正に役立つユーティリティがいくつかあります これらのツールは、メモリにすべてのアセットをロードする必要があるため、実行に時間がかかります。 ただし、キャッシュされていないアセットが大量にある場合は、将来的にコストを大幅に削減できます。 これらのユーティリティは、通常のローカリゼーション コマンドレットで追加引数として実行されます。

例:

    -run=GatherText-config=Config/Localization/Game_Gather.ini
    -ReportStaleGatherCache

Unreal Engine の 4.20 より前のバージョンからプロジェクトをアップグレードする場合は、キャッシュが古いとローカライズの問題が発生する可能性があるので、ReportStaleGatherCache を実行してキャッシュが最新であることを確認する必要があります。

これらのオプションは、[Localization Dashboard (ローカリゼーションダッシュボード)] には表示されません。 代わりに、ローカリゼーション ターゲットのダッシュボードが生成する収集 INI ファイルを使用して、ローカリゼーション コマンドレットを手動で実行する必要があります。

引数

説明

ReportStaleGatherCache

ローカリゼーション ターゲットのマニフェストと StaleGatherCacheReport.txt ファイルを生成します。 このファイルには、古い収集キャッシュを含むアセットのリストが含まれています。

FixStaleGatherCache

古い収集キャッシュを含むアセットを再保存して、自動的に修正します。

FixMissingGatherCache

アセットが古すぎて収集キャッシュが使用できない場合は、アセットを再保存して、収集キャッシュが欠損しているアセットを自動的に修正します。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル