虚幻引擎nDisplay教程:如何同步nDisplay节点与Switchboard + Helix Core

news2025/7/16 5:38:57

对于使用大型LED屏幕进行拍摄的虚拟制作团队来说,虚幻(Unreal)的nDisplay是一个重要的工具。但是,在nDisplay中将正确版本的文件发送到每个节点会非常耗时。立即阅读本文,您将了解到如何使用Perforce Helix Core版本控制设置虚幻总机(Unreal Switchboard),快速轻松地将您的项目同步到所有nDisplay节点。

虚幻引擎中的nDisplay是什么?

nDisplay是虚幻引擎中附带的一个插件,让多个机器(称为节点)根据真实世界的物理尺寸和屏幕位置从不同的角度同时渲染单个项目。

nDisplay还可以连接运动跟踪器,使所有显示屏根据运动跟踪的对象(如摄像机)改变其视角。

nDisplay以实时60帧/秒以上的速度驱动着大型高清LED显示屏,并计算着每个屏幕的所有内部和外部的平截锥体视图(frustum views)。通过根据LED显示屏的实际物理尺寸(包括任何曲线、角度和附加显示屏)设置nDisplay蓝图,制作团队可以将屏幕的渲染分配到多台计算机上,以达到镜头内视觉特效(VFX)所需的帧率。

虚幻引擎中的虚幻总机是什么?

总机是虚幻引擎附带的另一个工具,nDisplay中使用的所有渲染节点和控制计算机,都能通过总机进行远程控制、协调和数据同步。每个节点都运行总机监听器(Switchboard Listener),而主控制机器运行主总机应用程序来控制它们。

为什么将Perforce Helix Core与虚幻nDisplay一起使用?

如果要确保nDisplay节点可以协同工作,那么一个重要步骤是确保每个节点拥有完全相同的项目副本,包括任何最近的更改。手动执行该操作是一个耗时且容易出错的过程。好在虚幻总机中内置了与Perforce版本控制Helix Core的集成。Perforce Helix Core能够简化同步每一个nDisplay节点的过程,可以同时更新它们,甚至可以回滚到项目的先前版本,包括自定义的虚幻引擎构建,如果您需要。

使用Perforce Helix Core设置虚幻总机的分步指南

使用Perforce Helix Core可以大大提高项目同步到所有nDisplay节点的效率。请按照以下步骤逐步了解:

  1. 开始之前的准备工作

  2. 如何设置总机+Perforce Helix Core

前提条件

虚幻引擎多用户编辑

运行总机和nDisplay要求所有计算机都能够加入虚幻引擎中的多用户会话。这通常需要所有的计算机都在同一个局域网(LAN)中,并可能涉及调整虚幻编辑器中的一些UDP设置。您可以在此查看Epic的相关文档:虚幻引擎中的多用户编辑入门。

在继续操作之前,请确保所有计算机都可以连接到多用户编辑会话!

游戏引擎中的Perforce Helix Core设置

为了将项目同步到运行总机监听器的nDisplay节点,您需要在Perforce Helix Core 中正确地设置项目。请确保您已经正确设置了typemap和p4ignore等内容,并且可以在虚幻引擎中启用源代码控制与Perforce的集成。

此外,请确保每台监听器都至少安装了P4 CLI。如果每台机器也安装了P4V,设置起来会更容易。然后,创建一个工作空间,并将虚幻项目同步到您要设置的每台渲染器和控制器计算机上。

步骤1:启用插件

使用nDisplay最简单的方法是从虚幻引擎中的nDisplay模板项目开始。该项目已经启用了nDisplay和总机插件。

如果nDisplay和总机尚未启用,请务必转到Edit(编辑)> Plugins(插件)并启用它们,然后重启编辑器。

图片

图片

步骤2:启动虚幻总机

在控制集群的计算机上,单击编辑器顶部显示的运行总机按钮。第一次运行时,它会提示您安装依赖项。

