赞
踩
PAK是将UE项目打包成EXE文件后在此基础上添加新的模型图片组件等,以下是从网上汇总而来,引擎为UE5.1
使用PAK需要在UE项目设置里面勾选设置,如下
在项目设置中,取消“使用IO保存”(Use Iostore)和“共享材质着手器代码”(Share Material Shader Code),这两项主要是为了后面Mount和材质表现能够正常,否则会出现丢失情况。
后续创建一个文件夹将需要cook的文件全部放进该文件夹下面即可,然后在引擎里设置将该文件的路径添加进去在烘焙的时候就会打包成PAK文件了。
烘焙的方法UE5为platforms下面的,选择windows->cook content等待即可。烘焙好后在该项目文件夹下面Saved\Cooked\Windows\项目名称\Content\文件夹名\下面查看会有.uasset文件。
做到这一步现在需要打PAK的包,PAK的包有两种生成方式,一个是通过命令行办法,这样需要找到UE引擎里面的UnrealPak.exe。下面是命令行生成PAK文件方式。
前面是UnrealPak.exe的路径,这个文件在引擎UE_5.1\Engine\Binaries\Win64\ 下面能找到,路径是固定的。
D:\2\TestPak\Test123:这个是创建PAK包的路径
-create=D:\2\TestPak\BP.txt :这个是烘焙PAK文件的路径就是上面在引擎里填写的路径,BP.txt内容为:"D:\2\TestPak\Saved\Cooked\Windows\TestPak\Content\Blueprint\PakTest\*" ../../../Content/Blueprint/PakTest
-abslog:此项可有可无根据需要来判断,填写的则是log生成的路径以及名称。
上面是通过命令行调用,还有便是通过txt编写运行程序来运行,这样的方法一劳永逸不需要每次使用的时候都麻烦的输入,只需要改下对应的路径即可。
------------------
set PAK_TOOLS="D:\UE_5.0\Engine\Binaries\Win64\UnrealPak.exe"
set CreateFile=D:\ue5_xx\PakLoad\BP.txt
set LogFile=D:\ue5_xx\PakLoad\log.txt
%PAK_TOOLS% D:\pak\hotlevel_1.pak -create=%CreateFile% -abslog=%LogFile% -compress
Pause
------------------
以上代码直接复制到txt里面
PAK_TOOLS是UnrealPak.exe的路径
CreateFile是烘焙PAK文件的路径
LogFile是生成log文件的路径
如果上面使用命令行的方法理解了这里也就不难理解了。
现在PAK完成需要将PAK挂在到UE的exe项目里,这里有两种方式,一种还是使用命令行的办法调用,因为项目需要使用代码的方式调用所以这里不介绍命令行的方法,有需要的可以去学习一下。
下面介绍使用代码方式调用,首先创建一个C++类继承自Actor,在工程build.cs里面添加模块"PakFile"
添加之后创建两个函数,一个是用来挂载该PAK的,另一个则是将PAK里面的组建创建到场景上,挂载好后如果有其它需求完全可以自行添加。
#include "IPlatformFilePak.h" 需要在CPP中添加此头文件。
这里为初始化根据是否是编译器的模式下一个是绝对路径一个是相对路径,然后生成了一个FPakFile对象,需要注意UE5将FPakFile的析构函数私有化了,不能使用共享智能指针。
这里是PAK加密处理,因为个人没有使用这个也比较麻烦所以没细研究,有需要的可以研究一下。
这里是将PAK挂在到项目里,这里需要理解也是最重要的便是NewMountPath,这个是挂载的路径,一般默认是这个路径Blueprint'/Game/Blueprint/。
这里注释掉的内容是因为在引擎里生成物体的传入路径的时候会出现空格的情况,代码是在网上找到去除空格的办法,如果没有这个问题可以不需要使用。
这里就是生成Actor的方法,注意生成的路径是之前上面说到的NewMountPath这个路径,在这个路径下面填写更为细致的路径已经文件名称即可,文件末尾需要加上_C是C++读取的方式,最后动态加载该组件。
以上便是PAK打包流程,需要注意的是测试结果必须要在生成exe文件下查看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。