View a markdown version of this page

史诗虚幻引擎 - AWS 截止日期云

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

史诗虚幻引擎

虚幻引擎是一款实时 3D 创作工具,可提供逼真的视觉效果和身临其境的体验。虚幻引擎由 Deadline Cloud 提供支持,包括提交者、conda 包和用于提高渲染性能的适配器。本指南提供了分步说明,说明如何使用带有虚幻引擎的 Deadline Cloud,通过在多台计算机上分配渲染任务来更快地渲染影片渲染队列项目。

Support 概述

虚幻引擎由以下组件支持:

  • 提交者:集成的提交者插件,用于从虚幻引擎直接提交作业,具有自动场景和资产检测功能。

  • Conda 软件包:Deadline Cloud,用于在服务管理的车队上自动安装。

  • Adaptor:中间件,可通过粘性会话和额外监控实现高效渲染。

  • Cross-platform 兼容性:仅适用于 Windows 的提交者和工作人员支持。

  • 电影渲染队列集成:支持虚幻引擎的电影渲染队列系统。

虚幻引擎版本兼容性

下表显示了虚幻引擎版本的当前支持级别:

主要版本 提交者 Support Conda Support
5.4 Windows Windows
5.5 Windows Windows
5.6 Windows Windows
5.7 Windows Windows

截止日期云 Conda 频道

下表列出了适用于虚幻引擎的所有conda软件包,可供 deadline-cloud conda Service-managed 频道中的舰队使用:

OS 程序包 版本
Windows 虚幻引擎 5.4
Windows 虚幻引擎 5.5
Windows 虚幻引擎 5.6
Windows 虚幻引擎 5.7
Windows 虚幻引擎 openjd

开始使用

先决条件

