UE5中实现远程多用户协作编辑

科技   科技   2024-07-01 09:06   上海  


在疫情初期,我们做了一个概念尝试,让人们可以继续使用虚幻引擎远程工作。我们创建了一篇博客文章,用视频展示了我们是如何做的以及我们做了什么。


远程虚拟制作

已经过去了差不多四年。这里是一个使用UE5.0 - UE5.3的远程多用户编辑工作流的更新版本。


远程多用户编辑

本指南将涵盖在虚幻引擎中使用多用户编辑进行远程协作的必要设置步骤和最佳实践。

1.带有修订控制的项目设置

多用户编辑旨在补充虚幻引擎中传统的修订控制。出于这个原因,你需要正确地将你的项目同步到你选择的版本控制系统;虚幻引擎支持Perforce、Git、Plastic SCM和Subversion。有关使用各种修订控制选项的提示,请查看虚幻引擎网络研讨会中的修订控制。


作为一个例子,我们将使用Perforce。每个提供程序的文档链接可以在本指南末尾的附加资源部分找到。

安装并打开“虚幻引擎”后,创建一个新项目或选择一个要启动的现有项目。请确保您的项目是在源代码控制工作区的目录下创建的。一旦项目打开,导航到编辑>插件。选择“内置”,搜索“多用户”,并启用“多用户编辑”。如果“多用户编辑”尚未启用,您将收到一条消息,要求您重新启动启动虚幻引擎。

多用户插件

  • 在修订控制提供程序中,添加并提交项目的.uprojont文件和内容/和Config/目录。不要提交intermediate/ 并保存。

Perforce

  • 一旦一个项目进入源代码控制,所有希望加入多用户的用户必须在同一个变更列表上。通常,这将意味着要同步到最新的版本中。
  • 同步项目后,在加入多用户会话之前不应进行任何本地更改。
  • 当您同步项目时,我们建议关闭虚幻引擎编辑器,以避免出现问题。

Perforce强制获取最新版本

2.配置VPN使用的网络和UDP消息设置

在创建或加入多用户会话之前,如果通过VPN连接,所有用户都需要在虚幻引擎中配置他们的UDP消息设置

  • 如果您使用的是VPN,请确保您的连接是打开的,并且您已经分配了一个IP地址。Cmd),并输入ipconfig。请注意与您的会话将使用的网络相关联的IPV4地址(如果您正在使用VPN,则这将是您的VPN)。
  • 重新打开你的项目,但不要修改任何内容或打开地图。
  • 选择编辑项目设置。
  • 如果您将托管服务器,请转到项目设置插件多用户编辑,在这里展开“客户端设置”部分,并为您的MU服务器选择服务器端口,如“7000”。不要使用“6666”端口或网络上其他服务使用的端口。

多用户服务器端口

对于那些加入服务器,向下滚动到项目设置>插件>UDP消息。这里有三个设置需要填写:
1、启用传输:应设置为True.。
2、单播端点:设置为0.0.0.0:0。
3、静态端点:应该将静态端点设置为将托管多用户服务器的机器的IP地址,然后是步骤1中主机设置的端口。例如:123.456.78:700。

注意:如果在多用户主机上更改了这些设置中的任何一个,则需要重新启动服务器以使更改生效。

UDP消息传递

3.托管一个多用户服务器

  • 一旦项目与修订控制同步,并且设置了UDP消息传递设置,您就可以启动多用户服务器和会话了!
  • 打开您的项目,并导航到窗口>开发人员工具>多用户浏览器。这将打开多用户浏览器窗口。
  • 一旦多用户浏览器打开,您将看到一个创建服务器的选项。只有当您是预期的服务器主机时,才会选择此选项。
  • 服务器将作为一个独立的应用程序启动,一旦初始化,您就可以从左上角的创建会话按钮创建其他会话。创建会话后,给它一个名称,然后按“enter”启动会话。您将自动进入会话。

多用户服务器

如何启动多用户独立服务器

