在Unreal Engine 5(UE5)中,BasePakFileRules.ini
文件扮演了决定性的角色,它定义了资源打包过程中应用的规则,这些规则直接影响了游戏或应用的最终体积、加载性能及跨平台兼容性。在这篇博文中,我们将深入探讨BasePakFileRules.ini
文件的结构、作用以及如何利用这些规则优化你的项目。
BasePakFileRules.ini文件
; 这些规则按顺序应用,对于每个文件,第一个匹配的规则被采纳,后续规则不再评估。
; [SectionName]
; bOverrideChunkManifest=false ; 如果为true,则允许覆盖来自cooker的分块清单分配。
; bExcludeFromPaks=false ; 如果为true,则完全从.pak文件中排除此文件,不能与OverridePaks同时使用。
; OverridePaks="pakchunk1" ; 如果设置,则会覆盖.pak列表,使用逗号分隔。
; Platforms="iOS,Android" ; 如果设置,此规则仅适用于这些平台。
; Targets="Shipping,Test" ; 如果设置,此规则仅适用于这些构建配置。
; bOnlyChunkedBuilds=true ; 如果设置,此规则仅适用于分块构建。
; bOnlyNonChunkedBuilds=true ; 如果设置,此规则仅适用于非分块构建。
; +Files=".../*FileMask*.*" ; 应用于的文件列表,使用C# FileFilter类的文件掩码。
[ExcludeContentForMobile]
; 在移动平台上排除特定的大型纹理文件,此规则原先位于CopyBuildToStagingDirectory.cs中。
; 可以通过在游戏的DefaultPakFileRules.ini中使用相同的段落,并添加新的段落来增加规则。
; 要移除这条规则,可以使用!Files清除文件路径列表。
Platforms="Android,iOS,tvOS" ; 此规则仅适用于Android、iOS和tvOS平台。
bExcludeFromPaks=true ; 将这些文件完全排除在.pak文件之外。
bOverrideChunkManifest=true ; 允许覆盖从cooker获取的分块清单分配。
+Files=".../Engine/Content/EngineMaterials/DefaultBloomKernel.*" ; 排除DefaultBloomKernel相关的所有文件。
+Files=".../Engine/Content/EngineMaterials/DefaultCalibrationColor.*" ; 排除DefaultCalibrationColor相关的所有文件。
+Files=".../Engine/Content/EngineMaterials/DefaultCalibrationGrayscale.*" ; 排除DefaultCalibrationGrayscale相关的所有文件。
+Files=".../Engine/Content/EngineMaterials/PPM_DefaultCalibrationColor.*" ; 排除PPM_DefaultCalibrationColor相关的所有文件。
+Files=".../Engine/Content/EngineMaterials/PPM_DefaultCalibrationGrayscale.*" ; 排除PPM_DefaultCalibrationGrayscale相关的所有文件。
通过这些规则,开发者能够根据需要精确控制哪些资源被包含在最终的游戏包中,特别是对于目标移动平台的优化,这是一个非常有用的功能。这样不仅可以减少游戏包的大小,还能提高加载性能和用户体验。
文件规则的基本构成
BasePakFileRules.ini
文件通过一系列的规则定义了哪些文件应该被包含或排除在最终的.pak
文件中。这些规则按照定义的顺序应用,对于每个文件,第一个匹配的规则将被采用,后续规则将不再评估。
规则属性
bOverrideChunkManifest
:允许覆盖来自cooker的分块清单分配。bExcludeFromPaks
:如果设置为true,则从.pak
文件中完全排除该文件。OverridePaks
:允许指定文件应该被放入哪些.pak
文件中。Platforms
:指定规则应用于哪些平台。Targets
:指定规则应用于哪些构建配置。bOnlyChunkedBuilds
:仅在分块构建中应用此规则。bOnlyNonChunkedBuilds
:仅在非分块构建中应用此规则。+Files
:指定要应用规则的文件列表。
优化移动平台的资源
BasePakFileRules.ini
文件中的示例段落[ExcludeContentForMobile]
展示了如何利用这些规则为移动平台优化资源。通过排除不必要的大型纹理文件,可以有效减少应用的体积,提高加载性能,尤其是在资源受限的移动设备上。
例如,规则集[ExcludeContentForMobile]
专门针对Android、iOS和tvOS平台,它通过bExcludeFromPaks=true
和bOverrideChunkManifest=true
指令,将特定的引擎材质排除出最终打包的资源中。
结论
通过精心设计BasePakFileRules.ini
文件中的规则,开发者可以针对不同的平台和构建配置,细粒度地控制资源的打包策略。这不仅可以减小应用体积,加快加载速度,还能提升跨平台部署的灵活性。理解和运用这些规则,对于优化UE5项目至关重要。在日益注重用户体验和设备兼容性的今天,合理利用BasePakFileRules.ini
文件提供的功能,将为你的项目带来显著的性能提升和更广泛的市场接受度。