一、实现步骤
1.cook Content烘焙uasset文件
2.UnrealPak打包Pak文件
3.FPakFile、FPakPlatformFile从Pak文件中遍历文件StaticLoadObject加载特定类型的UObject
4.SpawActor在世界中创建物体
二、打包过程
先将我们要打包的资源放在一起,如下:
需要打包pak的内容
如果希望共享网格贴图等资源,也可以单独导出Test_01这个BP。
但需要保证加载Test_01时,他的依赖资源路径正确。如下图:
Test_01的Mesh引用路径
Test_01的Mat引用路径
这些路径信息可以通过鼠标悬浮等方法查看。
保存后,选择界面的Cook按钮或者通过UAT命令行进行烘焙。
Cook按钮
Cook会将资源烘焙为对应平台的资源,请根据目标平台Cook。
Cook后资源所在目录
默认会将整个Content资源Cook,找到我们的目录。并找到打包工具UnrealPak
UnrealPak
注意不同的UE4版本请使用对应版本的UnrealPak,否则可能引起加载失败。
通过cmd命令,找到UnrealPak,也可以将该目录加入系统环境变量方便调用。
- 默认调用方法
- 文本调用方法
第一个路径为Cook路径,第二个路径为pak的Mount路径。注意要带/*,可以写多行
直接将创建路径改为该文本,即可按照文本配置批量打包
输入命令行后不出意外应该如下:
打包后提示内容
可以通过UnrealPak -list命令来查看包信息:
Pak的内容信息
也可以使用UnrealPakViewer来可视化查看:
FlyingTree:UnrealPakViewer可视化Pak分析工具。
Pak常用加载命令:
三、挂载——Pak加载
加载主要是在根路径和包内容路径(挂载点)之间创建链接。 这是使资产之间的引用工作所必需的。 应称为安装后的pak。
如果不注册挂载点,引擎就不知道挂载插件的根路径。 ContentPath是pak文件的挂载点+你的“Content”文件夹的进一步部分。
例:
@RootPath:你的资源所在的顶级内容文件夹名称(例如:/TestDLC/)。
@ContentPath:在一个pak中,RootPath应该指向的路径。 (例如:
. . / . . / . . / TestProject /插件/ TestDLC /内容/)
参考自:
B站UE4 资源打包加载官方教程:虚幻引擎官方中文直播 第4期 | 打扮家UI框架/资源打包加载_哔哩哔哩_bilibili
专栏文章 UE4的Pak从打包到加载 - 知乎