本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Epic 虚幻引擎
虚幻引擎是一款实时 3D 创作工具,可提供逼真的视觉效果和身临其境的体验。虚幻引擎由 Deadline Cloud 提供支持,包括提交者、conda 包和用于提高渲染性能的适配器。本指南提供了分步说明,说明如何将Deadline Cloud与虚幻引擎一起使用,通过在多台计算机上分配渲染任务来更快地渲染电影渲染队列项目。
支持概述
以下组件支持虚幻引擎:
-
Submitter:集成的提交器插件,用于通过自动场景和资产检测功能直接从虚幻引擎提交作业。
-
Conda 软件包:用于在服务管理的舰队上自动安装的 Deadline Cloud。
-
Adaptor:工作主机上的一种程序,它使应用程序在任务之间保持加载状态,以加快渲染和报告渲染进度。
-
Cross-platform 兼容性:仅支持 Windows 的提交者和工作人员。
-
电影渲染队列集成:支持虚幻的电影渲染队列系统。
虚幻引擎版本兼容性
下表显示了虚幻引擎版本的当前支持级别:
| 主要版本 | 提交者支持 | 康达支持 |
|---|---|---|
| 5.4 | Windows | Windows |
| 5.5 | Windows | Windows |
| 5.6 | Windows | Windows |
| 5.7 | Windows | Windows |
| 5.8 | Windows | Windows |
截止日期云康达频道
下表列出了适用于虚幻引擎的所有conda软件包,可供 deadline-cloud conda Service-managed 频道中的舰队使用:
| OS | 程序包 | 版本 |
|---|---|---|
| Windows | 虚幻引擎 | 5.4 |
| Windows | 虚幻引擎 | 5.5 |
| Windows | 虚幻引擎 | 5.6 |
| Windows | 虚幻引擎 | 5.7 |
| Windows | 虚幻引擎 | 5.8 |
| Windows | 虚幻引擎openjd |
开始使用
先决条件
在安装虚幻引擎提交器之前,请确保您具备以下条件:
-
Windows 工作站(Windows 10 或更高版本)
-
已安装支持版本的虚幻引擎
-
截止日期云监视器已安装(在此处下载)
-
使用 GPU-enabled Windows服务管理的队列或使用虚幻引擎、虚幻引擎适配器和许可设置的客户管理的队列访问Deadline Cloud农场
安装提交者
虚幻引擎提交者将 Deadline Cloud 功能作为插件添加到虚幻引擎,允许你将电影渲染队列任务直接提交到 Deadline Cloud 进行渲染。
选择你的分支机构
为您的部署选择相应的分支:
| 分支 | 稳定性 | 使用案例 | 推荐用于 |
|---|---|---|---|
| 发布 | 稳定 | 生产 | 大多数用户 |
| 主线 | 最新功能 | 开发和测试 | 高级用户 |
提示
将发布分支用于生产环境以确保稳定性。
创建一个新的 Windows Amazon EC2 实例来安装虚幻引擎(可选)
如果您以提交者身份设置全新的Windows亚马逊弹性计算云 (Amazon EC2) 实例,那么一个具有 200 GB 存储空间的 g5.2xlarge 实例是合理的最低要求:
使用有效的实例配置文件启动 Amazon EC2 实例。需要配置文件才能按照以下说明下载 NVIDIA GRID 驱动程序。
-
下载 Epic 安装程序并安装支持的虚幻引擎版本(5.4 到 5.8)。
使用 DirectX 11 插件运行时,UE 5.5 存在已知的崩溃错误(参见 UE 问题 #UE-276282)。如果你需要在 UE 5.5 上支持 DirectX,请使用 DirectX 12 或更高版本。
NVIDIA GRID 驱动程序-按照 Windows 安装说明进行操作。
Windows 漫长的路径
以下许多步骤可能会创建超过默认 Windows 最大路径长度的文件。在Windows计算机上构建和安装虚幻引擎截止日期云提交器或适配器之前,我们建议你启用Windows长路径支持。为此,请按照 “最大文件路径限制
工作器代理上还存在一个
安装编译工具
虚幻提交者插件目前必须在本地编译。
使用 Visual Studio 安装程序安装 Visual Studio
。 在 “单个组件” 下,确保所选的 MSVC 编译工具版本(默认为 “最新”)与表中的推荐版本相匹配。尽管兼容性指南可能建议使用 “或更高版本” 的版本,但当使用比 “推荐” 版本更新的版本时,有时会出现编译错误。
在 “单个组件” 下,选择最新的 .NET 框架 SDK(4.6.1 和 4.8.1 已通过验证)。
在 “工作负载” 下,选择 “使用 C++ 进行桌面开发” 。
安装截止日期云监视器
截止日期云监控器既用于管理向截止日期云提交任务的凭据,又用于监控任务的状态。
登录。
环境设置
(如果尚未安装)为所有用户安装最新版本的 Python(已通过 3.12 验证)。
-
确保您的环境变量设置正确。在系统环境变量中,您的 PATH 必须包括:
您的 Python 安装路径(例如,
C:\Program Files\Python312)。您的 Python 脚本文件夹的路径(例如,
C:\Program Files\Python312\scripts)。虚幻二进制文件的路径(例如,
C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\Win64)。
截止日期云软件安装
克隆或deadline-cloud-for-unreal-engine从发布分支或主线下载,具体取决于你想要的是最新的测试版本还是所有最新的提交。
git clone https://github.com/aws-deadline/deadline-cloud-for-unreal-engine.git cd deadline-cloud-for-unreal-engine git switch release
可选-使用脚本构建和安装插件
的辅助脚本scripts/build_plugin.py可以选择自动执行接下来的两个步骤。它会尝试找到最新版本的虚幻引擎,构建你的插件和 Python 依赖关系,并将它们安装在正确的位置。你可以覆盖虚幻版本等设置。要查看完整的帮助列表,请运行:
python scripts/build_plugin.py -h
要以提交者deadline-cloud-for-unreal-engine身份使用最新的虚幻引擎来构建和安装当前副本,请运行:
python scripts/build_plugin.py --install
如果您已成功使用此脚本进行安装,则可以跳至创建舰队。
编译插件
根据你安装的虚幻引擎的位置和安装的位置,调整下面的前两条路径deadline-cloud-for-unreal-engine。
从 Unreal Install Batchfiles 文件夹(package参数可以是任何新目录,但你希望UnrealDeadlineCloudService稍后再调用):
cd C:\Program Files\Epic Games\UE_5.5\Engine\Build\BatchFiles runuat.bat BuildPlugin -plugin="C:\deadline\deadline-cloud-for-unreal-engine\src\unreal_plugin\UnrealDeadlineCloudService.uplugin" -package="C:\UnrealDeadlineCloudService"
将上面的 “包” 文件夹复制到虚幻装置的插件文件夹(例如,C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService)。
Python 依赖项
有 4 种方法可以安装所需的 Python 依赖项。
1. 如果您已经从上面的发布分支构建并安装了插件,则可以从 pip 进行安装。使用以下安装命令,调整虚幻安装的路径:
"C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python" -m pip install deadline-cloud-for-unreal-engine --target "C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService\Content\Python\libraries"
2. 或者,在您的.uplugin文件中(在上述步骤中,将显示在C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService\UnrealDeadlineCloudService.uplugin)中,您可以添加一个与最新版本相匹配deadline-cloud-for-unreal-engine的PythonRequirements部分 GitHub/PyPI,例如:
"PythonRequirements": [ { "Platform": "All", "Requirements": [ "deadline-cloud-for-unreal-engine>=0.5.0" ] } ]
你可能希望停用虚幻引擎Python设置中的 “严格哈希” 功能,或者为你希望使用的特定库和依赖版本添加哈希设置。
3. 如果你要从主线中提取,你可能有尚未发布到 PyPI 的 Python 依赖项——你需要构建和安装本地副本,这可以用 hatch 来完成。需要更改.whl文件以反映 hatch build 输出的版本:
pip install hatch hatch build "C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python" -m pip install dist\deadline_cloud_for_unreal_engine-0.2.2.post21-py3-none-any.whl --target "C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService\Content\Python\libraries"
4. 最后,Python 依赖项可以由提交者安装程序安装。这些可能与上面发布或主线分支中的代码已过时,因此目前不应首选此方法。
从 Deadline Cloud AWS 控制台的 “下载” 选项卡或 Deadline Cloud 监视器中的 “工作站设置” → “下载” 下下载提交者安装程序。
为所有用户运行安装程序。默认安装位置很好。
启用虚幻引擎插件。
确保虚幻引擎插件的安装路径与插件复制到的位置相匹配(尤其要确保你的虚幻版本匹配)。
更新通知
提交者插件会在虚幻编辑器启动 GitHub 时自动检查是否有新版本。如果有更新,则会出现一个对话框,提示您访问发布页面。
要停用更新通知,请在 Deadline Cloud 设置面板(编辑 > 项目设置 > 插件 > 截止日期云)的 “常规设置” 下取消选中 “显示提交者更新通知”。
或者,你可以使用 CLI:
deadline config set settings.submitter_update_notification false
要重新启用:
deadline config set settings.submitter_update_notification true
创建舰队
如果你已经有一个 Windows 队列并且不需要设置新的队列,则可以跳至提交测试渲染。
创建服务管理队列 (SMF)
如果您还没有 SMF,请按照服务管理队列用户指南创建 SMF。在服务管理舰队 (SMF) 上,虚幻引擎和适配器可在默认队列环境下使用 deadline-cloud conda频道自动使用。https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment你已经准备好开始渲染了。继续执行提交测试渲染以下操作以提交测试渲染作业。
创建客户管理的队列 (CMF)
-
如果您还没有 CMF,请按照创建客户管理的队列来创建 CMF。
警告
将 CMF 关联到队列时,如果您不使用默认 conda 队列环境,请将其删除。此删除可防止使用 conda 环境和意外使用提交到 CM SMF-specific F 的任务的默认变量。如果您在 CMF 中使用 conda,请记住在提交
CondaPackages作业期间更新参数定义覆盖中的CondaChannels变量。 按照工作器主机设置和配置来设置工作器主机。
按照管理 Windows 作业用户密钥的访问权限,为您的 CMF 工作人员设置 Windows 作业用户密钥。
按照安装和配置作业所需的软件来安装运行作业所需的软件。
按照步骤设置客户管理的车队 (CMF) 员工设置您的工作节点来运行虚幻引擎作业。
提交测试渲染
这个例子使用了来自虚幻商城的 Meerkat 演示:
启动 Epic Games 启动器。
从 “示例” 选项卡安装 Meerkat 演示版。
从 Meerkat 演示版中创建一个项目,然后将其打开。
从 “编辑” 菜单中选择 “插件”,搜索并启用UnrealDeadlineCloudService。
如果你是第一次启用该插件,请重启虚幻引擎。
-
在 “编辑” > “项目设置” 下,搜索 “影片渲染管线” 部分。
对于 “默认远程执行器”,选择MoviePipelineDeadlineCloudRemoteExecutor。
对于 “默认执行器任务”,选择MoviePipelineDeadlineCloudExecutorJob。
在 “默认作业设置类别” 下,选择 “添加” 图标,然后添加DeadlineCloudRenderStepSetting。
-
搜索 De adline Cloud 设置并验证身份验证:
确保您的状态显示 “已验证”,截止日期云 API 显示 “已授权”。
如果未出现,请先尝试使用 “登录” 按钮。如果这不起作用,请打开 Deadline 云监控器并确保你已登录。
-
在 “截止日期云工作站配置” 部分中:
在 “全局设置” 下,确保您的 AWS 配置文件已正确设置为 Deadline 云监控器配置文件。
在 “配置文件” 下,确保将您的默认农场设置为您的农场。
在 “农场” 下,确保将您的默认队列设置为与您在上面设置的队列关联的队列。
退出 “项目设置” 窗口。
-
选择 Windows 、过场动画、影片渲染队列。
选择 + 渲染,然后选择Main_SEQ。
-
UnsavedConfig在 “设置” 列中选择。
在弹出窗口中,您应该在左侧看到截止日期云设置。然后可以关闭此窗口。
-
在对话框的右侧,配置作业设置:
-
在 “预设覆盖”(可能需要扩大此对话框)下:
-
展开任务共享设置:
将名称设置为
Unreal Test Job。将最大重试次数设置为 2。
-
展开工作附件:
在 “输入文件” 下,选择 “显示” Auto-Detected 。
验证自动检测到的文件列表是否填充正确。
-
-
在 “作业模板覆盖” 下:
-
CondaPackages如果您使用与 5.6 不同的版本,请在中更新虚幻引擎版本。
虚幻引擎版本的自动检测将在未来的版本中推出。
-
-
选择 “渲染(远程)”。
你可以前往 Deadline Cloud 监控器查看你的工作进度。
设置客户管理的车队 (CMF) 员工
本节将引导你使用虚幻引擎将亚马逊EC2实例设置为截止日期云的CMF工作线程。
概述
以下是 CMF 和 SMF 之间的主要区别:
CMF:在工作主机上手动安装虚幻引擎和适配器。
SMF:通过
deadline-cloudconda 渠道自动上线。
选择你的分支机构
为您的部署选择相应的分支:
| 分支 | 稳定性 | 使用案例 |
|---|---|---|
| 发布 | 稳定 | 生产部署 |
| 主线 | 最新 | 开发和测试 |
重要
确保您的工作版本与提交者版本相匹配,以避免兼容性问题。
亚马逊 EC2 实例设置
以下是推荐的实例配置:
实例类型:g5.2xlarge 或更高版本。
存储空间:至少 200 GB。
操作系统:Windows 服务器 2019/2022。
软件安装
1。安装虚幻引擎:
下载 Epic Games 启动器。
-
安装虚幻引擎 5.4 或更高版本。
注意
要兼容 Deadline Cloud,需要虚幻引擎 5.4+。
2。安装 NVIDIA 网格驱动程序:
在亚马逊 EC2 实例上进行 GPU-accelerated 渲染是必需的。
安装编译工具
虚幻插件目前必须在本地编译。
使用 Visual Studio 安装程序安装 Visual Studio
。 在 “单个组件” 下,确保所选的 MSVC 编译工具版本(默认为 “最新”)与表中的推荐版本相匹配。
在 “单个组件” 下,选择最新的 .NET 框架 SDK(4.6.1 和 4.8.1 已通过验证)。
在 “工作负载” 下,选择 “使用 C++ 进行桌面开发” 。
截止日期云软件安装
deadline-cloud-for-unreal-engine从发布分支或主线克隆或下载。确保您的辅助版本的库与提交者使用的版本兼容。
git clone https://github.com/aws-deadline/deadline-cloud-for-unreal-engine.git cd deadline-cloud-for-unreal-engine git switch release
可选-使用脚本构建和安装插件和依赖项:
中存在一个辅助脚本scripts/build_plugin.py,可以自动执行剩余的安装步骤。它会尝试找到最新版本的虚幻引擎,构建你的插件和 python 依赖关系,并将它们安装在正确的位置。诸如要使用的虚幻版本之类的设置可以被覆盖。要查看完整的帮助列表,请运行:
python scripts/build_plugin.py -h
要使用最新安装的虚幻引擎构建和安装你当前的《deadline-cloud-for-unreal-engine作为工作者》副本,请运行:
python scripts/build_plugin.py --install --worker
通过运行以下命令配置 Deadline Cloud 工作器代理:
install-deadline-worker ^ --farm-id FARM_ID ^ --fleet-id FLEET_ID ^ --region REGION ^ --allow-shutdown
如果您已使用此脚本安装并成功配置了工作器代理,则可以跳至启动 Deadline Cloud Worker 代理服务。
python -m pip install deadline-cloud-worker-agent
必须安装正确版本的适配器,具体取决于所使用的提交者的版本。如果您使用的是中发布分支中的提交者版本 GitHub,则只需使用 pip 进行安装即可:
python -m pip install deadline-cloud-for-unreal-engine
如果你使用的是提交者的主线版本或自定义开发中的版本,为避免兼容性问题,我们建议你使用相同版本的代码进行编译和安装,或者从提交者版本中转移.whl文件:
pip install hatch hatch build python -m pip install dist\my-built-wheel.whl
构建插件
根据你安装的虚幻引擎的位置和安装的位置,调整下面的前两条路径deadline-cloud-for-unreal-engine。
从 Unreal Install Batchfiles 文件夹(package参数可以是任何新目录,但你希望UnrealDeadlineCloudService稍后再调用):
cd C:\Program Files\Epic Games\UE_5.5\Engine\Build\BatchFiles runuat.bat BuildPlugin -plugin="C:\deadline\deadline-cloud-for-unreal-engine\src\unreal_plugin\UnrealDeadlineCloudService.uplugin" -package="C:\UnrealDeadlineCloudService"
将上面的 “包” 文件夹复制到虚幻装置的插件文件夹(例如,C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService)。
pywin32
虚幻引擎的 Python 版本将需要 pywin32。使用虚幻引擎第三方 Python 安装的副本安装 Pip:
"C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python" -m pip install pywin32
启动 Deadline Cloud Worker 代理服务
在您的 CMF 工作器实例上:
打开任务管理器。
选择右侧的服务选项卡。
-
查找DeadlineWorker。
如果你没有看到它列出,你可能错过了(特别是)CMF主机设置步骤
install-deadline-worker中的步骤。
如果该服务的状态当前不是 “正在运行”,请右键单击它并选择 “启动” 。
-
如果您的 DeadlineWorker 服务未启动,请检查以下位置的工作器代理启动日志:
C:\ProgramData\Amazon\Deadline\Logs\worker-agent.logC:\ProgramData\Amazon\Deadline\Logs\queue-<queueid>\session-<sessionid>.log
Perforce 凭证管理
本节介绍用于将 Perforce 与 Deadline Cloud 工作者集成的安全凭证管理。
概述
有几种方法可以为 Deadline Cloud 工作者配置 Perforce 凭据。每种方法都有不同的安全隐含和用例:
| 方法 | 安全级别 | 部署支持 | 推荐用途 |
|---|---|---|---|
| AWS Secrets Manager (机密经理) | 高 | SMF + CMF | 制作(推荐) |
| 作业环境变量 | 低 | SMF + CMF | 仅限开发和测试 |
| 队列环境变量 | 低 | SMF + CMF | 仅限开发和测试 |
| Windows 注册表 | 中 | 仅限 CMF | 传统的 CMF 设置 |
| Pre-configured 管理员用户 | 中 | 仅限 CMF | 简化的 CMF 设置 |
重要
在生产环境中使用密钥管理器。它提供带有审计记录的集中式加密凭据存储,并适用于 SMF 和 CMF 部署。
P4 凭证基础知识
要检索连接设置,包括 Perforce 服务器 URL 和端口、用户名和密码,Perforce 遵循以下优先级:
Perforce (P4) 的任何框架中的连接参数(
p4python.P4例如)。User/system 环境变量:
P4PORT、P4USER、P4CLIENT、P4PASSWD。Windows 注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment(系统范围的设置)或HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment(用户特定的设置)。
使用这些优先级,如果你有以下设置:
连接参数
password是password.from.connection环境变量
%P4PORT%是ssl:perforce.from.env:1666Windows 注册表
HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PORT是ssl:perforce.from.registry:1666Windows 注册表
HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4USER是user.from.registryWindows 注册表
HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PASSWD是password.from.registry
生成的 Perforce 连接将是:
Port = ssl:perforce.from.env:1666 User = user.from.registry Password = password.from.connection
密钥管理器(推荐)
密钥管理器为 CMF 和 SMF 部署提供了最安全、最具扩展性的解决方案。
此方法具有以下优势:
集中安全:将所有 P4 凭据存储在一个加密位置。
无凭据泄露:凭证永远不会出现在作业配置或日志中。
自动轮换:支持凭据轮换,无需重新配置任务。
审计跟踪:跟踪凭证访问和使用情况。
普遍支持:适用于 CMF 和 SMF 部署。
日志编辑:在作业日志中自动编辑连接凭据。
第 1 步:在 Secrets Manager 中创建密钥
创建包含您的 Perforce 连接参数的密钥。
必需的键值对:
P4PORT-Perforce 服务器 URL 和端口。P4USER-必须使用用户名。P4PASSWD-Perforce 密码。
重要
密钥名称必须与 P4 连接参数完全匹配才能使用deadline-cloud-for-unreal-engine。
秘密示例:
{ "P4PORT": "ssl:your-perforce-server.com:1666", "P4USER": "your-perforce-username", "P4PASSWD": "your-perforce-password" }
要创建密钥,请执行以下操作:
打开 Secrets Manager 控制台。
选择 “存储新密钥”。
选择 “其他类型的密钥”。
输入上面的键值对。
为你的密钥命名(例如,
deadline-cloud-p4-credentials)。完成创建过程
第 2 步:授予工作人员访问密钥的权限
工作人员需要获得secretsmanager:GetSecretValue权限才能访问该机密。这遵循与管理 Windows 作业用户密钥相同的模式。
要授予访问权限,请:
打开密钥管理器控制台并导航到您的密钥。
-
在 “资源权限” 部分中,添加以下策略:
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "QUEUE_ROLE_ARN" }, "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*" } ] } QUEUE_ROLE_ARN替换为您的实际队列角色 ARN。保存该政策。
注意
保存密钥名称-配置 P4 渲染任务时需要它。创建 Perforce 渲染作业有关后续步骤,请参见。
作业环境变量
警告
不建议将此方法用于生产,因为它会在任务配置和日志中公开证书。在生产环境中使用密钥管理器。
您可以在创建工作空间的作业环境中传递连接证书,例如在 p4_sync_smf_environment、ugs_sync_smf_environment 或 CMF 的类似环境
name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd
这种方法存在以下安全风险:
证书在任务配置中可见。
密码可能会出现在日志中(不会自动编辑)。
没有集中式凭证管理。
很难轮换凭证。
队列环境变量
警告
不建议将此方法用于生产,因为它将凭据存储在队列配置中。使用密钥管理器进行安全的凭据管理。
根据 Deadl ine Cloud 用户指南,您可以使用队列环境为队列中的任务提供软件应用程序、环境变量和其他资源。队列环境示例可以在截止日期云样本的 queue_environments 文件夹中找到。
使用 Deadline 云监控器或控制台添加队列环境
打开 Deadline 云监控器或 AWS 控制台。
导航到您正在使用的农场并排队。
选择队列环境选项卡。
选择 “操作”,然后选择 “使用 YAML 新建”。
-
添加以下内容并保存:
specificationVersion: environment-2023-09 environment: name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd
使用 CLI 添加队列环境
使用上面的示例创建
p4_credentials.yaml文件。-
运行以下 CLI 命令:
aws deadline create-queue-environment \ --farm-id FARM_ID \ --queue-id QUEUE_ID \ --priority 1 \ --template-type YAML \ --template file://p4_credentials.yaml
Windows 注册表(仅限 CMF)
重要
此解决方案仅适用于可以直接配置工作主机的 CMF。对于 SMF 部署,请使用密钥管理器。
Windows 注册表在工作计算机上提供本地凭据存储。此方法使用标准 Perforce 优先级系统,其中凭据存储在:
HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment(系统范围的设置)。HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment(用户特定的设置)。
此方法仅适用于您可以直接访问配置工作计算机的 CMF 部署。
Pre-configured 管理员用户(仅限 CMF)
重要
此解决方案仅适用于可以直接配置工作主机的 CMF。对于 SMF 部署,请使用密钥管理器。
使用未过期的连接为渲染节点创建专用 P4 用户,从而无需传递用户名和密码等机密数据。在这种情况下,可以使用单个专用 P4 用户来连接所有 P4 服务器,包括可访问项目仓库的 Commit(主)和 Edge 服务器。
因此,如果未在工作人员上配置默认端口,则只需要传递要连接的端口。您可以通过在作业环境或队列环境中添加以下内容来传递端口,与上述步骤类似:
name: P4Sync variables: P4PORT: ssl:my-perforce.com:1666
创建 Perforce 渲染作业
本节将引导你配置 Perforce-integrated 渲染作业数据资产,这样你就可以从虚幻引擎向 Deadline Cloud 提交 Perforce-integrated 渲染作业。
先决条件
在 Perforce 存储库中提交来自虚幻引擎的影片渲染队列 (MRQ) 作业之前:
虚幻项目设置:
项目必须在 Perforce 工作区内。
验证 Perforce 连接已建立并且您已登录。
截止日期云设置:
完成 安装提交者。
Perforce 凭证管理为工作人员配置。
性能要求:
包含项目文件的有效 Perforce 工作区。
同步操作的适当的 Perforce 权限。
Perforce 渲染作业架构
P4 渲染作业通过 Perforce 同步功能扩展了标准渲染作业:
Deadline Cloud Perforce render job ├── Environments │ ├── Apply Perforce Credentials from Secrets Manager │ ├── Sync Perforce Environment (CMF/SMF) │ │ └── Initializes Perforce workspace and syncs repository on workers │ └── Launch UE Environment │ └── Starts Unreal Engine with Perforce workspace paths └── Steps └── Render Step └── Executes Movie Render Queue process
与标准作业的主要区别:
凭据管理:来自密钥管理器的安全 Perforce 凭证应用程序。
存储库同步:用于工作空间管理的其他 Perforce 同步环境。
路径解析:环境变量引用 Perforce 工作空间路径。
依赖项收集:自动收集和同步资 Perforce-tracked 产。
Perforce 同步如何扩展生产项目
虚幻引擎的制作项目在成千上万个文件中可以达到数百千兆字节。Perforce集成使同步时间与更改内容成正比,而不是与项目大小成正比:
- 工作被固定到变更清单中
-
提交时,提交者将
PerforceChangelistNumber作业参数设置为工作空间已同步的变更列表。作业中的每项任务都针对相同的修订版本进行渲染,因此,即使美工人员在作业运行时提交了新的更改,您的作业也能保持可重现性。只有当固定的变更列表在他们同步的Perforce服务器上可用时,工作人员才能启动任务。 - 工作人员重复使用稳定的客户工作空间
-
每个工作人员都在永久根目录下创建其Perforce客户端工作区。它将配对记录在与工作空间一起存储的
workspace_info.json注册表文件中。接收相同存储空间的替代工作人员读取注册表并重复使用现有客户端。它不会创建新的工作空间。由于Perforce跟踪服务器上客户端名称下的文件列表,因此正常同步仅下载自上次作业以来更改的文件修订版本。
要在服务管理的队列上重复使用客户工作空间,请启用永久存储,以便将保存同步工作空间的卷重新分配给未来的工作人员。
如果您的队列区域和Perforce服务器之间的网络路径吞吐量低或延迟高,则该舰队所在区域的Perforce边缘服务器可以充当仓库数据的区域缓存。有关更多信息,请参阅《截止日期云开发者指南》中的 Perforce 源代码控制。
设置 Perforce 渲染作业组件
按照以下步骤为 Perforce-integrated 渲染作业创建所需的数据资产。
1. 创建 Apply Perforce 证书数据资产
设置一个 OpenJD 环境,用于从 Secrets Manager 检索 Perforce 凭证并将其应用到 Perforce 连接。
注意
环境变量出现在带有openjd_env前缀的日志中,但出于安全考虑,敏感数据(端口、用户、密码)会自动编辑。
配置步骤:
-
创建新的 De adline Cloud Perforce 环境数据资产。
描述性地命名数据资产(例如,ApplyP4SecretEnv“”)。
从中选择
p4_apply_secrets_environment.yml模板Content/Python/openjd_templates/p4/。-
配置密钥参考:
在 4INFO 中输入你的 Perforce 凭据密钥名称。 AWS_SECRET_P
该值应与中创建的密钥名称相匹配Perforce 凭证管理。
2. 创建 Perforce 同步环境数据资产
设置一个 OpenJD 环境,用于创建 Perforce 工作区、同步来自 Perforce 服务器的文件以及在渲染后清理工作区。
配置步骤:
创建新的 De adline Cloud Perforce 环境数据资产。
-
根据您的舰队类型命名数据资产:
P4SyncSMFEnv适用于服务管理队列 (SMF)。
P4SyncCMFEnv适用于客户管理的机队 (CMF)。
-
从以下选项中选择相应的模板
Content/Python/openjd_templates/p4/:SMF:
p4_sync_smf_environment.yml。CMF:
p4_sync_cmf_environment.yml。
-
配置密钥参考:
在 4INFO 中输入你的 Perforce 凭据密钥名称。 AWS_SECRET_P
必须与步骤 1 中的密钥相匹配。
3. 创建 Perforce Launch UE 环境数据资产
设置一个 OpenJD 环境,用于启动集成了 Perforce 的虚幻引擎。这会自动引用同步环境创建的 Perforce 工作空间。
配置步骤:
创建新的 De adline 云环境数据资产。
描述性地命名数据资产(例如,P4LaunchUEEnv“”)。
从中选择
p4_launch_ue_environment.yml模板Content/Python/openjd_templates/p4/。-
配置环境设置:
将 REMOTE_EXECUTION 设置为。
True此设置启用远程渲染功能。
4. 创建 Perforce 渲染步骤数据资源
设置 OpenJD 渲染步骤来执行渲染过程。
配置步骤:
-
创建新的 De adline Cloud Render Step 数据资产。
描述性地命名数据资产(例如,P4RenderStep“”)。
从中选择
p4_render_step.yml模板Content/Python/openjd_templates/p4/。
5. 创建 Perforce 渲染作业数据资产
设置一个协调整个渲染工作流程的 OpenJD 渲染作业。
配置步骤:
-
创建新的 De adline Cloud 渲染作业数据资产。
描述性地命名数据资产(例如,P4RenderJob“”)。
从中选择
p4_render_job.yml模板Content/Python/openjd_templates/p4/。-
查看参数定义:该模板包含以下参数及其默认行为:
参数 说明 Auto-filled 所需操作 ProjectRelativePath相对于 Perforce 工作空间根目录的项目路径 是 留空-自动填充 ProjectName创建 Perforce 工作空间的项目名称 是 留空-自动填充 PerforceChangelistNumberPerforce 变更列表用于将工作空间同步到 是 留空-自动填充 PerforceWorkspaceSpecificationTemplate带代币的 Perforce 客户端规范 {workspace_name}是 留空-自动填充 MrqJobDependenciesDescriptor带有 MRQ 依赖项的 JSON 文件用于同步 是 留空-自动填充 ExtraCmdArgsFile额外参数的文件(避免 1024 个字符的限制) 否 可选-对标准设置使用默认值 FramesPerTask每个任务要渲染的帧数 否 可选-使用默认值 (0) 按镜头划分任务 ExtraCmdArgs虚幻引擎发布的其他论点 否 可选-对标准设置使用默认值 Executable渲染节点的虚幻可执行文件名称 否 配置-使用标准设置的默认值 CondaPackages渲染任务所需的 Conda 软件包 否 配置-使用标准设置的默认值 CondaChannels存储包裹的 Conda 频道 否 配置-使用标准设置的默认值 ShotsPerTask在单个渲染会话中分组的镜头数量 否 配置-默认值:1(针对性能进行调整) SubmitMode将渲染输出推送到 Perforce( ''submit、或shelve)否 可选-默认禁用 P ''erforce 输出提交MarketplacePluginsDir引擎商城插件之路 是 留空-自动填充 参数配置指南:
Auto-populated 参数:将这些参数留空-它们会在作业提交期间自动填充。
手动参数:查看默认值并根据您的特定要求进行调整。
ShotsPerTask:从 1 开始,通过简单的射门增加以获得更好的性能。
-
配置环境(按以下确切顺序):
Order 环境 用途 第 1 天 "ApplyP4SecretEnv" 应用密钥管理器的 Perforce 证书 第 2 个 P4SyncSMFEnv“或P4SyncCMFEnv” 同步 Perforce 工作空间和文件 第 3 个 "P4LaunchUEEnv" 使用 Perforce 路径启动虚幻引擎 重要
环境顺序对于正确的依赖关系解析和凭证流至关重要。
-
添加渲染步骤:将 P4RenderStep “” 添加到步骤部分。
将渲染输出提交回 Perforce
默认情况下,Perforce渲染作业仅通过作业附件上传输出。SubmitMode任务参数选择Perforce改为将渲染输出推送到中,因此完成的帧会与项目一起放置在仓库中。
SubmitMode 值 | 行为 |
|---|---|
''(默认值) | 仅限工作附件。不发生Perforce写入操作。现有任务的行为保持不变。 |
submit | 每个渲染任务都会托架其生成的文件。每项任务完成后,一个AssembleShelves步骤会将所有任务架合并到一个聚合变更列表中并提交。作业日志记录了最终的变更列表编号。 |
shelve | 与聚合相同submit,但最终的聚合变更列表被搁置而不是提交,因此人们可以在提交聚合之前查看聚合。 |
只有自上次同步以来发生更改的文件才会出现在变更列表中。每项任务都会协调其生成的确切文件,集成会还原内容与仓库修订版本相同的文件,因此重新渲染未更改的帧不会生成更改列表条目。
注意
当SubmitMode为submit或时shelve,任务不会通过任务附件将渲染输出上传到 Amazon S3。Perforce成为帧的唯一传送路径。Deadline Cloud 监视器中的下载输出功能找不到框架,通过作业附件消耗输出的下游作业也看不到这些帧。输入附件仍照常通过工作附件上传。
将您的工作人员配置为以Perforce同一Perforce用户身份验证任务中的所有任务,因为聚合步骤会按所有者查找任务架。中推荐的凭据设置(Secrets Manager 中的单一共享密钥)已经满足了该要求。Perforce 凭证管理
最佳实践
Pre-submission 清单
凭证:正确配置 Perforce 凭证(参见Perforce 凭证管理)。
工作空间:规范包括所有必要的视图映射。
测试:在提交大型作业之前,使用小型渲染任务进行测试。
依赖关系:验证所有项目依赖项均在 Perforce 中且可访问。
权限:确认工作人员角色有权访问密钥管理器。
性能优化
下表显示了该ShotsPerTask设置如何影响性能:
| 每个任务的射门次数 | 使用案例 | 性能影响 |
|---|---|---|
| 1-2 次射门 | 镜头复杂,需要详细审查 | 较低的吞吐量,更高的质量控制 |
| 4-8 次射门 | 均衡的工作量,典型的项目 | 速度和可管理性的最佳平衡 |
| 10 次以上的镜头 | 简单镜头,批量处理 | 最大吞吐量,最低开销 |
考虑以下其他优化:
依赖关系:最大限度地减少不必要的资产依赖关系,以缩短同步时间。
工作空间视图:优化 Perforce 工作空间视图以仅同步所需的文件。
监控和调试
作业日志:在任务执行日志中监控 Perforce 同步过程。
工作空间状态:检查工作空间创建和同步完成情况。
依赖项收集:验证所有必需的资产均已捕获。
性能指标:跟踪同步时间和渲染性能。
问题排查
常见问题和解决方案
| 问题 | 症状 | 解决方案 |
|---|---|---|
| P4 连接失败 | 身份验证错误,超时 | 验证 Perforce 凭据;检查网络连接;验证 Perforce 服务器的可访问性 |
| 工作空间同步错误 | 同步失败,权限被拒绝 | 检查 Perforce 用户权限;验证工作空间规范;确保变更列表存在 |
| 缺少依赖关系 | 渲染失败、资源缺失 | 审查MrqJobDependenciesDescriptor;检查软参考文献集;验证 Perforce 中的所有资产 |
| 路径解析问题 | 未找到文件错误 | 验证P4_CLIENT_DIRECTORY变量;检查环境顺序;验证工作空间根路径 |
调试步骤
检查作业日志:查看 Perforce 同步环境日志,了解详细的错误消息。
验证工作空间:确保 Perforce 工作空间规格正确无误。
本地测试:验证提交者计算机上的 Perforce 操作是否正常。
验证权限:确认工作人员角色具有秘密访问权限(如果使用密钥管理器)。
自定义主机要求
本节介绍如何为虚幻引擎中的截止日期云渲染创建和使用自定义主机要求。
概述
主机要求定义了哪些队列有资格运行特定的渲染步骤。它们存储在UDeadlineCloudHostRequirements资源中,然后由DeadlineCloudRenderStep资产引用。
| 需求类型 | 配置位置 | 使用案例 |
|---|---|---|
| 基本系统要求 | CPU/RAM/GPU 字段 | 将渲染限制在装有特定硬件的计算机上 |
| 自定义金额要求 | 名称 + min/max 值 | 需要数字资源等级(许可证、令牌、配额) |
| 自定义属性要求 | 属性 + 值列表 | 运行该步骤所需的舰队自定义属性 |
注意
使用眼睛图标隐藏需求只会将其隐藏在 MRQ Submit UI 中。该要求在提交工作时仍然适用。
重要
用于自定义金额要求Name和自定义属性要求的和Attribute值必须严格匹配官方公开职位描述文档:空缺职位规格中定义的有效标识符
第 1 步:创建主机需求资产
在虚幻引擎中打开内容浏览器。
创建新资产:添加 → 其他 → 数据资产 → DeadlineCloudHostRequirements 。
为资产命名,例如
MyHostRequirements。
第 2 步:加载默认 YAML 模板
在资产详细信息面板中,找到 “模板路径” 字段。
选择默认模板:
Plugins/UnrealDeadlineCloudService/Content/Python/openjd_templates/host_requirements.yml。
这会加载 CPU、内存、GPU、操作系统和架构等基本需求。
注意
无法删除基本要求;只能更改其值。
步骤 3:配置基本(系统)要求
| 设置 | 示例 |
|---|---|
| 操作系统 | windows |
| CPU 架构 | x86_64 |
| vCPU(最小值) | 16 |
| GPU(最小值) | 1 |
如果 Max = 0,则该要求没有上限。
第 4 步:添加自定义金额要求
当要求为数字时使用(例如,许可证数量、并发限制)。
查找 “自定义金额要求” 部分。
添加新条目并设置名称,例如:
amount.custom.license。-
设置最小值和最大值:
最小值:1。
最大值:0(0 表示无限制)。
第 5 步:添加自定义属性要求
用于根据标签和标签筛选工作人员。
查找 “自定义属性要求” 部分。
添加新的属性名称,例如:
attr.custom.gpu.vendor。-
选择匹配规则:
AllOf-所有值必须匹配。
AnyOf-必须至少有一个匹配。
输入以空格分隔的属性值,例如:
nvidia amd。
步骤 6:MRQ 中的可见性(可选)
每个要求条目都有一个眼睛图标。
| 眼睛 | 行为 |
|---|---|
| Visible | 要求显示在 MRQ 提交用户界面中 |
| 隐藏 | 该要求已隐藏,但在提交作业时仍包含在内 |
此设置可用于简化艺术家的用户界面,同时保留技术限制。
第 7 步:将要求附加到渲染步骤
打开相关
DeadlineCloudRenderStep资产。找到 “主机要求” 字段。
分配您创建的资产(例如
MyHostRequirements)。
现在,使用此步骤提交的所有 MRQ 都将强制执行您的主机选择逻辑。
Summary
使用主机需求资产,您可以:
控制哪些工作计算机执行您的渲染作业。
指定最低资源级别。
使用属性匹配来定位特定的工作人员池。
简化用户界面,同时保持技术规则不变。
在多个 MRQ 步骤中重复使用设置。
此设置提高了作业路由的一致性,并确保在正确的硬件上进行渲染。
高级配置
Service-managed 车队与客户管理的车队
Service-managed 舰队 (SMF)
在服务管理的舰队上,虚幻引擎和适配器可以在默认队列环境下使用 deadline-cloud conda频道自动使用。此设置提供了最简单的体验。
Customer-managed 舰队 (CMF)
对于客户管理的舰队,虚幻引擎和适配器必须手动安装在工作人员主机上。此设置可提供更多控制并支持 Perforce 集成等其他功能。有关详细说明,请参阅设置客户管理的车队 (CMF) 员工。
虚幻引擎渲染功能
虚幻引擎的渲染系统为以下内容提供全面支持:
| 功能 | 说明 | 注意 |
|---|---|---|
| 电影渲染队列 | High-quality 离线渲染 | 与作业提交集成 |
| 序列器 | Timeline-based 动画系统 | 自动镜头检测和处理 |
| 项目插件 | 自定义插件支持 | 自动检测和包含 |
| 资产依赖关系 | 内容文件管理 | 全面的资产跟踪 |
| 粘性渲染 | 镜头之间的应用程序持久性 | 提高了多镜头序列的性能 |
所有渲染功能都由虚幻引擎集成提交者自动检测和配置。该适配器可保持正确的依赖关系处理,无需重启虚幻引擎即可支持高效的多镜头渲染。
开源资源
提交者和适配器是开源的,可在以下网址获得: GitHub