同样,在集群中的所有其他计算机上,从虚幻编辑器中单击总机旁的三点菜单并选择 "启动总机监听器"。如果出现提示,请务必允许通过Windows防火墙进行访问。如果这台计算机将始终作为渲染节点工作,那么您可以选中
  "Launch Switchboard Listener on Login(登录时启动总机监听器)"复选框。

您也可以通过进入虚幻引擎安装路径并运行.../Engine/Binaries/Win64/SwitchboardListener.exe来单独运行总机监听器。

当监听器通过总机激活时,它将打开一个新的虚幻引擎实例,因此您不需要事先运行它

图片

步骤3:创建新配置

使用总机运行的每个项目都有自己的配置文件,用来存储有关项目路径和运行节点的信息。通常情况下,不同项目之间的节点设置保持不变,但项目路径和工作区名称会发生变化。在这种情况下,您可以打开以前的配置,然后转到配置>将配置另存为...,节省设置新项目的时间。

进入配置>新配置后,您将看到一个对话框:

Config Path(配置路径):这是配置文件的名称。默认情况下,它将保存在Engine/Plugins/VirtualProduction/Switchboard/Source/Switchboard/configs中。

uProject(你的文件):浏览运行总机控制器的计算机上的.uproject文件。

Engine Dir(引擎目录):对于虚幻引擎上的自定义构建,可以将其调整为不同的引擎/目录,但如果您使用的是标准的虚幻引擎安装,则可以将其保留为默认值。

选中Perforce框后,填写以下信息:

P4项目路径:这是包含.uproject文件的文件夹的Perforce Helix Core 仓库路径。例如,//depot_name/stream_name/project_folder

P4引擎路径:如果您使用Unreal GameSync来跟踪自定义虚幻引擎编辑器的构建,您可以在此处指定该仓库的路径。如果没有,则将其留空。

工作区名称:输入主机上与此项目关联的Perforce Helix Core工作区的名称(这与您在虚幻编辑器源代码控制设置中使用的工作区相同。)

图片

步骤4:添加虚幻设备

现在,您可以单击“添加设备”下拉菜单来添加机器,该机器将成为nDisplay集群的一部分。要添加控制器计算机(用于在场景渲染到渲染节点时,实时编辑场景),请从下拉菜单中选择 "虚幻"。在本示例中,将为控制器计算机添加一个虚幻设备。

出现提示时,请为其命名,然后输入本地专用IP地址。您可以通过在命令提示符或powershell窗口中输入ipconfig来查找主以太网或Wi-Fi适配器。

图片

图片

因为这与我们开始配置时使用的是同一台机器,所以不需要再做任何更改。

步骤5:添加nDisplay节点

每个节点都可以作为nDisplay设备添加,用于渲染nDisplay设置的一部分。节点的数量将由您选择的nDisplay配置文件决定。如果您使用的是nDisplay模板项目,其中会包含多种配置。要查看下拉菜单中的列表,请单击右侧的 "填充"。或者,您也可以浏览到特定的配置文件,但必须确保该文件与您项目中的nDisplay蓝图相匹配。对于模板项目,NDC_Basic.ndisplay是默认设置,为了便于测试,其中只包含一个nDisplay节点。

图片

选择配置后,所有nDisplay设备都将自动添加到总机。不过,由于每台机器的IP地址、工作区名称和/或文件路径都可能不同,因此在调整设置之前,这些设备可能无法正常工作。 

步骤6:调整设置

单击左上角的齿轮图标,从“设置”菜单中打开设置。

该页面上有很多设置,但都按类别进行了分类,可以单击左侧的标签进行筛选。

首先,确保将总机 > 地址设置为主机的专用IP地址,否则多用户会话将无法运行。

图片

项目设置部分可能可以单独保留,因为我们在创建配置时已经配置了它。

跳转到虚幻设置部分,如果我们的虚幻控制器计算机与运行总机的计算机是同一台,那么也可以不对其进行配置。如果不是,则将地址更新为该机器的IP地址,必要时调整Engine Directory(引擎目录)、Workspace Name(工作区名称)和uProject Path(你的项目路径)。(注意,如果是在另一台机器上,"浏览 "按钮将不起作用,因为它只能查看本地文件系统)。

