找回密码
 立即注册
查看: 404|回复: 0

unreal UGS 预编译二进制文件指南

[复制链接]
发表于 2022-9-25 18:12 | 显示全部楼层 |阅读模式
如果团队的内容创建者不需要使用代码库或重建编辑器来为其项目创建内容,则为项目构建的编辑器的预编译二进制文件 (PCB) 非常有用。为了使用户能够下载预编译的二进制文件,可以将包含所需二进制文件的 zip 文件提交给 Perforce。然后 UnrealGameSync 将同步并提取该 zip 文件,而不是在本地编译。
执行此操作使用与本地编译相同的用户界面,但任何没有匹配二进制文件的更改都将显示为灰色。配置完成后,用户可以通过选中“选项”菜单下的“同步预编译的二进制文件”项来选择使用预编译的二进制文件。
基本的 Perforce 设置

在不从连接或网络配置的角度详细说明需要什么的情况下,我们将详细说明用户需要什么才能将预编译二进制文件与他们的虚幻项目和引擎一起使用。要设置 Perforce 服务器的内容以与 UGS 一起使用,需要做一些事情。
用户将需要一个包含他们的引擎源代码、不是由虚幻引擎的构建过程生成的依赖项以及他们的项目的流。

  • 为确保所有必需的虚幻引擎文件都存在,用户应复制 Epic 现有的 Perforce 发布流之一
  • 我们的任何具有命名约定 //UE4/Release-4.xx 的发布流都可以从中复制

    • 确保复制 .p4ignore.txt 文件,因为这将确保在开发人员从本地开始构建后,不会将额外文件添加到流的副本中。

  • 用户还可以使用GitHub 源代码构建,运行 GitDependencies.exe,并上传完整的源代码以及收集的依赖项。复制我们的 Perforce 流仍然是推荐的路径,并且无论文件是如何收集、生成和上传的,都需要从流中复制 .p4ignore.txt 文件。
  • 无论您决定在 Perforce 中设置文件,请确保它们的文件类型和权限与您设置的任何版本的发布流相匹配。如果文件在我们的流中被标记为可写,那么它在您的流中也应该是可写的。可写和不可写之间的不匹配可能会导致构建或运行时失败。要检查这些权限,请在 P4V 中打开流并检查文件名右侧:


如果您发现需要更改流中的文件类型或权限,请在打开文件后右键单击该文件进行编辑,然后单击“更改文件类型”:


这将打开一个菜单,您可以在其中编辑文件类型和权限以匹配我们的发布流。
注意:如果您在构建期间或运行时收到特定文件的“拒绝访问”错误,很可能是由于这些权限设置不正确。

  • 任何与 UGS 一起使用的项目都需要是原生的,并且与虚幻引擎的文件位于同一流中。

    • 原生项目是可以从 Unreal 目录结构的顶级目录中发现的项目,或者可以从 .uprojectidrs 文件中列出的路径深一层(也在 Unreal 目录结构的顶级目录中)发现的项目。

用户应使用单独的流来保存预编译二进制 zip 文件

  • 可以使用单个流,但强烈建议使用第二个单独的流,所有有权访问第一个流的用户也可以访问该流。这将避免不使用 PCB 的团队成员流失。

    • 没有必要为此维护一个单独的工作空间;UnrealGameSync 将使用与同步文件相同的登录凭据以无状态方式获取 PCB。



  • 要为要上传的 PCB 配置流,请在项目的根目录下添加 Build/UnrealGameSync.ini 并引用将二进制文件上传到的 Perforce 位置。这是 UGS 在从 Perforce 获取 PCB 时会搜索的内容。
示例 Build\UnrealGameSync.ini 条目:
[//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject]
ZippedBinariesPath=//UE4/Dev-Binaries/++UE4+Main-Editor.zip
注意:UnrealGameSync.ini 需要位于 [Project Root]/Build/* 位置

  • 指定 ZippedBinariesPath 时,需要记住以下几点:

    • 该名称//UE4/Dev-Binaries/++UE4+Main-Editor.zip需要与下面上传部分中提到的 ArchiveStream 参数匹配,其中 ++UE4+Main 是当前分支的名称,斜杠转义为“+”字符。使用参数时,应该出现斜杠而不是“+”字符。
    • 任何有权访问 PCB 流的用户帐户都可以向他们上传一组新的 PCB,但如何完成取决于用户,因为这取决于工作室想要如何部署。手动用户可以执行此操作,或者也可以由自动构建节点负责。


生成和上传预编译的二进制文件
在设置了两个流并且用户有权访问它们之后,就可以生成 PCB 并将其上传到指定的 PCB 流。
要生成和上传 PCB:

  • 从 Perforce 同步主流内容
  • 运行基于我们示例的 BuildGraph 脚本,位于
[UE Root]/Engine/Build/Graph/Examples/BuildEditorAndTools.xml
生成 PCB 并将其上传到正确的 Perforce 位置(使用 -ArchiveStream 参数指定位置)
使用 BuildEditorAndTools 的示例命令:
Engine\Build\BatchFiles\RunUAT.bat
BuildGraph

-Script=Engine/Build/Graph/Examples/BuildEditorAndTools.xml

-Target="Submit To Perforce for UGS"

-set:EditorTarget=ShooterGameEditor

-set:ArchiveStream=//UE4/Dev-Binaries

-p4

-submit在这个例子中,ShooterGame 是一个原生项目,任何用户想要上传 PCB 的项目也需要是原生的。
注意:有关使用 BuildEditorAndTools.xml 的其他信息可以在文件开头的注释中找到。
注意:ArchiveStream 需要匹配前面指定的 ZippedBinariesPath,但不是使用“+”字符来转义斜杠,而是使用斜杠。

  • 此示例将提交一个 zip 文件到 //UE4/Dev-Binaries/++UE4+Main-Editor.zip,其中 ++UE4+Main 是当前分支的名称,斜杠转义为“+”字符。应将相同的路径设置为 UnrealGameSync.ini 中 ZippedBinariesPath 的值。
注意:确保 CL 描述的格式正确。UGS 期望每个 CL 描述以 [CL nnnnnnnnn] 开头,因此它知道二进制文件与哪个更改列表相关联
注意:PDB 包含在此 zip 文件中,但它们被剥离以减小构建大小。这将允许从崩溃中收集调用堆栈,但不允许完全调试。如果团队需要更好的符号存储,他们可能希望使用符号服务器,由 IT 和部署团队来实施。
使用来自 UGS 的预编译二进制文件

在成功生成预编译的二进制文件并上传到辅助流后,使用位于主流中的文件,UGS 应该能够检测和使用 PCB 与主流。

  • 切换“同步预编译二进制文件”选项,并同步到最新版本。图中的示例是一个没有任何预编译二进制文件的流,但如果在前面的步骤中正确设置了二进制文件,则该选项应该是可选的。


应该拾取和使用 PCB,而不是为选择此选项的任何人构建引擎。
重要提示:

Unreal虚幻引擎电脑配置的要求是比较高,特别是实时渲染,前期的硬件成本是比较高,这里有一个简单的节省硬件成本的方法,使用赞奇超高清云工作站,即使本地普通的电脑也能运行UE5软件,且普通电脑也能享受行业最高端的CPU和GPU,极大提高制作效率和使用体验,且使用方便快捷,全面支持3D应用软件插件运行,随时调用百余款软件插件,高效作业。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 20:00 , Processed in 0.087833 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表