Oodle数据

关于使用Oodle数据优化将程序包文件交付给用户的过程概述

Choose your operating system:

Windows

macOS

Linux

参见

Oodle 数据 提供了 .pak 文件和 IOStore 文件的压缩格式。它作为插件提供,该插件在默认情况下应该启用。

"Oodle数据"插件

若要将Oodle数据用于IOStore文件,其参数和设置与UE 4.27中的.pak文件的参数和设置相同。

打包时,如果你看到类似于以下内容的日志,其中针对方法和级别列出了你的特定设置,那么你使用的就是Oodle数据:

Oodle v2.9.0 initializing with method=Kraken, level=3=Fast

在需要Oodle数据来解码程序包文件的其他上下文中,你将在日志中看到以下内容:

LogPluginManager: Mounting plugin OodleData

Oodle数据的关键概念

Oodle数据公开了用于管理输出的两个控件:压缩方法压缩级别。请务必理解它们之间的区别:

  • 压缩 方法 会在降低数据大小与提高解码速度之间进行权衡。

  • 压缩 级别 会确定编码数据所用时间。

运行时的解码器从不需要知道使用了什么方法。

压缩方法

有四种不同的压缩方法可用,代表不同的压缩级别和解码速度。

方法

说明

Kraken

压缩率高,解码速度不错,通常为默认值。

Mermaid

压缩率更低,解码速度更快;在CPU使用量受限制时或者在CPU计算力较低的平台上很有效。

Selkie

相较于Mermaid,压缩率更低,速度更快。

Leviathan

相较于Kraken,压缩率更高,解码速度更慢。

压缩级别(工作级别)

压缩级别是-4到9之间的数字,代表编码速度。压缩级别值定义为如下所示:

级别

名称

其他信息

-4

HyperFast4

-3

HyperFast3

-2

HyperFast2

-1

HyperFast1

0

None

仅仅复制原始字节。

1

SuperFast

2

VeryFast

3

Fast

适合日常使用。

4

Normal

5

Optimal1

6

Optimal2

推荐的基线最优编码器。

7

Optimal3

8

Optimal4

9

Optimal5

启用Oodle数据

由于各种覆盖情况,你需要在多个不同的地方启用和配置Oodle数据。 将其启用的基线方法是使用 项目设置(Project Settings) 窗口中的 打包(Packaging) 设置。

在"项目打包(Project Packaging)"设置中,你必须展开 高级(Advanced) 参数才能看到这些设置。

应用于Oodle数据的"高级打包项目"设置

这些设置还可以直接在 BaseGame.ini 文件的 [/Script/UnrealEd.ProjectPackagingSettings] 标题下进行编辑。

属性 / 设置

这些是"项目打包(Project Packaging)"区域中的相关属性,并带有等效的 .ini 文件设置。

属性

.ini 文件设置

说明

创建压缩的已烘焙程序包

bCompressed

启用此属性后,除非被覆盖,否则虚幻将压缩输出程序包。

Pak文件压缩格式

PakFileCompressionFormats

设置压缩格式列表。将其设置为Oodle以使用Oodle数据。

Pak文件压缩命令行选项

PakFileAdditionalCompressionOptions

指定要传递给压缩格式的额外选项。对于Oodle,我们建议将此属性设置为 -compressionblocksize=256KB

使用此压缩格式而非硬件覆盖

bForceUseProjectCompressionFormatIgnoreHardwareOverride

如果设置此属性,将忽略 DataDrivenPlatformInfo.ini 文件中的 HardwareCompressionFormat,并且将使用这些设置。因此,你可以使用上述设置进行设置,使用 HardwareCompressionFormat 将其忽略,然后使用此设置忽略后者,回到一开始使用的设置。

Pak文件压缩方法

PakFileCompressionMethod

指定压缩方法,如前所述(例如,Kraken)。

用于调试和开发的编码器工作级别

PakFileCompressionLevel_DebugDevelopment

指定用于编码的时长。这是之前描述的"压缩级别"设置中的数字(默认为3)。

用于测试和发行的编码器工作级别

PakFileCompressionLevel_TestShipping

指定用于编码的时长。这是之前描述的"压缩级别"设置中的数字(默认为5)。

用于分发的编码器工作级别

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数据,你可以在平台的 (Platform)Game.ini 文件设置中设置 bForceUseProjectCompressionFormatIgnoreHardwareOverride=True

这将导致为目标平台打包时使用Oodle数据,而不是(本示例中的)硬件zlib。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消