nDisplay设置部分,您可能需要做最多的更改。您会看到每个节点都列在它们的深灰色框中。对于每一个节点,请确保将地址更新为该机器的专用IP地址,并更新引擎目录、工作区名称和uProject路径,使之与该机器相符。您会注意到,任何与配置默认值不同的设置都会突出显示,并在右侧显示一个 "恢复默认值 "按钮。

图片

步骤7:连接到计算机

现在,您可以单击所有监听器计算机的“连接”按钮。确保总机监听器已在所有机器上运行。

首次设置时,应一次连接一台,以便检查和诊断任何错误。要诊断错误,请务必检查总机上的日志框,以及您正在连接的计算机上总机监听器的终端输出(在默认情况下可能会最小化)。

需要检查的一些常见问题包括:

  • 不正确的路径或工作区名称中的错别字

  • 专用IP地址不正确

  • 项目尚未同步到渲染节点

注意:如果您收到关于缺少名为VPRoles.ini的文件的警告,则默认情况下可能没有创建该文件。检查显示的文件路径(通常在项目内部的Config/Tags/VPRoles.ini中),并在该位置创建一个空白文本文件。然后通过P4V将其添加到Perforce Helix Core中,提交到仓库,然后同步给所有连接的机器。

连接好所有机器后,可以使用总机界面上的按钮检查它们是否都有最新的Perforce Helix Core更新列表,选中自动加入多用户会话按钮,然后点击按钮在所有机器上同时启动项目。

图片

连接所有nDisplay节点后,您就可以在所有设备上实时同步查看更改!

还没有Perforce Helix Core?

Perforce Helix Core是使用游戏引擎团队的首选版本控制系统。它为虚拟制作团队提供了唯一可信数据源,使他们能够在大型项目和游戏引擎构建上更高效地进行协作。此外,Perforce Helix Core还大大提高了将项目同步到所有nDisplay节点的效率。

您最多可以让五个用户免费使用Perforce Helix Core。立即在您的虚拟制片项目中试用它,亲眼见证Perforce Helix Core如何提高团队的效率。

文章来源:https://bit.ly/4aNYmKt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1382160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins集成Sonar Qube

下载插件 重启Jenkins 容器 sonarqube 使用令牌 Jenkins 配置 重新构建

Flask类视图的基本用法及高级技巧详解

概要 当我们谈论Web开发时,Flask是Python世界中最受欢迎的微框架之一。简洁灵活的设计让它在开发小型到中型的Web应用程序时尤其受欢迎。在Flask中处理URL路由时,我们常常会使用基于函数的视图。尽管这很简单直接,但是随着应用的增长&#x…

Linux驱动学习—I2C总线

1、应用层实现I2C通信 1.1 I2C简介 I2C是很常见的一种总线协议,I2C是NXP公司设计的,I2C使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时钟线),另外一条是SDA(串行数据线),因为I2C这两条数…

如何使用创建时间给文件重命名,简单的批量操作教程

在处理大量文件时,有时要按照规则对文件重命名,根据文件的创建时间来重命名。那如何批量操作呢?现在一起来看云炫文件管理器如何用文件的创建时间来批量重命名。 按创建时间重命名文件的前后对比图。 用创建时间批量给文件重命名的步骤&…

定时器问题(vue的问题)

