パイプラインの最適化

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

Windows
MacOS
Linux

アセットの収集

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

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

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

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

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

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

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

例:

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

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

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

引数

説明

ReportStaleGatherCache

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

FixStaleGatherCache

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

FixMissingGatherCache

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback