UE 打包pak(命令行或代码)、 挂载pak、 加载pak
UE 打包pak;挂载pak;加载pak命令行打包pak 程序批量打包pak打包单个资产文件为pak
资源准备:
以这个资产为例:
cook资源:
use to store 不取消勾选会挂载不上
烘焙内容
烘焙好后在 ..\Saved\Cooked\Windows\ProjectTestPak\Content\...目录下
1.打包资产【未加密】
1.1.打包资产为pak文件【将资产所有依赖放在同一个文件夹下,打包同一个文件夹下的资产】
注意:这种方式,是把文件夹下里所有东西打包成一个pak,需把资产所有依赖放在同一个文件夹下,包括材质、贴图、模型等
命令行打包
导航到引擎安装目录下的...\Engine\Binaries\Win64
我的完整目录是E:\UE_5.2\Engine\Binaries\Win64在此目录下输入cmd 调出命令行
完整命令如下(注意空格)
UnrealPak.exe [pak完整路径] -create=[cook好的资源存放路径]
程序化打包
打包好的pak如下
可以用命令行查看pak包
UnrealPak.exe [pak完整路径] -list
1.2.打包单个资产为pak【将要打包的资产和依赖列表写入.txt打包】
如果对资产进行了整理,用到的材质、贴图等已经打包在项目里就不用再打包到单个pak里,没有的话就要把所有依赖都打包到pak里,有的依赖的资产很多,不方便整理到一个文件夹下,那可以把引用到的资产列表写到.txt里打包
可以用reference viewer查看引用了哪些资产:
通过函数 GetDependencies 可以用获取依赖的资产路径,向下遍历拿到依赖的所有资产路径,然后将资产路径拼接成cook后的路径写入 .txt 文件(有其他好的方法拿到所有依赖的资产欢迎沟通)
写入的 .txt 内容如下:
注:
1.写入txt 的资产路径是 "cook好的资产路径(saved/cooked/..)" " ../../../../+资产相对项目路径"
2.要将.uasset和.uexp路径都写入,贴图还会生成.ubulk文件也要写入
3. -compress 是指压缩
命令行打包
和打包文件夹的方式一样,只是将文件夹路径改成 .txt文件路径
UnrealPak.exe [pak完整路径] -create=[.txt文件路径]
2.挂载pak和加载pak里的资源
build.cs里添加模块 Pakfilepak挂载成功以后 用资源引用路径加载资源(此处写了固定路径测试)
可以把资源加载为UObject,根据类型再去cast to
资源引用路径:挂载路径(Content 改成 Game)+ 资产名(Name.uasset改成Name.Name)
资产名:
PakFile->FindFilesAtPath(FoundPakNames, *PakFile->GetMountPoint(), true, false, false);
FoundPakNames是pak里的所有资源文件名,如SM_A_AbiesHomolepis_LOD0.uasset
完整路径:
/Game/TwinmotionToUnrealContent/Library/Vegetation/Trees/XF_AbiesHomolepis/SM_A_AbiesHomolepis_LOD0.SM_A_AbiesHomolepis_LOD0
最后蓝图写了测试的页面,项目打包运行如下:
参考:
UE5热更新(Pak包的Cook,打包,加载,踩过的一些坑)_ue热更新-CSDN博客
更多推荐
所有评论(0)