在安装虚幻引擎提交器之前,请确保具备以下条件:

  • Windows 工作站(Windows 10 或更高版本)

  • 安装了支持的虚幻引擎版本

  • Deadline 云监控器已安装(点击此处下载

  • 使用 GPU-enabled Windows服务管理的队列或使用虚幻引擎、虚幻引擎适配器并设置许可的客户管理队列访问Deadline Cloud农场

安装提交者

虚幻引擎提交者将 Deadline Cloud 功能作为插件添加到虚幻引擎,允许你将影片渲染队列任务直接提交到 Deadline Cloud 进行渲染。

选择你的分行

为您的部署选择合适的分支:

分支稳定性使用案例推荐用于
释放稳定生产大多数用户
主线最新功能开发和测试高级用户
提示

在生产环境中使用发布分支以确保稳定性。

创建用于安装虚幻引擎的新 Windows Amazon EC2 实例(可选)

如果您以提交者的身份在全新的Windows亚马逊弹性计算云 (Amazon EC2) 实例上进行设置,那么具有 200 GB 存储空间的 g5.2xlarge 实例是合理的最低值:

  1. 使用有效的实例配置文件启动一个 Amazon EC2 实例。这是按照以下说明下载 NVIDIA GRID 驱动程序所必需的。

  2. 下载 Epic 安装程序并安装支持的虚幻版本(5.4-5.7)。

    • 使用 DirectX 11 插件运行时,UE 5.5 存在已知的崩溃错误(参见 UE 问题 #UE-276282)。如果你需要在 UE 5.5 上支持 DirectX,请使用 DirectX 12 或更高版本。

  3. NVIDIA GRID 驱动程序-按照 Windows 安装说明进行操作

Windows 漫长的路径

以下许多步骤可能会创建超过默认的 Windows 最大路径长度的文件。在你在 Windows 计算机上构建和安装虚幻引擎提交者或适配器的 Deadline Cloud 之前,我们建议你启用 Windows 长路径支持。为此,请按照 “最大文件路径限制” 页面上的说明进行操作,例如运行PowerShell 命令

工作器代理上还有一个未解决的问题,这是因为依赖项未配置为支持 Windows 长路径。设置工作器时,请按照链接问题中的解决方法步骤完全支持 Windows 长路径,直到问题得到解决。

安装构建工具

虚幻提交者插件目前必须在本地编译。

  1. 使用视觉工作室安装程序安装 Visual Studio

  2. 查看 Epi c 兼容性表,验证你的 Visual Studio 和编译工具版本是否与你的虚幻版本兼容

  3. 在 “单个组件” 下,确保所选的 MSVC 生成工具版本(默认为 “最新”)与表中的推荐版本相匹配。尽管兼容性指南可能建议使用 “或更高版本”,但使用比 “推荐” 列出的版本更新的版本时,有时会出现构建错误。

  4. 在 “单个组件” 下,选择最新的.NET Framework SDK(4.6.1 和 4.8.1 已通过验证)。

  5. 在 “工作负载” 下,选择 “使用 C++ 进行桌面开发”。

安装截止日期云监视器

Deadline Cloud 监控器既用于管理您向 Deadline Cloud 提交作业的凭据,又用于监控您的作业状态。

环境设置

  1. (如果尚未安装)为所有用户安装最新版本的 Python(已通过 3.12 验证)。

  2. 确保您的环境变量设置正确。在系统环境变量中,您的 PATH 必须包括:

    • 安装 Python 的路径(例如,C:\Program Files\Python312)。

    • 您的 Python 脚本文件夹(例如C:\Program Files\Python312\scripts)的路径。

    • 虚幻二进制文件的路径(例如,C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\Win64)。

截止日期 Cloud 软件安装

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"

将上面的 “package” 文件夹复制到虚幻安装的 Plugins 文件夹(例如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-enginePythonRequirements部分 GitHub/PyPI,例如:

"PythonRequirements": [ { "Platform": "All", "Requirements": [ "deadline-cloud-for-unreal-engine>=0.5.0" ] } ]

你可能希望在虚幻引擎的Python设置中停用 “严格哈希” 功能,或者为你想要使用的特定库和依赖版本添加哈希设置。

3. 如果你要从主线提取,你可能有尚未发布到 PyPI 的 Python 依赖项——你需要构建并安装本地副本,这可以用 hatch 完成。需要更改该.whl文件以反映出舱口构建输出的版本:

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 依赖项可以由提交者安装程序安装。这些可能与你上面发布的版本或主线分支中的代码已经过时了,目前不应该首选这种方法。

  1. 从 Deadline Cloud AWS 控制台的 “下载” 选项卡或在 “工作站设置” → “下载” 下的 Deadline Cloud 监视器中下载提交者安装程序。

  2. 为所有用户运行安装程序。默认安装位置没问题。

  3. 启用虚幻引擎插件。

  4. 确保虚幻引擎插件的安装路径与你的插件被复制到的位置相匹配(尤其要确保你的虚幻版本匹配)。

更新通知

GitHub 当虚幻编辑器启动时,提交者插件会自动检查是否有较新的版本。如果有更新可用,则会出现一个对话框,提示您访问发布页面。

要停用更新通知,请取消选中 Deadline Cloud 设置面板(编辑 > 项目设置 > 插件 > 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 通道自动使用。你已经准备好开始渲染了。继续执行提交测试渲染以下操作,提交测试渲染作业。

创建客户管理的车队 (CMF)

  1. 如果您还没有 CMF,请按照创建客户管理的队列来创建 CMF。

    警告

    将 CMF 与队列关联时,如果您不使用默认 conda 队列环境,请将其删除。这将防止使用 conda 环境以及意外使用提交到 CM SMF-specific F 的作业的默认变量。如果您在 CMF 中使用 conda,请记得在提交CondaPackages作业时更新参数定义覆盖中的CondaChannels变量。

  2. 按照工作主机的设置和配置来设置工作主机。

  3. 按照管理对 Windows 作业用户密钥的访问权限为你的 CMF 工作人员设置 Windows 作业用户密钥。

  4. 按照安装和配置作业所需的软件来安装运行作业所需的软件。

  5. 按照步骤设置客户管理车队 (CMF) 工作人员设置你的工作节点来运行虚幻引擎作业。

提交测试渲染

此示例使用虚幻商城中的猫鼬演示:

  1. 启动 Epic Games 启动器。

  2. 从 “示” 选项卡中安装 Meerkat 演示。

  3. 从 Meerkat Demo 中创建一个项目,然后将其打开。

  4. “编辑” 菜单中选择 “插件”,搜索并启用UnrealDeadlineCloudService

  5. 如果你是第一次启用该插件,请重启虚幻引擎。

  6. “编辑” > “项目设置” 下,搜索 “影片渲染管道” 部分。

    • “默认远程执行器” 中,选择MoviePipelineDeadlineCloudRemoteExecutor

    • “默认 Executor Job” 中,选择MoviePipelineDeadlineCloudExecutorJob

    • 在 “默认 Job 设置类别” 下,选择 “添加” 图标,然后添加DeadlineCloudRenderStepSetting

  7. 搜索 De adline Cloud 设置并验证身份验证:

    • 确保您的状态显示为 “已验证”,并且 Deadline Cloud API 显示为 “已授权”。

    • 如果未出现,请先尝试使用 “登录” 按钮。如果这不起作用,请打开 Deadline Cloud 监视器并确保你已登录。

    • 在 De adline 云工作站配置部分:

      • “全局设置” 下,确保您的 AWS 配置文件已正确设置为 Deadline Cloud 监控配置文件。

      • 在 “配置文件” 下,确保您的默认服务器场设置为您的农场。

      • Farm 下,确保您的默认队列设置为与您在上面设置的队列关联的队列。

  8. 退出 “项目设置” 窗口。

  9. 选择 WindowsCinematic s、影片渲染队列

    • 选择 + 渲染,然后选择Main_SEQ

    • UnsavedConfig在设置栏中选择。

      • 在弹出窗口中,您应该在左侧看到 Deadline Cloud 设置。然后可以关闭此窗口。

    • 在对话框的右侧,配置作业设置:

      • 在 “预设覆盖” 下(您可能需要扩大此对话框):

        • 展开 Job 共享设置

          • 名称设置为 Unreal Test Job

          • 最大重试次数设置为 2。

        • 展开 Job 附件

          • 在 “输入文件” 下,选择 “显示” Auto-Detected。

          • 验证自动检测到的文件列表是否正确填充。

      • 在 “Job 模板替代” 下:

        • CondaPackages如果您使用的版本不同于5.6,请更新虚幻引擎版本。

          • 虚幻引擎版本自动检测将在未来的版本中推出。

    • 选择 “渲染(远程)”。

  10. 你可以前往 Deadline Cloud 监控器查看你的工作进度。

设置客户管理车队 (CMF) 工作人员

本节将引导你使用虚幻引擎将 Amazon EC2 实例设置为 Deadline Cloud 的 CMF 工作程序。

概述

以下是 CMF 和 SMF 之间的主要区别:

  • CMF:在工作主机上手动安装虚幻引擎和适配器。

  • SMF:通过 deadline-cloud conda 频道自动上线。

选择你的分行

为您的部署选择合适的分支:

分支稳定性使用案例
释放稳定生产部署
主线最新开发和测试
重要

确保您的工作人员版本与您的提交者版本相匹配,以避免出现兼容性问题。

亚马逊 EC2 实例设置

以下是推荐的实例配置:

  • 实例类型:g5.2xlarge 或更高版本。

  • 存储空间:至少 200 GB。

  • 操作系统:Windows 服务器 2019/2022。

软件安装

1。安装虚幻引擎

  1. 下载 Epic Games 启动器。

  2. 安装虚幻引擎 5.4 或更高版本。

    注意

    需要使用虚幻引擎 5.4+ 才能兼容 Deadline Cloud。

2。安装 NVIDIA 网格驱动程序

安装构建工具

虚幻插件目前必须在本地编译。

  1. 使用视觉工作室安装程序安装 Visual Studio

  2. 查看 Epi c 兼容性表,验证你的 Visual Studio 和编译工具版本是否与你的虚幻版本兼容

  3. 在 “单个组件” 下,确保所选的 MSVC 生成工具版本(默认为 “最新”)与表中的推荐版本相匹配。

  4. 在 “单个组件” 下,选择最新的.NET Framework SDK(4.6.1 和 4.8.1 已通过验证)。

  5. 在 “工作负载” 下,选择 “使用 C++ 进行桌面开发”。

截止日期 Cloud 软件安装

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

要以 worker 的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 工作者代理服务

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"

将上面的 “package” 文件夹复制到虚幻安装的 Plugins 文件夹(例如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 工作者代理服务

在你的 CMF 工作器实例上:

  1. 打开任务管理器

  2. 选择右侧的 “服务” 选项卡。

  3. 查找DeadlineWorker

  4. 如果服务的状态当前不是 “正在运行”,请右键单击该服务并选择 “启动”。

  5. 如果您的 DeadlineWorker 服务未启动,请查看以下位置的工作代理启动日志:

    • C:\ProgramData\Amazon\Deadline\Logs\worker-agent.log

    • C:\ProgramData\Amazon\Deadline\Logs\queue-<queueid>\session-<sessionid>.log

执行凭证管理

本节介绍将 Perforce 与 Deadline Cloud 工作人员集成的安全凭据管理。

概述

有几种方法可以为 Deadline Cloud 工作人员配置 Perforce 证书。每种方法都有不同的安全含义和用例:

方法安全级别部署支持推荐用途
AWS Secrets Manager (Secrets Manager)SMF + CMF生产(推荐)
作业环境变量SMF + CMF仅限开发和测试
队列环境变量SMF + CMF仅限开发和测试
Windows 注册表仅限 CMF传统的 CMF 设置
Pre-configured 管理员用户仅限 CMF简化的 CMF 设置
重要

在生产环境中使用 Secrets Manager。它提供带有审核跟踪的集中式加密凭证存储,并可与 SMF 和 CMF 部署配合使用。

P4 凭证基础知识

要检索连接设置,包括 Perforce 服务器 URL 和端口、用户名和密码,Perforce 遵循以下优先级:

  1. Perforce (P4) 的任何框架中的连接参数(p4python.P4例如)。

  2. User/system 环境变量:P4PORTP4USERP4CLIENTP4PASSWD

  3. Windows 注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment(系统范围的设置)或HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment(用户特定的设置)。

有了这些优先级,如果你有以下设置:

  • 连接参数passwordpassword.from.connection

  • 环境变量%P4PORT%ssl:perforce.from.env:1666

  • Windows 注册表HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PORTssl:perforce.from.registry:1666

  • Windows 注册表HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4USERuser.from.registry

  • Windows 注册表HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PASSWDpassword.from.registry

由此产生的 Perforce 连接将是:

Port = ssl:perforce.from.env:1666 User = user.from.registry Password = password.from.connection

Secrets Manager(推荐)

Secrets Manager 为 CMF 和 SMF 部署提供了最安全、最具扩展性的解决方案。

此方法具有以下优势:

  • 集中式安全:将所有 P4 凭据存储在一个加密位置。

  • 不泄露凭证:凭据永远不会出现在作业配置或日志中。

  • 自动轮换:Support 支持凭证轮换,无需重新配置作业。

  • 审计跟踪:跟踪凭证访问和使用情况。

  • 通用支持:适用于 CMF 和 SMF 部署。

  • 日志修改:在作业日志中自动删除连接凭据。

第 1 步:在 Secrets Manager 中创建密钥

创建一个包含您的 Perforce 连接参数的密钥。

必需的键值对

  • P4PORT-执行服务器 URL 和端口。

  • P4USER-请输入用户名。

  • P4PASSWD-请输入密码。

重要

密钥名称必须与 P4 连接参数完全匹配才能使用deadline-cloud-for-unreal-engine

秘密示例

{ "P4PORT": "ssl:your-perforce-server.com:1666", "P4USER": "your-perforce-username", "P4PASSWD": "your-perforce-password" }

要创建密钥,请执行以下操作:

  1. 打开 Secrets Manager 控制台。

  2. 选择 “存储新密钥”。

  3. 选择 “其他类型的机密”。

  4. 输入上面的键值对。

  5. 命名您的密钥(例如,deadline-cloud-p4-credentials)。

  6. 完成创建过程

第 2 步:授予工作人员访问密钥的权限

工作人员需要获得访问密钥的secretsmanager:GetSecretValue许可。这遵循与管理 Windows 作业用户密钥相同的模式。

要授予访问权限

  1. 打开 Secrets Manager 控制台并导航到您的密钥。

  2. 在 “资源权限” 部分中,添加以下策略:

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "QUEUE_ROLE_ARN" }, "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*" } ] }
  3. QUEUE_ROLE_ARN替换为您的实际队列角色 ARN。

  4. 保存策略。

注意

保存密钥名称——配置 P4 渲染作业时需要它。创建 Perforce 渲染作业有关后续步骤,请参阅。

作业环境变量

警告

不建议在生产环境中使用这种方法,因为它会在作业配置和日志中公开凭据。在生产环境中使用 Secrets Manager。

您可以在创建工作空间的作业环境中传递连接凭据,例如在 p4_sync_smf_environment、ugs_sync_smf_environment 或 CMF 的类似环境中。或者,创建一个新的环境模板并将其添加到您的工作中。

name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd

这种方法存在以下安全风险:

  • 证书在作业配置中可见。

  • 密码可能会出现在日志中(不会自动删除)。

  • 没有集中式凭证管理。

  • 难以轮换证书。

队列环境变量

警告

不建议在生产环境中使用这种方法,因为它会将凭据存储在队列配置中。使用 Secrets Manager 进行安全的凭据管理。

根据 De adline Cloud 用户指南,您可以使用队列环境为队列中的作业提供软件应用程序、环境变量和其他资源。队列环境示例可以在截止日期云样本的 queue_environments 文件夹中找到。

使用 Deadline 云监控器或控制台添加队列环境

  1. 打开 Deadline 云监控器或 AWS 控制台。

  2. 导航到您正在使用的服务器场和队列。

  3. 选择 “队列环境” 选项卡。

  4. 选择 “操作”,然后选择 “使用 YAML 新建”。

  5. 添加以下内容并保存:

    specificationVersion: environment-2023-09 name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd

使用 CLI 添加队列环境

  1. 使用上面的示例创建一个p4_credentials.yaml文件。

  2. 运行以下 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 部署,请使用 Secrets Manager。

Windows 注册表在工作计算机上提供本地凭据存储。此方法使用标准 Perforce 优先级系统,其中凭据存储在:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment(系统范围的设置)。

  • HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment(用户特定的设置)。

此方法仅适用于您可以直接访问配置工作器计算机的 CMF 部署。

Pre-configured 管理员用户(仅限 CMF)

重要

此解决方案仅适用于可以直接配置工作主机的CMF。对于 SMF 部署,请使用 Secrets Manager。

为具有未到期连接的渲染节点创建专用 P4 用户,无需传递用户名和密码等机密数据。在这种情况下,可以使用单个专用 P4 用户连接到所有 P4 服务器,包括可访问项目仓库的提交(主服务器)和边缘服务器。

因此,如果未在 workers 上配置默认端口,则只需传递要连接的端口。这可以通过在作业环境或队列环境中添加以下内容来实现,类似于上面记录的步骤:

name: P4Sync variables: P4PORT: ssl:my-perforce.com:1666

创建 Perforce 渲染作业

本节将引导你配置 Perforce-integrated 渲染作业数据资产,这样你就可以从虚幻引擎向 Deadline Cloud 提交 Perforce-integrated 渲染作业。

先决条件

在 Perforce 存储库中使用虚幻引擎提交影片渲染队列 (MRQ) 作业之前:

虚幻项目设置

  • 项目必须位于 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

与@@ 标准作业的主要区别

  • 凭据管理:来自 Secrets Manager 的 Secure Perforce 凭证应用程序。

  • 存储库同步:用于工作空间管理的附加 Perforce 同步环境。

  • 路径解析:环境变量引用 Perforce 工作空间路径。

  • 依赖项收集:自动收集和同步资 Perforce-tracked 产。

设置 Perforce 渲染作业组件

按照以下步骤创建 Perforce-integrated 渲染作业所需的数据资产。

1. 创建应用性能凭证数据资产

设置 OpenJD 环境,用于从 Secrets Manager 检索 Perforce 凭证并将其应用于 Perforce 连接。

注意

环境变量出现在带有openjd_env前缀的日志中,但为了安全起见,敏感数据(端口、用户、密码)会自动被删除。

配置步骤

  1. 创建新的截止日期 Cloud Perforce 环境数据资产。

    “为数据资产实例选择类别” 对话框筛选为 “截止日期”,并选中 Deadline Cloud Perforce 环境。
  2. 描述性地命名数据资产(例如,ApplyP4SecretEnv“”)。

  3. 从中选择p4_apply_secrets_environment.yml模板Content/Python/openjd_templates/p4/

  4. 配置密钥引用:

    • 在 4INFO 中输入你的 Perforce 凭证密钥名称。AWS_SECRET_P

    • 这应该与中创建的密钥名称相匹配执行凭证管理

    应用 Perforce 凭证环境数据资产属性:名称 P4ApplySecrets、模板路径 p4_apply_secrets_environment.yml 和 4INFO 变量设置为。 AWS_SECRET_P P4AccessSecretName

2. 创建 Perforce 同步环境数据资产

设置 OpenJD 环境,用于创建 Perforce 工作区、同步来自 Perforce 服务器的文件以及在渲染后清理工作区。

配置步骤

  1. 创建新的截止日期 Cloud Perforce 环境数据资产。

  2. 根据您的舰队类型命名数据资产:

    • P4SyncSMFEnv适用于服务管理舰队 (SMF)。

    • P4SyncCMFEnv适用于客户管理的车队 (CMF)。

  3. 从以下选项中选择相应的模板Content/Python/openjd_templates/p4/

    • SMF: p4_sync_smf_environment.yml

    • CMF: p4_sync_cmf_environment.yml

  4. 配置密钥引用:

    • 在 4INFO 中输入你的 Perforce 凭证密钥名称。AWS_SECRET_P

    • 必须与步骤 1 中的密钥匹配。

    Perforce 同步环境数据资产属性:名称 P4SyncSmf、模板路径 p4_sync_smf_environment.yml 和 4INFO 变量设置为。 AWS_SECRET_P P4AccessSecretName

3. 创建 Perforce 启动 UE 环境数据资产

为启动集成了 Perforce 的虚幻引擎设置一个 OpenJD 环境。这将自动引用同步环境创建的 Perforce 工作区。

配置步骤

  1. 创建新的截止日期云环境数据资产。

  2. 描述性地命名数据资产(例如,P4LaunchUEEnv“”)。

  3. 从中选择p4_launch_ue_environment.yml模板Content/Python/openjd_templates/p4/

  4. 配置环境设置:

    • 将 “远程执行” 设置为。 True

    • 此设置启用远程渲染功能。

    使用 Perforce 环境数据资产属性启动虚幻引擎:名称 LaunchUnrealEditorWithP4、模板路径 p4_launch_ue_environmul.yml,REMOTE_EXECUTION 变量设置为 True。

4. 创建 Perforce 渲染步骤数据资源

设置 OpenJD 渲染步骤以执行渲染过程。

配置步骤

  1. 创建新的 De adline Cloud 渲染步骤数据资产。

    “为数据资产实例选择类” 对话框筛选为 “截止日期云”,并选择了 Deadline Cloud 渲染步骤。
  2. 描述性地命名数据资产(例如,P4RenderStep“”)。

  3. 从中选择p4_render_step.yml模板Content/Python/openjd_templates/p4/

5. 创建 Perforce 渲染作业数据资产

设置 OpenJD 渲染作业,以协调整个渲染工作流程。

配置步骤

  1. 创建新的 De adline Cloud Render Job 数据资源。

    “为数据资产实例选择类” 对话框筛选为 “截止日期云”,并选择 Deadline Cloud Render Job。
  2. 描述性地命名数据资产(例如,P4RenderJob“”)。

  3. 从中选择p4_render_job.yml模板Content/Python/openjd_templates/p4/

  4. 查看参数定义:模板包含以下参数及其默认行为:

    参数说明Auto-filled所需操作
    ProjectRelativePath相对于 Perforce 工作空间根目录的项目路径留空-自动填充
    ProjectName创建 Perforce 工作区的项目名称留空-自动填充
    PerforceChangelistNumber执行变更列表以将工作空间同步到留空-自动填充
    PerforceWorkspaceSpecificationTemplate使用令牌执行客户规范 {workspace_name}留空-自动填充
    MrqJobDependenciesDescriptor具有 MRQ 依赖关系的 JSON 文件用于同步留空-自动填充
    ExtraCmdArgsFile用于额外参数的文件(避免 1024 个字符的限制)可选-使用默认设置进行标准设置
    FramesPerTask每个任务要渲染的帧数可选-使用默认 (0) 按镜头划分任务
    ExtraCmdArgs虚幻引擎发布的其他论点可选-使用默认设置进行标准设置
    Executable渲染节点的虚幻可执行文件名称配置-使用默认设置进行标准设置
    CondaPackages呈现任务所需的 Conda 软件包配置-使用默认设置进行标准设置
    CondaChannels存放包裹的 Conda 频道配置-使用默认设置进行标准设置
    ChunkSize在单个渲染会话中分组的镜头数量配置-默认:1(针对性能进行调整)
    MarketplacePluginsDir引擎之路 Marketplace 插留空-自动填充

    参数配置指南

    • Auto-populated 参数:将这些参数留空-它们在提交作业时会自动填写。

    • 手动参数:查看默认值并根据您的特定要求进行调整。

    • ChunkSize: 从 1 开始,通过简单的镜头增加以获得更好的性能。

    Perforce 渲染任务数据资产的参数定义属性、列表、 ProjectRelativePath、、 ProjectName、 PerforceChangelistNumber、 PerforceWorkspaceSpecificationTemplate、、 MrqJobDependenciesDescriptor、 ExtraCmdArgs、 ExtraCmdArgsFile、可执行文件、 CondaPackages CondaChannels、和 ChunkSize 字段。
  5. 配置环境(按以下确切顺序):

    Order环境用途
    第 1 天"ApplyP4SecretEnv"应用 Secrets Manager 的 Perforce 凭证
    第 2“P4SyncSMFEnv” 或 “P4SyncCMFEnv”同步 Perforce 工作空间和文件
    第 3 名"P4LaunchUEEnv"使用 Perforce 路径启动虚幻引擎
    重要

    环境顺序对于正确的依赖关系解析和凭证流程至关重要。

  6. 添加渲染步骤:将 P4RenderStep “” 添加到步骤部分。

    渲染作业数据资源环境数组,按顺序显示 ApplyP4SecretsEnv P4SyncSMFEnv、、、,并 P4LaunchUEEnv P4RenderStep 添加在 “步骤” 下方。

最佳实践

Pre-submission 清单

  • 凭证:正确配置身份凭证(请参阅执行凭证管理)。

  • 工作区:规范包括所有必要的视图映射。

  • 测试:在提交大型作业之前,使用小型渲染任务进行测试。

  • 依赖关系:验证所有项目依赖项均在 Perforce 中且可访问。

  • 权限:确认工作人员角色有权访问 Secrets Manager。

性能优化

区块大小配置

组块大小使用案例性能影响
1-2 次射门复杂镜头,需要详细审查吞吐量更低,质量控制更高
4-8 次射门平衡工作量,典型项目速度和可管理性的最佳平衡
10 次以上镜头简单镜头,批量处理最大吞吐量,最低开销

考虑以下其他优化:

  • 依赖关系:尽量减少不必要的资源依赖关系,以减少同步时间。

  • 工作区视图:优化 Perforce 工作区视图以仅同步所需的文件。

监控和调试

  • 作业日志:在作业执行日志中监控 Perforce 同步进程。

  • 工作区状态:检查工作区创建和同步完成情况。

  • 依赖项收集:验证已捕获所有必需的资产。

  • 性能指标:跟踪同步时间和渲染性能。

问题排查

常见问题和解决方案

问题症状解决方案
P4 连接失败身份验证错误,超时验证 Perforce 凭据;检查网络连接;验证 Perforce 服务器的可访问性
工作区同步错误同步失败,权限被拒绝检查 Perforce 用户权限;验证工作空间规范;确保变更列表存在
缺少依赖关系渲染失败、资源缺失查看MrqJobDependenciesDescriptor;检查软参考文献集;验证 Perforce 中的所有资产
路径解析问题未找到文件错误验证P4_CLIENT_DIRECTORY变量;检查环境顺序;验证工作空间根路径

调试步骤

  1. 查看作业日志:查看 Perforce 同步环境日志,了解详细的错误消息。

  2. 验证工作空间:确保 Perforce 工作空间规范正确。

  3. 本地测试:在提交者计算机上验证 Perforce 操作是否有效。

  4. 验证权限:确认工作人员角色具有秘密访问权限(如果使用 Secrets Manager)。

自定义主机要求

本节介绍如何在虚幻引擎中为Deadline Cloud渲染创建和使用自定义主机要求。

概述

主机要求定义了哪些队列有资格运行特定的渲染步骤。它们存储在UDeadlineCloudHostRequirements资源中,然后由DeadlineCloudRenderStep资源引用。

需求类型配置位置使用案例
基本系统要求CPU/RAM /GPU 字段将渲染限制在具有特定硬件的计算机上
自定义金额要求名称 + min/max 值需要数字资源级别(许可证、令牌、配额)
自定义属性要求属性 + 值列表队列需要自定义属性才能运行该步骤
注意

使用眼睛图标隐藏需求只会将其隐藏在 MRQ Submit 用户界面中。提交工作时,该要求仍然适用。

步骤 1:创建主机需求资产

  1. 在虚幻引擎中打开内容浏览器。

  2. 创建新资产:添加其他数据资产DeadlineCloudHostRequirements

  3. 例如,为资产命名MyHostRequirements

第 2 步:加载默认 YAML 模板

  1. 在资源详细信息面板中,找到 “模板路径” 字段。

  2. 选择默认模板:Plugins/UnrealDeadlineCloudService/Content/Python/openjd_templates/host_requirements.yml

这将加载基本要求,例如 CPU、内存、GPU、操作系统和架构。

注意

基本要求无法删除;只能更改其值。

步骤 3:配置基本(系统)要求

设置示例
操作系统windows
CPU 架构x86_64
vCPU(最小值)16
GPU(最小值)1

如果 Max = 0,则该要求没有上限。

第 4 步:添加自定义金额要求

当要求为数字(例如,许可证数量、并发限制)时使用。

  1. 找到 “自定义金额要求” 部分。

  2. 添加新条目并设置名称,例如:amount.custom.license

  3. 设置最小值和最大值:

    • 最小:1。

    • 最大值:0(0 表示无限制)。

步骤 5:添加自定义属性要求

用于根据标签和标签筛选工作人员。

  1. 找到 “自定义属性要求” 部分。

  2. 添加新的属性名称,例如:attr.custom.gpu.vendor

  3. 选择匹配规则:

    • AllOf-所有值都必须匹配。

    • AnyOf-必须至少有一个匹配。

  4. 输入用空格分隔的属性值,例如:nvidia amd

步骤 6:在 MRQ 中的可见性(可选)

每个要求条目都有一个眼睛图标。

眼睛行为
Visible该要求显示在 MRQ 提交用户界面中
隐藏该要求已隐藏,但在提交工作时仍包含在内

此设置可用于简化美术师的用户界面,同时保留技术限制。

步骤 7:将要求附加到渲染步骤

  1. 打开相关DeadlineCloudRenderStep资产。

  2. 找到 “主机要求” 字段。

  3. 分配您创建的资产(例如,MyHostRequirements)。

现在,使用此步骤提交的所有 MRQ 都会强制执行您的主机选择逻辑。

Summary

使用主机需求资产,您可以:

  • 控制哪些工作计算机执行您的渲染作业。

  • 指定最低资源水平。

  • 使用属性匹配来定位特定的工作人员池。

  • 简化用户界面,同时保持技术规则不变。

  • 在多个 MRQ 步骤中重复使用设置。

此设置提高了作业路由的一致性,并确保在正确的硬件上进行渲染。

高级配置

Service-managed 舰队与客户管理的车队

Service-managed 舰队 (SMF)

在服务管理的舰队中,虚幻引擎和适配器可使用带有默认队列环境的 deadline-cloud conda频道自动使用。此设置提供了最简单的体验。

Customer-managed 舰队 (CMF)

对于客户管理的舰队,必须手动在工作主机上安装虚幻引擎和适配器。此设置提供了更多的控制并支持 Perforce 集成等其他功能。有关详细说明,请参阅设置客户管理车队 (CMF) 工作人员

虚幻引擎渲染功能

虚幻引擎的渲染系统为以下内容提供全面支持:

功能 说明 注意
影片渲染队列 High-quality 离线渲染 与作业提交集成
音序器 Timeline-based 动画系统 自动镜头检测和处理
项目插件 自定义插件支持 自动检测和包含
资产依赖关系 内容文件管理 全面的资产跟踪
粘性渲染 两次镜头之间的应用程序持久性 提高了多镜头序列的性能

所有渲染功能均由虚幻引擎集成提交者自动检测和配置。该适配器可以保持适当的依赖关系处理,并且无需重启虚幻引擎即可支持高效的多镜头渲染。

开源资源

提交者和适配器是开源的,可在以下网址获得: GitHub