虚幻引擎5.1中的虚拟资产:更加细化、快速的数据同步

2022年12月12日
最近发布的虚幻引擎5.1带来了一项有助于加快和细化数据同步的新功能:虚拟资产。

虚拟资产目前处于测试阶段,它提供了一种从大体积数据中分离结构化数据的方法,使开发者可以在源码控制系统(如Perforce)中只同步他们需要的数据。对于不需要访问对象完整数据的开发者来说,这帮助他们精简了工作空间,加快了同步速度。

在这篇技术博文中,虚幻引擎团队的高级产品经理Grace Yen和虚拟资产首席开发者Paul Chipchase将带你深入了解虚拟资产,你可以评估它们是否适用于你的项目。

虚拟资产能解决什么问题?

在过去几代的游戏开发中,我们发现了一些与项目规模有关的数据趋势,值得关注。除了项目规模越来越大外(为了验证这一点,我们非正式地调查了一些被许可方),许多开发商正在转向游戏即服务(GaaS)模式,在游戏多年的生命周期中持续更新。

我们还看到许多团队正在不断改善更新的交付方式。在构建版本趋于稳定可供发布之前,一些团队选择采用“功能串流”的方式,防止前沿功能对团队中的其他人造成影响。

我们观察到,一些团队成员需要在产品的不同发布线之间完成工作(为即时服务提供支持),或是在不同的模式(分别具有“主要”和“高级”类型的开发工作流)之间完成工作。

这就带来了另一项挑战,团队成员经常看到他们的固态硬盘空间处在被消耗殆尽的边缘,有时他们不得不决定浪费之前付出的精力,取消可能很快就会再次执行的工作流同步,只是为了给当前工作腾出空间。

疫情爆发之前,一些工作室(包括我们)就在同步尺寸和同步时间方面遇到了挑战。我们部署了性能边缘服务器等解决方案,试图为使用者提供更快的接入点。然而在2020年,当我们必须在家工作时,我们开始体验到团队成员的网络连接不稳定,或网络速度相差太大所带来的痛苦。

组建最好的团队有时意味着,团队成员会分布在不同的地方——我们认为这种态势会持续存在。即使是团队成员只在两个地点工作的混合场景,我们也会遇到一个复杂的问题:需要多次同步到按地点分配的硬件。

有了强大的技术,如Nanite(UE5的虚拟化几何体系统,旨在实现像素级细节和高对象计数),我们预计在将来,项目的规模将变得更加庞大。
总之,出于以下原因,同步所占用的时间和空间将越来越多:
  • 项目规模越来越大
  • 游戏的生命周期越来越长,将有更多内容加入其中

这个问题造成的影响将日益加剧,因为:
  • 团队可能需要同步多个工作流,如新功能的发布或实时服务的管理
  • 供应物理硬件(如固态硬盘)的成本变高,难度变大,耗时变长
  • 团队规模越大,工作效率越难提高
  • 混合环境的工作者和远程环境的工作者在同步方面遇到了挑战
  • 开始使用Nanite的团队虽然会得到更高的视觉保真度,但其数据集也会变得更加庞大


Epic如何设计虚拟资产?

我们的虚拟资产解决方案基于这样一种基本理念:你应该只同步你需要的数据,并且可以快速访问稍后需要的其他数据。

它与一些团队可能一直采用的问题解决方式有所不同。许多团队(包括我们)非常擅长教导开发者设置隔夜同步,提前做好计划,尽量减少停机时间。虚拟资产绝不会修改你在这方面的认知。它只是为所有人提供了一种更快、更高效的数据同步方式。当你无法提前做出计划,而尚未更新到最新状态的工作流中又出现了紧急问题时,将发现它尤其有用。

我们评估了我们的包文件(.umap/.uasset),发现有机会削减使用者必须同步的数据量。使用者需要的通常只是资产的部分信息——足以在编辑器中以有意义的方式显示该资产即可。以纹理为例,你可能需要缩略图,以及坐标和比例等编辑器属性。但是UTexture对象中包含的大体积数据只是原始像素数据,你实际上并不需要预先获取它们。在此基础上,我们在后台将这些资产分成了两部分:
  • “结构化数据”将在源码控制系统中取代目前资产的位置。它包含了在编辑器中加载和展现资产所需的一切信息
  • “大体积数据”是你可能不需要的部分,它将被分割并存储到源码控制系统中的一个单独区域
