Oodle Data を使用すると、 .pak
ファイルと IOStore ファイルを圧縮できます。これは、デフォルトで有効になっているプラグインとして提供されています。

IOStore ファイルで Oodle Data を使用する際のパラメータと設定は、UE 4.27 の .pak ファイルの場合と同じです。
パッケージ化するときに次のようなログが表示され、メソッドとレベルに特定の設定がリストされている場合、Oodle Data を使用していることがわかります。
Oodle v2.9.0 initializing with method=Kraken, level=3=Fast
Oodle Data を使用してパッケージ ファイルをデコードする必要がある場合は、ログに次の情報が表示されます。
LogPluginManager:Mounting plugin OodleData
Oodle Data の主な概念
Oodle Data は、出力を管理する 圧縮メソッド と 圧縮レベル という 2 つのコントロールを公開しています。そして、次の理由からそれらの違いを理解しておくことが重要となります。
-
圧縮「メソッド」は、データの大きさとデコードの速度がトレードオフになります。
-
圧縮「レベル」は、データのエンコードにかかる時間を決定します。
実行時のデコーダに対して、使用されたメソッドを伝える必要はありません。
圧縮メソッド
圧縮レベルとデコード速度がそれぞれ違う、4 つの異なる圧縮メソッドを利用できます。
メソッド | 説明 |
---|---|
Kraken | 良好なデコード速度で高圧縮。通常、これがデフォルトです。 |
Mermaid | デコード速度が速く、低圧縮。CPU 使用率に制限がある場合、または非力な CPU を使用しているプラットフォーム場合に効果的です。 |
Selkie | Mermaid よりもデコード速度が速く、低圧縮。 |
Leviathan | Kraken よりもデコード速度が遅く、高圧縮。 |
圧縮レベル (エフォート レベル)
圧縮レベルは -4 から 9 までの数値で設定し、これによりエンコード速度を表します。圧縮レベルの値は次のように参照されます。
レベル | 名前 | その他の情報 |
---|---|---|
-4 | HyperFast4 | |
-3 | HyperFast3 | |
-2 | HyperFast2 | |
-1 | HyperFast1 | |
0 | None | Raw バイトをコピーするだけです。 |
1 | SuperFast | |
2 | VeryFast | |
3 | Fast | 日常的な使用に適しています。 |
4 | Normal | |
5 | Optimal1 | |
6 | Optimal2 | 基本的なラインとして推奨されるエンコーダ圧縮レベルです。 |
7 | Optimal3 | |
8 | Optimal4 | |
9 | Optimal5 |
Oodle Data を有効にする
さまざまな設定がオーバーライドされることから、Oodle Data を有効にして構成する必要がある場所がいくつか存在します。有効にするには、基本的に [Project Settings (プロジェクト設定)] ウィンドウの [Packaging Settings (パッケージング設定...)] を使用します。
[Project Settings] の [Packaging Settings] でこれらを表示するには、[Advanced (詳細)] パラメータを開く必要があります。

これらの設定は、「BaseGame.ini
」ファイルの [/Script/UnrealEd.ProjectPackagingSettings]
ヘッダの下で直接編集することもできます。
プロパティ / 設定
これらは [Project Settings] の [Packaging Settings] にある関連プロパティで、「.ini
」ファイルの設定と同等です。
プロパティ | .ini ファイル設定 | 説明 |
---|---|---|
Create compressed cooked packages | bCompressed | 有効にすると、Unreal はオーバーライドされない限りは出力パッケージを圧縮します。 |
Pak File Compression Format(s) | PakFileCompressionFormats | 圧縮形式のリストを設定します。Oodle Data を使用するには、これを Oodle に設定します。 |
Pak File Compression Commandline Options | PakFileAdditionalCompressionOptions | 圧縮形式に渡す追加のオプションを指定します。Oodle の場合、これを -compressionblocksize=256KB に設定することをお勧めします。 |
Use this Compression Format not hardware override | bForceUseProjectCompressionFormatIgnoreHardwareOverride | 設定されている場合、「DataDrivenPlatformInfo.ini 」ファイル内の HardwareCompressionFormat は無視され、ここで設定したものが使用されます。つまり、上記の設定をセットし、 HardwareCompressionFormat でそれら設定を無視した後、この設定でその「無視する」設定を無視します。それにより、最初の状態に戻すことができます。 |
Pak File Compression Method | PakFileCompressionMethod | 以前に記述した圧縮メソッドを指定します (以前に使用したものが Kraken の場合、それを指定します)。 |
Encoder Effort Level for Debug & Development | PakFileCompressionLevel_DebugDevelopment | エンコードに費やす時間を指定します。これは、以前に記述した圧縮レベル設定の数値のものとなります (デフォルトでは 3)。 |
Encoder Effort Level for Test & Shipping | PakFileCompressionLevel_TestShipping | エンコードに費やす時間を指定します。これは、以前に記述した圧縮レベル設定の数値のものとなります (デフォルトでは 5)。 |
Encoder Effort Level for Distribution | PakFileCompressionLevel_Distribution | エンコードに費やす時間を指定します。これは、以前に記述した圧縮レベル設定の数値のものとなります (デフォルトでは 7)。 |
設定例
「BaseGame.ini
」ファイルでは、これが代表的な設定のセットとなります。
[/Script/UnrealEd.ProjectPackagingSettings]
bCompressed=True
PakFileCompressionFormats=Oodle
PakFileAdditionalCompressionOptions=-compressionblocksize=256KB
PakFileCompressionMethod=Kraken
PakFileCompressionLevel_Distribution=7
PakFileCompressionLevel_TestShipping=5
PakFileCompressionLevel_DebugDevelopment=3
bForceUseProjectCompressionFormatIgnoreHardwareOverride=False
プラットフォーム固有の例外
特定のターゲット プラットフォームがハードウェアのデータ圧縮をサポートしている場合、プラットフォームの構成ディレクトリ内にある「DataDrivenPlatformInfo.ini
」ファイルで圧縮形式が公開されている可能性があります。次に例を示します。
[DataDrivenPlatformInfo]
HardwareCompressionFormat=Zlib
ただし、ハードウェアのデータの圧縮をバイパスして Oodle Data を使用したい場合は、プラットフォームの「(Platform)Game.ini
」ファイル設定で bForceUseProjectCompressionFormatIgnoreHardwareOverride=True
を設定できます。
これにより、(この例では) ターゲット プラットフォームのパッケージは、ハードウェア zlib ではなく Oodle Data を使用するようになります。