您还可以在任何安装了虚幻引擎的计算机上从命令行启动此服务器。如果您从命令行运行服务器,则不需要在该计算机上拥有您的项目。服务器只记录事务和修改的资产;它不依赖于提供整个项目内容。只有加入会话的计算机才需要具有项目内容的副本。

您将在您的虚幻引擎安装文件夹中的引擎/Binar ies//UnrealMultiUserServer.exe中找到多用户编辑服务器。例如“C:\程序文件\Epic游戏\UE_5.0\引擎\二进制文件\Win6 4\UnrealMultiUserServer.exe”。

启动它时,可以在命令行上提供以下可选参数来控制其行为。

值得强调的一个重要事项是:-UDPMESSAGING_TRANSPORT_UNICAST=[ip]:[DesiredPort]

例如:

命令启动多用户服务器

注意:这是一个很好的解决方案,可以让专用的机器上有一个始终打开的MU服务器,这样人们就可以在任何时候创建MU会话。对于完全远程协作,理想的做法是将MU服务器托管在云上或互联网带宽非常大的位置(办公室)。当使用MU独立服务器时,不需要运行虚幻引擎。

4.加入一个有多用户的会话

一旦在您的网络上启动了多用户服务器和会话,加入就非常简单了。

1.打开您的项目,并导航到窗口>开发人员工具>多用户浏览器。打开多用户浏览器窗口。
2.如果已启动多用户服务器和会话,并且您正确配置了UDP me登录设置,您将自动看到网络上的可用会话。双击以加入。

加入多用户会话

5.多用户功能

Avatars

多用户会话中的每个用户都由一个对其他用户可见的化身来表示。这个化身的颜色和名称可以在项目设置>插件>多用户Editing。

多用户化身

Transactions

通过在公共启动状态之上通过网络发送要应用的更改来实现多用户功能。这些更改称为“事务”,而发送的属性称为“已处理”。大多数对象的大多数属性默认情况下都是事务处理的,但是如果你想添加或排除事务处理的类,可以在项目设置>插件>多用户事务下完成。


多用户事务处理

对于在要公开的蓝图中执行的自定义逻辑,请添加以下蓝图。


Begin、End和Cancel Transaction—在这些节点之间执行的所有逻辑都将被处理,除非执行到达Cancel Transaction节点。

交易对象-交易一个特定的对象的变化


蓝图中的多用户事务处理


多用户浏览器

多用户浏览器在给定部分显示所有连接的用户,使您能够跳转到他们的位置或切换他们的头像可见性。此窗口还提供会话生命周期内所有事务更改的日志。

多用户浏览器

在Sequencer中同时播放

多用户还能够控制所有连接客户端的序列器,以方便si同时播放。为了启用此控件,所有用户必须在其Sequencer中启用几个选项。从左到右分别是:

•切换多用户播放同步:此设置将启用所有Sequencers具有相同的水平序列打开有他们的播放头位置同步。
•切换多用户无关时间轴同步:此设置将使所有序列同步播放头位置,无论他们打开了哪个级别的序列。如果用户正在工作,则应禁用此功能。
·切换多用户远程打开:与此设置切换的客户端将有他们的Sequencer自动加载级别序列由其他用户打开。
•切换多用户远程关闭:客户端与此设置切换将有他们的Sequencer自动关闭时,它是由其他用户关闭。

排序器切换多用户按钮

6.结束会话

所有多用户更改存储在服务器上,而不是磁盘在任何一个用户的虚幻引擎实例。因此,离开会话将使用户的项目状态恢复到加入多用户会话之前的状态。为了使会话中的更改永久保存,用户需要保存并持久化这些更改。虽然任何用户都可以执行这些步骤,但强烈建议由主机来保存和持久化更改。理想情况下,这个过程应该每天至少进行两次,并且在完成当天的工作之前。

注意:不要连续运行几天或几周的会话。如果主机永久无法运行,则服务器上的所有工作都将丢失。

1. 当准备保存和持久化时,主机应该导航到Editor右下角的修订控制按钮,并选择“持久化会话更改”。

