打包前
打包前,content内容243MB,由模型、贴图、蓝图资源构成,(使用工具TreeSize)
打包后
third person模板打包后,整个目录的大小及构成如下,
项目目录
TPProject大小328.3MB,
TPProject/Content/Paks/TPProject-Windows.pak(242MB),大小与打包前content大小一致。
/TPProject/Binaries/Win64/TPProject-Win64-Shipping.exe(85.8MB),
分析TPProject-Win64-Shipping.exe(使用工具ghidra),主要是项目代码和资源引用
引擎目录
Engine大小52.8MB,整体结构如下图,有三个目录Extract、Binaries、Content
Extract目录
其中\Extras\Redist\en-us\UEPrereqSetup_x64.exe大小为48.1MB,占Extract目录空间大小100%
UEPrereqSetup_x64.exe作用是在首次运行程序时,会自动检测并安装必要的系统组件,保证程序正常运行。
Binaries组成
Binaries下是ThirdParty,包含必要的库,如下图。
优化参考
https://cobracode.notion.site/How-to-reduce-Package-Size-for-Unreal-Engine-Game-Builds-7993544e050041f9800512acd3500cfc
修改如下配置后,打包,整个目录的大小由384.7MB减小到358MB。主要是pak文件从242MB减小到216 MB。
-
勾选Packaging->UsePakFile
-
勾选Packaging->Create compressed cooked packages
-
勾选Packaging->Exclude editor content when cooking
-
勾选Packaging->Full Rebuild
-
勾选Packaging->ListsOfMaps,添加需要构建的地图文件
-
勾选Rendering->Forward Shading
添加DefaultPakFileRules.ini配置后打包,参考https://cobracode.notion.site/How-to-reduce-Package-Size-for-Unreal-Engine-Game-Builds-7993544e050041f9800512acd3500cfc,包体整个目录再由358MB减小到356MB.
[ExcludeDefault] Targets="Shipping,Development,Debug" bExcludeFromPaks=true bOverrideChunkManifest=true +Files=".../Engine/Content/ArtTools/*" +Files=".../Engine/Content/EditorLandscapeResources/*" +Files=".../Engine/Content/EditorMeshes/ColorCalibrator/*" +Files=".../Engine/Content/EngineSounds/*" +Files=".../Engine/Content/Maps/*" +Files=".../Engine/Content/MobileResources/*" +Files=".../Engine/Content/Slate/Automation/*" +Files=".../Engine/Content/Slate/Common/*" +Files=".../Engine/Content/Slate/CrashTracker/*" +Files=".../Engine/Content/Slate/Docking/*" +Files=".../Engine/Content/Slate/Fonts/DroidSansFallback.ttf" +Files=".../Engine/Content/Slate/Icons/*" +Files=".../Engine/Content/Slate/MessageLog/*" +Files=".../Engine/Content/Slate/Old/*" +Files=".../Engine/Content/Slate/Testing/*" +Files=".../Engine/Content/Slate/Tutorials/*" +Files=".../Engine/Content/Tutorial/*" +Files=".../Engine/Content/VREditor/*" +Files=".../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Arm.*" +Files=".../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Base.*" +Files=".../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Body.*" +Files=".../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Mount.*" +Files=".../Engine/Content/EditorMeshes/Camera/SM_RailRig_Mount.*" +Files=".../Engine/Content/EditorMeshes/Camera/SM_RailRig_Track.*" +Files=".../Engine/Content/EditorMaterials/MAT_Groups_Toggle.*" +Files=".../Engine/Content/EditorMaterials/MAT_Groups_Visibility.*" +Files=".../Engine/Content/EditorMaterials/PreviewShadowIndicator.*" +Files=".../Engine/Content/EditorMaterials/PreviewShadowIndicatorMaterial.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_ColorTrack.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Anim.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_AudioMaster.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Director.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Event.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Fade.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Float.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Move.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Slomo.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Sound.*" +Files=".../Engine/Content/EditorMaterials/MatineeGroups/MAT_Groups_Vector.*" +Files=".../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_NoImage.*" +Files=".../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_OOD.*" +Files=".../Engine/Content/EditorMaterials/Camera/CineMat.*" +Files=".../Engine/Content/EditorMaterials/Camera/MI_CineMat_Rig.*"
优化总结
无风险设置
-
取消勾选Packaging->Includeprequisites installer(上架steam适用)
-
关闭不必要的插件(视项目情况)
-
勾选Packaging->UsePakFile
-
勾选Packaging->Share Material Shader Code
-
勾选Packaging->Create compressed cooked packages
-
勾选Packaging->Exclude editor content when cooking
-
勾选Packaging->Full Rebuild
-
勾选Packaging->ListsOfMaps,添加需要构建的地图文件
-
勾选Rendering->Forward Shading
进一步优化
-
禁用引擎所默认开启的插件,同时需要保证项目功能正常
-
添加DefaultPakFileRules.ini,参考(https://forums.unrealengine.com/t/pak-blacklist-file-deprecated-in-favor-of-defaultpakfilerules-ini/153080/5)