我们开发虚拟资产的一项原则是保留使用者现有的工作流程。团队成员应该能够以同样的方式同步和工作,但体验到更快的速度。通过拆分,并将核心资产元数据保留到原来的源数据位置,使用者可以采用之前的方式同步数据。工具将处理幕后工作,在需要时从新的源数据位置获取大体积数据。为此,你需要与源码控制系统的管理员合作,设立一个单独的位置,并向其赋予与原来源数据位置相同的访问权限。

总结:
  • 我们分割了资产,在源码控制系统的其他位置存储大体积数据
  • 使用者可以按照往常的方式工作,只是同步的将是较小的核心资产元数据片段
  • 在极少数情况下,如果他们需要未取得的大体积数据,可以按需获取它们
 

如何部署虚拟资产?

虚拟资产功能目前处于测试阶段,这意味着,虽然现在是一个做出尝试的不错时间点,但它的形式可能会发生改变,所以在生产项目中请谨慎使用。然而,我们想要强调,它已经足够健壮,从《堡垒之夜》的第22赛季开始,我们就已将它用于生产。

为了帮助团队启用虚拟资产,我们提供了几种模式:
根据项目规模和生产计划,你可能需要尝试不同的方法。例如:
  • 如果你要启动新项目,我们建议你立即尝试启用虚拟资产。
  • 如果你的项目已经全面开展,你或许应该避免在游戏领域或需要大量迭代的资产中使用这项功能——但你可以拿很久没有碰过的大型资产试验一次。
  • 或者,你也可以将目标锁定在尺寸最大的那些资产上,虚拟化这些资产,以便轻松获取它们。

需要考虑的事项:
  • 虽然我们还没有实现“离线工作”模式,但我们已经认识到这是一项有用的功能。我们已将它列入了清单,计划在5.2版本中加入。这就是说,目前,如果用户在断开连接的状态下工作(例如在飞机上),他们将无法使用虚拟资产的完整功能。他们可能会遇到无法为想要编辑的内容检索大体积数据的情况。编辑器应该不会崩溃,但他们需要再次连接,才能获取他们需要的大体积数据。
  • 你的主要数据将被分割。虽然这在生产过程中不会造成问题,但如果你计划在现有的基础架构之外发布游戏内容数据,就确实需要做出额外的考量。在这种情况下,你可以使用独立的UnrealVirtualizationTool将虚拟化的资产恢复成原始形式(这是通过将大体积数据再次存储到包文件中实现的)。
  • 仅当你的用户能够以恰当的连接速度访问共享数据缓存时,这种实现方案才能发挥良好的效果。否则,用户将看到明显的故障,最好提前划出时间和空间完成所有的同步。在下一节中,将对此做出更深入的解释。
  • 目前,我们只支持Perforce源码控制系统。
  • 这项技术仍处于测试阶段。虽然我们已经在内部部署了它,目前也在努力完善它,但对于虚拟资产何时进入“生产就绪”状态,以及将来如何为这项功能提供支持,我们无法做出保证。
 

虚拟资产是否适用于我的项目?

我们无法明确回答虚拟资产能否让你受益,因为其中涉及许多不同的因素。但下面的问题应该可以帮助你确定这是否是一个值得尝试的合适解决方案。同样重要的是,请注意虚拟化不是一条单行道。如果你愿意,始终有机会将任意(或所有)虚拟化数据恢复成原样。
  • 你的团队目前是否遇到了磁盘空间问题,或者你是否预计你的数据会持续增加,并达到产生这种问题的程度?
  • 团队成员是否经常需要同步多个版本的项目,并且版本之间通常会共用大量内容?
  • 你的团队成员能否访问良好共享的派生数据缓存(DDC)?
    • 这个问题另有深意。如果大多数团队成员都能访问共享DDC,但有一些人例外,你可能会在整个项目中使用虚拟资产,但允许某些团队成员选择不使用它。他们在签入时会将资产“逆虚拟化”,但你可以尝试通过执行脚本,自动捕捉并修复这种情况——尽管这要付出搅乱源码控制系统的代价。
 