2. 这将弹出一个选项窗口,列出会话中所有修改的文件。选择“提交到修订控制”将提示您输入变更列表描述,并使您能够直接将更改提交到修订控制。不选中此选项并继续将文件保存到磁盘,而不是保存到修订控制中。

Persist Session Changes


3.一旦更改被持久化,您就可以通过单击“离开当前会话”按钮来退出MU会话。

退出多用户会话

4.然后,您可以通过右键单击会话并选择“删除”来关闭当前会话。或者,您可以选择“存档”,这将把会话存储为快照,但使现有会话保持活动状态。然后,您可以选择“恢复”会话,并允许人们在以后使用该存档的更改历史记录加入。

删除多用户会话

5.完成后,可以通过点击关闭服务器按钮或关闭服务器独立应用程序来关闭服务器。当服务器在同一主机上重新启动并从相同的虚幻引擎安装时,所有打开和存档的会话仍然可用。

提示

1.关于性能捕获的说明

记录性能捕获创建的文件可能太大,无法通过internet连接在多用户上进行交易,特别是在记录原始Live Link曲线时。这可以通过记录actor而不是Live Link和/或在Take Recorder源的设置中选择减少的键来消除阈值内被认为重复的键来缓解。即使有了这些设置,您也需要一个具有非常高的上传和下载带宽的服务器/客户端,以避免客户端和服务器出现问题。提高多用户记录效率的更新目前正在开发中。

2.常见错误

    1. 一个服务器在我的网络上是活跃的,但虚幻引擎没有看到它加入。
•确保你和主机都完成了第2节中的UDP消息传递设置。
•确保您使用的是MU服务器机器的正确IP和端口。

2. "加入服务器失败:工作空间内存有变化。"
•为了在所有用户之间保持相同的状态,多用户要求所有用户具有相同的起始状态。收到此错误是因为您修改了一个文件,该文件在尝试加入之前尚未保存。退出虚幻引擎并放弃更改并重新启动以加入。

3. "加入服务器失败:工作区有本地更改。"
•为了在所有用户之间保持相同的状态,多用户要求所有用户具有相同的起始状态。您收到此错误是因为您在源代码控制中对尚未提交的项目进行了更改。为了加入,您必须恢复这些更改或提交它们,并让其他用户同步到新的更改列表。

4. " LogUdpMessaging: Error: StartTransport未能在[IP:Port]上创建单播套接字"
•此错误表明您在第2节中为UDP消息传递指定的IP地址不是分配给您的机器上的网络接口的IP地址,并重新启动服务器。

5. "创建和初始化套接字UdpMessageMulticastSocket失败"
•此错误表示不正确的UDP消息组播端点。除非您在网络上配置了高级设置,否则不应更改此IP。如果您认为此地址应该与默认地址不同,请咨询您的网络负责人。

6. 如果你在本地机器上托管MU服务器,但不知何故你没有在多用户浏览器上看到多用户服务器,请确保在项目设置>插件比;UDP消息传递您的计算机IP和服务器端口有正确的“静态端点”。

3.在云计算中设置一个虚幻的引擎、多用户服务器

链接
https://cdn2-unrealengine-1251447533.file.myqcloud.com/unreal-engine-multi-user-cloud-setup-360515954.pdf


近期焦点
Unreal Fest Shanghai 2024 | 虚幻引擎技术开放日,开票啦!
通过游戏动画示例项目获取500多种免费动画
UOD Awards 2024 作品征集,启动!
虚幻引擎5.4现已发布
GDC 2024:来自State of Unreal的重大新闻
欢迎来到全新的虚幻引擎网站
我们将在四月下旬更新虚幻引擎、Twinmotion和RealityCapture的定价

扫描下方二维码,关注后点击菜单栏按钮“更多内容”并选择“联系我们”获得更多虚幻引擎的授权合作方式和技术支持
长按屏幕选择“识别二维码”关注虚幻引擎
“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。


虚幻引擎
Epic Games 旗下 Unreal Engine 虚幻引擎官方订阅号
 最新文章