UE5在资源打包配置上的BasePakFileRules.ini文件源码解读分析

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=truebOverrideChunkManifest=true指令,将特定的引擎材质排除出最终打包的资源中。

结论

通过精心设计BasePakFileRules.ini文件中的规则,开发者可以针对不同的平台和构建配置,细粒度地控制资源的打包策略。这不仅可以减小应用体积,加快加载速度,还能提升跨平台部署的灵活性。理解和运用这些规则,对于优化UE5项目至关重要。在日益注重用户体验和设备兼容性的今天,合理利用BasePakFileRules.ini文件提供的功能,将为你的项目带来显著的性能提升和更广泛的市场接受度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宝哥Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值