Oodle Data

Oodle Data を使用してパッケージ ファイルをユーザーに最適に配信する方法の概要です。

Windows
MacOS
Linux

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

The Oodle Data plugin

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 (詳細)] パラメータを開く必要があります。

The Advanced Packaging Project settings that apply to Oodle Data

これらの設定は、「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 を使用するようになります。

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