充分利用虚拟资产的提示

  • 我们建议你研究一下使用虚幻编辑器签入的工作流程。这个过程中会执行一些检查,确保资产在签入后仍处于虚拟化状态。尽管我们提供了一些可在Perforce中运行的工具,用来检查虚拟化的资产,但使用者总有机会绕过这一点,跳过检查。
 

虚拟资产实践

在虚幻引擎中发布功能时,第一批客户通常就是我们自己——俗话说,“吃自己的狗粮”。除了在内部项目和示例项目中启用虚拟资产外,我们还在《堡垒之夜》中引入了这项功能。下面的数字仅作为说明性示例,让你了解我们在《堡垒之夜》中节省的空间和时间。根据游戏中资产类型构成的不同,你的受益大小也会有所不同。例如,我们在“古代山谷”项目(无法代表真正的游戏)中计算了这些数值,由于它大量使用Nanite网格体,我们可以节省50倍的时间和空间。

在《堡垒之夜》中,我们测得的结果如下:

展望未来

在虚幻引擎5.1中,虚拟资产:
  • 能够与Perforce协同工作
  • 支持纹理和音频资产
  • 提供了不同的启用模式(通过资产类型、包路径或全部)
  • 具有通过资产内容的哈希值引用的大体积数据

我们也在关注虚拟资产的许多其他功能,包括:
  • 离线工作模式(提前同步所有数据)
  • 对更多资产类型的支持(如,包括Nanite在内的静态网格体)
  • 对其他源码控制解决方案的支持

以上就是我们带给你的所有内容。希望这篇博客对你有所帮助。如果你想进一步了解虚拟资产,请查看文档

    立即获取虚幻引擎!

    获取全球最开放、最先进的创作工具。
    虚幻引擎包罗万象,并提供完整的源代码访问权限,开箱即用,诚意十足。
    虚幻引擎5.3现已发布!
    新闻
    9月6日

    虚幻引擎5.3现已发布!

    我们不断扩展UE5的功能和潜力,将它提供给游戏开发者和各行各业的创作者。在这个版本中,我们带来了大量全方位的改进以及一些激动人心的实验性新功能。来看看有哪些新功能吧。
    虚幻引擎5.3现已发布!
    新闻

    虚幻引擎5.3现已发布!

    我们不断扩展UE5的功能和潜力,将它提供给游戏开发者和各行各业的创作者。在这个版本中,我们带来了大量全方位的改进以及一些激动人心的实验性新功能。来看看有哪些新功能吧。
    利用Pose Driver Connect在更短时间内创造更逼真的动画 
    新闻
    12月6日

    利用Pose Driver Connect在更短时间内创造更逼真的动画 

    你的踝骨连接着膝盖骨,但你的肩胛骨与锁骨是否也是如此?如果答案是否定的,你可能会对我们的新工具集感兴趣,你可以在Maya中创作次级动画,并利用它在虚幻引擎中精确重现该动画。
    利用Pose Driver Connect在更短时间内创造更逼真的动画 
    新闻

    利用Pose Driver Connect在更短时间内创造更逼真的动画 

    你的踝骨连接着膝盖骨,但你的肩胛骨与锁骨是否也是如此?如果答案是否定的,你可能会对我们的新工具集感兴趣,你可以在Maya中创作次级动画,并利用它在虚幻引擎中精确重现该动画。
    精选免费商城内容 - 2023年12月
    新闻
    12月5日

    精选免费商城内容 - 2023年12月

    本月的精选虚幻商城免费内容来啦! 快来使用这些优秀的新资产创建广袤的森林、精致的维多利亚式住宅或阳光明媚的希腊岛屿。本月还有一个适合格斗游戏的连击缓冲系统,以及在任意场景中构建庞大的NPC人群的方法。快来看看吧!
    精选免费商城内容 - 2023年12月
    新闻

    精选免费商城内容 - 2023年12月

    本月的精选虚幻商城免费内容来啦! 快来使用这些优秀的新资产创建广袤的森林、精致的维多利亚式住宅或阳光明媚的希腊岛屿。本月还有一个适合格斗游戏的连击缓冲系统,以及在任意场景中构建庞大的NPC人群的方法。快来看看吧!