在将UE4项目分发给用户之前,必须对其进行正确打包。打包可确保所有代码和内容都是最新的,并且格式正确,可以在所需的目标平台上运行。那么,我们应该怎么打包UE4项目呢?


打包流程


在包装过程中执行几个步骤。特定于项目的源代码将首先被编译。编译代码后,所有必需的内容都将转换或“煮熟”成目标平台可以使用的格式。然后,将编译后的代码和经过处理的内容捆绑到一组可分发的文件中,例如安装程序。


在主文件菜单下,有一个名为Package Project的选项,带有一个子菜单。该子菜单提供了可以打包项目的所有受支持平台的列表。


在打包之前,还可以设置一些高级选项。


设置游戏默认地图


在打包游戏之前,首先需要设置一个Game Default Map,它将在打包游戏开始时加载。如果未设置地图并且正在使用空白项目,则打包的游戏开始时只会看到黑屏。如果使用了一个模板映射,例如“第一人称”模板或“第三人称”模板,则将加载起始映射。


要设置游戏默认地图,请在编辑器主菜单中单击编辑>项目设置>地图和模式:


UE4打包项目详细过程


创建包


要打包用于特定平台的项目,可以在编辑器的主菜单中单击文件>打包项目> [PlatformName]:


UE4打包项目详细过程


你将看到一个用于选择目标目录的对话框。如果打包成功完成,则此目录将包含打包的项目。


然后,确认目标目录将启动为所选平台打包项目的实际过程。因为打包可能非常耗时,所以此过程在后台执行,可以继续使用编辑器。状态指示器将显示在编辑器的右下角,以指示进度:


UE4打包项目详细过程


状态指示器还提供了“取消”按钮以停止包装过程。此外,“显示日志”链接可用于显示扩展的输出日志信息,这对于确定包装过程失败时出了什么问题或捕获可能揭示产品中潜在错误的警告非常有用:


UE4打包项目详细过程


最重要的日志消息(例如错误和警告)被记录到常规的“消息日志”窗口中:


UE4打包项目详细过程

UE4打包项目详细过程



如果这些窗口不可见,则可以通过“窗口”>“开发人员工具”>“输出日志/消息日志”选项来访问它们。


分配


要将iOS或Android游戏提交到App Store或Google Play商店,需要以分发模式创建你的软件包。要做到这一点,转到包装设置的选项包装菜单,然后选中分布复选框。


在iOS上,需要在Apple的开发人员网站上创建分发证书和MobileProvision。以与开发证书相同的方式安装分发证书,并在分发条款的旁边加上“ Distro_”前缀(这样,你将同时拥有“Distro_MyProject.mobileprovision”和“MyProject.mobileprovision”)。


在Android上,你需要创建一个密钥来对.apk文件进行签名,并使用名为的文件为我们的构建工具提供一些信息SigningConfig.xml。该文件位于已安装的Engine目录(Engine/Build/Android/Java/)中。如果编辑此文件,它将应用于你的所有项目。但是,可以将此文件复制到项目的Build/Android/目录(没有Java/子目录),并且仅用于该项目。在文件本身中找到如何生成密钥和填写文件的说明。


高级设置


单击主菜单中的文件>打包项目>打包设置...或编辑>项目设置>打包,将为您提供打包功能的一些高级配置选项。


UE4打包项目详细过程


当前,这些包括:


UE4打包项目详细过程


签名和加密


当分发到出厂产品中时,.Pak可以对文件进行签名或加密,通常是为了防止数据提取或篡改。要激活,停用或调整项目上的加密设置,请转到“ 项目设置”菜单,然后找到“ 加密”部分。


UE4打包项目详细过程


项目设置菜单中的加密选项。


此菜单提供以下设置:


UE4打包项目详细过程


另外,可以设置或清除用于签名或加密的密钥。


内容烹饪


作为开发人员,当迭代新的或修改的游戏内容时,您可能并不总是要经历冗长的过程,将所有内容打包到暂存目录中然后从那里运行。因此,可以通过单击“ 文件”>“烹饪内容”>“ [PlatformName]”,仅烹饪特定目标平台的内容而无需打包。


请注意,此功能将更新项目的本地开发人员工作区中的内容,并且不会将任何资产复制到暂存目录中。您可以直接在本地开发人员工作区中运行游戏,以实现快速迭代。


优化加载时间


短加载时间对于开放世界游戏至关重要,但在每种类型的游戏中都很有价值。虚幻引擎提供了多种方法来优化打包过程中项目的加载时间。


使用事件驱动的加载程序(EDL)和异步加载线程(ALT)


   ● 在异步加载线程(ALT)默认关闭的,但可以在项目设置菜单中的引擎下关>流部分。对于修改后的引擎,可能需要进行一些调整,但是总的来说,ALT应该将加载速度提高一倍,包括具有“前期”加载时间的游戏和不断流传输数据的游戏。ALT通过在两个单独的线程上同时运行序列化和后加载代码来工作,因此,它增加了以下要求:游戏代码中的UObject类构造函数,PostInitProperties函数和Serialize函数必须是线程安全的。激活后,ALT将加倍加载速度。


   ● 该事件驱动装载机是默认激活,但可以在项目设置菜单中的引擎下被停用>流部分。对于大多数项目,EDL会将加载时间减少一半。EDL是稳定的,可以反向移植到虚幻引擎的旧版本,也可以进行调整以修改或定制引擎版本。


UE4打包项目详细过程


压缩.pak文件


   ● .pak在项目中使用文件压缩,请打开“项目设置”,然后找到“打包”部分。在该部分中,打开“包装”标题的高级部分,然后选中出现的标有“创建压缩熟包装”的框。


   ● 大多数平台不提供自动压缩,压缩.pak文件会减少加载时间,但是需要考虑一些特殊情况:


UE4打包项目详细过程

UE4打包项目详细过程


选中此框以启用.pak文件中的压缩。


订购Pak文件


井井有条的.pak文件对于减少加载时间至关重要。为了帮助您.pak优化文件顺序,UE4提供了一组工具来发现需要数据资产的顺序,并构建加载速度更快的包。从概念上讲,此过程类似于配置文件引导的优化。请按照以下方法订购.pak文件:


   ● 使用-fileopenlog命令行选项生成并运行打包的游戏,这将使引擎记录其打开文件的顺序。


   ● 锻炼游戏的所有主要领域。加载每个级别,每个可玩角色,每种武器,每种载具等。加载完所有内容后,退出游戏。


   ● 你部署的游戏中将有一个名为的文件,GameOpenOrder.log其中包含优化.pak文件顺序所需的信息。例如,在Windows版本中,该文件位于中WindowsNoEditor/(YourGame)/Build/WindowsNoEditor/FileOpenOrder/。将此文件复制到/Build/WindowsNoEditor/FileOpenOrder/路径下的开发目录。


   ● 放置日志文件后,重新生成该.pak文件。此.pak文件以及以后生成的所有文件将使用日志文件中指示的文件顺序。


在生产环境中,应将日志文件检查到源代码管理中,并定期使用新-fileopenlog运行的结果(包括游戏准备发布时的最终运行)进行更新。


UE4打包项目的过程就讲到这里,有什么想要知道的内容可以关注翼狐网。

,Unreal Engine技巧,Unreal Engine教程