Choose your operating system:
Windows
macOS
Linux
Oodle 数据
提供了
.pak
文件和 IOStore 文件的压缩格式。它作为插件提供,该插件在默认情况下应该启用。
若要将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) 参数才能看到这些设置。
这些设置还可以直接在
BaseGame.ini
文件的
[/Script/UnrealEd.ProjectPackagingSettings]
标题下进行编辑。
属性 / 设置
这些是"项目打包(Project Packaging)"区域中的相关属性,并带有等效的
.ini
文件设置。
属性 |
.ini 文件设置 |
说明 |
---|---|---|
创建压缩的已烘焙程序包 |
bCompressed |
启用此属性后,除非被覆盖,否则虚幻将压缩输出程序包。 |
Pak文件压缩格式 |
PakFileCompressionFormats |
设置压缩格式列表。将其设置为Oodle以使用Oodle数据。 |
Pak文件压缩命令行选项 |
PakFileAdditionalCompressionOptions |
指定要传递给压缩格式的额外选项。对于Oodle,我们建议将此属性设置为
|
使用此压缩格式而非硬件覆盖 |
bForceUseProjectCompressionFormatIgnoreHardwareOverride |
如果设置此属性,将忽略
|
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。