[UE4] アセットの追加/除外する設定と機能


検証Ver:4.26.0

概要

特定のアセットを一部のプラットフォームで使用したりパッケージから除外したいケースがあります。
これらを実現するための機能がいくつかあるため紹介します。
自身のプロジェクトにあわせてご活用ください。

Project Settings

設定で可能な内容と影響する動作は以下の通りです。

DirectoriesToAlwaysCook (Additional Asset Directories to Cook)

常にクック対象としたいファイルを指定したい時に利用します。

[詳細]
・指定したディレクトリ配下にあるアセット(.uasset)をクック対象+.pakに含める対象とします
・特定のマップのみをクックするようなケースにおいても、必ずクック対象のアセットとして含めることができます
・DefaultGame.ini+各プラットフォームのGame.iniの設定内容が反映される動作ではなく、現状はDefaultGame.ini+WindowsGame.iniの設定内容が適用されます (不具合)

以下は設定の追加例ですが、追加/削除することも可能です。

[/Script/UnrealEd.ProjectPackagingSettings]
+DirectoriesToAlwaysCook=(Path="/Game/Texture")

DirectoriesToNeverCook (Directories to never cook)

常にクック対象から除外したいファイルを指定したい時に利用します。

[詳細]
・指定したディレクトリ配下にあるアセットはクックから除外され.pakからも除外されます
・DefaultGame.ini+各プラットフォームのGame.iniの設定内容が反映される動作ではなく、現状はDefaultGame.ini+WindowsGame.iniの設定内容が適用されます (不具合)

以下は設定の追加例ですが、追加/削除することも可能です。

[/Script/UnrealEd.ProjectPackagingSettings]
+DirectoriesToNeverCook=(Path="/Game/Maps/Never")

DirectoriesToAlwaysStageAsUFS (Additional Non-Asset Directories to Package)

.pakに意図的にファイルを格納したい場合に指定する際に利用します。

[詳細]
・指定したディレクトリ配下にあるファイルは.pakに格納されずにクックしてコピーします
・プラグインに含まれる外部のコンテンツや、非アセットファイルを.pakファイルに含めることができます
・各プラットフォームのGame.iniで設定を追加/削除することが可能です

以下は設定の追加例ですが、追加/削除することも可能です。

[/Script/UnrealEd.ProjectPackagingSettings]
+DirectoriesToAlwaysStageAsUFS=(Path="AlwaysCooked")

DirectoriesToAlwaysStageAsNonUFS (Additional Non-Asset Directories To Copy)

.pakファイルから意図的に抜き出したいファイルを個別に抽出する際に利用します。

[詳細]
・指定したディレクトリ配下にあるファイルは.pakに格納されずにコピーします
・ここで指定されない非アセットファイルはコピーされずにパッケージ構成に含まれません
・各プラットフォームのGame.iniで設定を追加/削除することが可能です

以下は設定の追加例ですが、追加/削除することも可能です。

[/Script/UnrealEd.ProjectPackagingSettings]
+DirectoriesToAlwaysStageAsNonUFS=(Path="Packaged")

PakBlacklist

.pakファイルから指定のアセット、ディレクトリを除外する時に利用します。

[詳細]
・これはCook->Staging->Packagingのフローの最後で.pakファイルを生成するフェーズで機能します
・プラットフォーム, ビルド構成を指定して除外する対象を設定ことができます
・UE4.25では非推奨(Duplicated)ですが使用することはできます

以下のドキュメントやブログでも説明しています。
公式ドキュメント:ブラックリストをパッケージ化する
[UE4] PakBlacklistの使い方メモ

PakFileRule

.pakファイルから指定のアセット、ディレクトリを除外する時に利用します。

[詳細]
・Config/DefaultPakFileRule.iniに.pakファイルに含めるファイルを制限できます
・.pakファイルに対して格納しないファイルをチャンク毎に指定することができます
・これはCook->Staging->Packagingのフローの最後で.pakファイルを生成するフェーズで機能します
・プラットフォーム毎の指定を追加することが可能です

以下のドキュメントやブログでも説明しています。
[UE4] uasset以外のアセットにChunkIDを設定する(ue4.22以降)