一、实现步骤

1.cook Content烘焙uasset文件

2.UnrealPak打包Pak文件

3.FPakFile、FPakPlatformFile从Pak文件中遍历文件StaticLoadObject加载特定类型的UObject

4.SpawActor在世界中创建物体

二、打包过程

先将我们要打包的资源放在一起,如下:

UE4打包后用 Python ue4打包流程_加载

需要打包pak的内容

如果希望共享网格贴图等资源,也可以单独导出Test_01这个BP。

但需要保证加载Test_01时,他的依赖资源路径正确。如下图:

UE4打包后用 Python ue4打包流程_加载_02

Test_01的Mesh引用路径

UE4打包后用 Python ue4打包流程_ue4_03

Test_01的Mat引用路径

这些路径信息可以通过鼠标悬浮等方法查看。

保存后,选择界面的Cook按钮或者通过UAT命令行进行烘焙。

UE4打包后用 Python ue4打包流程_ue4_04

Cook按钮

Cook会将资源烘焙为对应平台的资源,请根据目标平台Cook。

UE4打包后用 Python ue4打包流程_ue4_05

Cook后资源所在目录

默认会将整个Content资源Cook,找到我们的目录。并找到打包工具UnrealPak

UE4打包后用 Python ue4打包流程_ue4_06

UnrealPak

注意不同的UE4版本请使用对应版本的UnrealPak,否则可能引起加载失败。

通过cmd命令,找到UnrealPak,也可以将该目录加入系统环境变量方便调用。

  • 默认调用方法

UE4打包后用 Python ue4打包流程_ue4_07

  • 文本调用方法

UE4打包后用 Python ue4打包流程_UE4打包后用 Python_08

第一个路径为Cook路径,第二个路径为pak的Mount路径。注意要带/*,可以写多行

UE4打包后用 Python ue4打包流程_ue4_09

直接将创建路径改为该文本,即可按照文本配置批量打包

输入命令行后不出意外应该如下:

UE4打包后用 Python ue4打包流程_Test_10

打包后提示内容

可以通过UnrealPak -list命令来查看包信息:

UE4打包后用 Python ue4打包流程_Test_11

Pak的内容信息

也可以使用UnrealPakViewer来可视化查看:

FlyingTree:UnrealPakViewer可视化Pak分析工具

Pak常用加载命令:

UE4打包后用 Python ue4打包流程_mesh_12

三、挂载——Pak加载

加载主要是在根路径和包内容路径(挂载点)之间创建链接。 这是使资产之间的引用工作所必需的。 应称为安装后的pak。

如果不注册挂载点,引擎就不知道挂载插件的根路径。 ContentPath是pak文件的挂载点+你的“Content”文件夹的进一步部分。

例:

UE4打包后用 Python ue4打包流程_UE4打包后用 Python_13

@RootPath:你的资源所在的顶级内容文件夹名称(例如:/TestDLC/)。

@ContentPath:在一个pak中,RootPath应该指向的路径。 (例如:

. . / . . / . . / TestProject /插件/ TestDLC /内容/)

参考自:

B站UE4 资源打包加载官方教程:虚幻引擎官方中文直播 第4期 | 打扮家UI框架/资源打包加载_哔哩哔哩_bilibili

专栏文章 UE4的Pak从打包到加载 - 知乎