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

对于使用大型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.mzph.cn/news/618165.shtml

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

相关文章

Linux 系统之部署 ZFile 在线网盘服务

一、ZFile 介绍 1)ZFile 简介 官网:https://www.zfile.vip/ GitHub:https://github.com/zfile-dev/zfile ZFile 是一款基于 Java 的在线网盘程序,支持对接 S3、OneDrive、SharePoint、又拍云、本地存储、FTP 等存储源&#xff0…

【Go】excelize库实现excel导入导出封装(三),基于excel模板导出excel

前言 大家好,这里是符华~ 关于excelize库实现excel导入导出封装,我已经写了两篇了,我想要的功能基本已经实现了,现在还差一个模板导出,这篇文章就来讲讲如何实现用模板导出excel。 前两篇: 【Go】excel…

爬虫-5-数据提取-正则,xpath

#免责声明:本文仅供学习,请遵纪守法。 ԅ(ㅂԅ)

Leetcode 剑指 Offer II 061. 查找和最小的 K 对数字

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k…

使用CloudCompare对obj网格模型转换为pcd/ply点云模型

1.打开CloudCompare,点击文件夹图标,首先先把文件类型选择为.obj,然后再去找预处理的obj网格模型,点击打开。 2.测试打开的obj网格模型如下图: 3.选中obj文件,点击网格上样本点的图标,输入预生成…

探索 C# 中的程序运行目录获取方法

探索 C# 中的程序运行目录获取方法 引言 在 C# 开发中,有时需要确定您的应用程序的运行目录。这可能是为了读取配置文件、存储日志,或者访问与应用程序位于同一目录的其他资源。C# 提供了几种方法来获取当前程序的运行目录。本文将探讨这些方法及其使用…

群晖Synology Drive同步文件时过滤指定文件夹“dist“, “node_modules“

群晖Synology Drive同步文件时过滤指定文件夹"dist", “node_modules” mac用户 安装Synology Drive创建同步任务修改Synology Drive配置 打开/Users/[用户名]/Library/Application Support/SynologyDrive/data/session/[同步任务序号,第一个同步任务就…

【Maven】003-基于 IDEA 创建 Maven 工程

【Maven】003-基于 IDEA 创建 Maven 工程 文章目录 【Maven】003-基于 IDEA 创建 Maven 工程一、关于 Maven 工程的 GAVP1、GAVP 简介2、GAV 坐标规范3、Packaging 定义规则 二、基于 IDEA 创建 Maven 工程1、创建 Maven 项目2、创建结果3、项目结构说明 一、关于 Maven 工程的…

Django(七)

Django(六) 4.编辑用户 点击编辑,跳转到编辑页面(将编辑行的ID携带过去)。编辑页面(默认数据,根据ID获取并设置到页面中)提交: 错误提示数据校验在数据库更新 user_edit.html {% exte…

Docker五部曲之二:Docker引擎

文章目录 前言Docker引擎镜像管理容器管理容器运行前台运行和后台运行容器识别重启策略清除 容器日志 数据管理卷挂载创建和管理卷启动带有卷的容器通过Docker Compose使用卷使用只读卷备份、恢复和迁移卷 绑定挂载用绑定挂载启动一个容器Docker Compose使用绑定挂载使用只读绑…

【嵌入式——QT】QT静态编译

【嵌入式——QT】QT静态编译 QT下载查看文档下载Visual Studio打开命令行模式编译添加QT到Qt Creator编译示例 QT下载 下载地址 进入目录,我这里选择的qt-everywhere-src-5.14.1.zip。 查看文档 解压压缩包打开源码,查看README文件,里面…

双交叉限幅控制总结

空燃比小于等于1使用下图:空燃比大于1,MAX变MIN,MIN变MAX,高低选互换即可。加负荷,先加空气,后加煤气,降负荷,先降煤气,后降空气。 交叉限幅和双交叉限幅的区别 交叉限幅…

C#,质数(Prime Number)的四种算法源代码和性能比较

一、概念 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。 本文介绍了四种求解质数的算法。 (1)质数筛&am…

【C++】- 类和对象

类和对象③ 介绍运算符重载赋值运算符重载运算符重载 在学习C语言时,我们首先接触的就是变量,再深入学习,我们可以利用运算符对变量进行操作,当我们使用C编写程序时,经常会遇到一些需要对特殊的例如自定义数据类型进行…

BikeDNA(四)初始化参考数据

BikeDNA(四)初始化参考数据 这本笔记本: 加载定义研究区域的多边形,然后为研究区域创建网格叠加。加载参考数据。处理参考数据以创建分析所需的网络结构和属性。 先决条件和条件 输入/输出 config.yml 必须提前设置。 此笔记本…

解决文字识别中误识别问题的秘籍

随着人工智能技术的不断发展,文字识别技术已经广泛应用于各个领域,如智能客服、智能家居、自动驾驶等。然而,在实际应用中,文字识别技术也面临着误识别的问题。误识别不仅会影响用户体验,还可能导致严重的后果。因此&a…

怎么把PDF转成图片格式?分享一个PDF转图片的方法

在数字时代,PDF文件已经成为我们日常工作中不可或缺的一部分。然而,有时候我们需要将PDF文件中的内容转换为图片格式,这涉及到将PDF转图片的需求。PDF转图片的需求来源于不同的应用场景。在某些情况下,我们需要将PDF文件中的内容以…

【MATLAB】 多元变分模态分解MVMD信号分解算法

有意向获取代码,请转文末观看代码获取方式~ 1 基本定义 多元变分模态分解(MVMD)是一种信号分解方法,可以自适应地实现信号的频域剖分及各分量的有效分离。 MVMD算法的具体步骤如下: 假设原始信号S被分解为K个分量μ…

代码随想录 Leetcode160. 相交链表

题目: 代码(首刷看解析 2024年1月13日): class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode *A headA, *B headB;while (A ! B) {A A ! nullptr ? A->next : headB;B B ! nullpt…

【力扣·每日一题】2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)

题目链接 题意 给你一个字符串 s 和一个整数 repeatLimit ,用 s 中的字符构造一个新字符串 repeatLimitedString ,使任何字母 连续 出现的次数都不超过 repeatLimit 次。你不必使用 s 中的全部字符。 返回 字典序最大的 repeatLimitedString 。 如果…