我在a页面写一个定时,让他每秒钟打印一个1,然后跳转到b页面,此时可以看到,定时器依然在执行。这样是非常消耗性能的。如下图所示: 解决方法1 首先我在data函数里面进行定义定时器名称: data() {return {t…

六、新建窗体时,几种窗体的区别

新建窗体时,会有几种类型的选项,很多同学不明白其中的意思,我们在本章节中详细介绍一下几种窗体的区别。 窗体的类型分以下几种 Dialog with Buttons Bottom 带按钮的对话框,按钮在底部 Dialog with Buttons Right 带按钮的对话框…

【Java SE语法篇】8.面向对象三大特征——封装、继承和多态

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 文章目录 1. 封装1.1 封装的概念1.2 为什么封装1.3 封装的实现…

Vue基知识四

本文对前边几章所学习的内容,以案例的形式做一个总结 一 TodoList案例 即待办事项案例,效果如下 1.1 组件化编码流程(通用) 这是编码时的通用流程,以后也可以按照这个流程来写代码(熟悉后这个流程的顺…

Flutter开发进阶之动画

Flutter开发进阶之动画 在Flutter中,动画是至关重要的一个部分,它能够为应用程序提供更加丰富和生动的用户体验,Flutter中的动画系统是UI框架的核心功能之一,也是开发者学习Flutter框架的重要部分,由于动画原理在所有…

Python基本语法与变量的相关介绍

python基本语法与变量 python语句的缩进 Python代码块使用缩进对齐表示代码逻辑,Python每段代码块缩进的空白数量可以任意,但要确保同段代码块语句必须包含相同的缩进空白数量。建议在代码块的每个缩进层次使用单个制表符或两个空格或四个空格 , 切记不…

GPU云服务器使用教程、运行YOLOV5项目并连接到本地VSCode(Pycharm)

编程如画,我是panda! 之前已经教过大家如何在自己的电脑中配置Pytorch深度学习环境,但是有些小伙伴没有英伟达的GPU,所以用CPU的话训练模型会比较慢,所以这次出一期使用GPU云服务器的教程。 码字不易,如果对…

金南瓜SECS/GEM发送event、VID

金南瓜SECS/GEM发送事件(CEID)很简单,只需一步就完成。 最重要是简单易懂,任何人一看就上手。无需懂得内部逻辑,以及一大堆的导入问题。 代码如下 C#的代码: // 扫码成功 private void buttonReadBarco…

一个简易的PHP论坛系统

一个简易的PHP论坛系统 php课程设计,毕业设计 预览 技术 bootstrap 4.x jquery css php mysql 5.7 目录结构 登录 管理员 admin/123456 测试用户 user1/123456 更多文章和源码获取查看

51-13 多模态论文串讲—BEiT v3 论文精读

BEIT-3的核心思想是将图像建模为一种语言,这样我们就可以对图像、文本以及图像-文本对进行统一的mask modeling。Multi-way transformer模型可以有效地完成不同的视觉和视觉语言任务,使其成为通用建模的一个有效选择。 同时,本文也对多模态大…

深入 Move 生态,探秘铭文热潮背后的思考

Move 语言是 Meta(Facebook)在 2018 年开发的新一代智能合约编程语言。回顾过去的一年,Aptos 与 Sui 主网上线,为整个 Web3 开启了下一个十亿用户服务的新征程。Rooch、Initia、MoveMent 等多条使用 Move 语言的区块链网络涌现&am…

边缘计算的舞台,挑战与机遇相伴

目录 前言 边缘计算保卫战:数据宝藏的隐藏与探索 稳如磐石:保障你的边缘计算宝藏安稳运行! 打破时间的桎梏:为边缘计算注入超快速度与实时表演 边缘计算:应对多样性和异构性的酷炫策略大揭秘 边缘计算:释…

MySQL面试题 | 06.精选MySQL面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

Spring Boot - JaCoCo Code Coverage

文章目录 概述如何集成pom添加插件Code Demo排除不相关的类CI/CD中使用完整POM 概述 JaCoCo(Java Code Coverage)是一个开源的Java代码覆盖率工具,它主要用于评估Java程序的测试完整性。通过跟踪测试过程中执行的代码,JaCoCo能够…

【Python数据可视化】matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

读元宇宙改变一切笔记07_硬件与互操作性(上)

1. 元宇宙的头号入口 1.1. 元宇宙最令人兴奋的地方在于,我们可以借此开发用来访问、渲染和操纵它的新设备 1.1.1. App Newton于1993年发布,是世界上第一款掌上电脑 1.2. 功能超强大又轻巧的AR和沉浸式VR头显 1.2.1.…