欢迎光临散文网 会员登陆 & 注册

Kimmo Kaunela 在 UE5 中试验大型游戏项目的功能

2022-06-02 20:56 作者:CGStaion  | 我要投稿

Planetrism 的首席环境和技术艺术家 Kimmo Kaunela 谈到了在 UE5 中开发大型游戏项目,向我们讲述了他的虚幻引擎之旅,并讨论了虚幻引擎 5 的新混沌载具、流明和程序工具。


介绍

我叫 Kimmo Kaunela,是来自芬兰的技术艺术家。我目前专注于创建环境艺术和各种工具。

10 多年前,我开始了我的游戏艺术冒险之旅,目前我在一个由两人组成的小型团队中负责几个游戏项目,我负责视觉效果。我剩下的时间用于为虚幻引擎市场制作产品和包。【https://www.unrealengine.com/marketplace/en-US/profile/KK+Design】


我的第一个虚幻引擎项目

我使用虚幻引擎的历史可以追溯到很久以前。我在 2013 年左右开始使用 Unreal Development Kit,更广为人知的是 UDK。当时我的大部分项目都主要关注环境艺术,但我也开始更多地了解着色器的工作原理。在那段时间里,我也使用 Unity 进行专业工作,但由于各种工具(如著名的基于节点的材质编辑器)对艺术更友好,我总是对虚幻引擎 3 感到更自在。

在 2016 年初,我开始使用 Unreal Engine 4。这是从 UE3 迈出的一大步,但一些工具仍然与 UDK 的工具相似。照明系统更先进,渲染支持 PBR(基于物理的渲染),我也开始使用新的蓝图系统。

2017 年,我开始从事一个使用虚幻引擎 4 的 VR 游戏项目。我们的团队只有两个强大的开发人员,这意味着我需要更多地专注于技术,而不仅仅是环境艺术。我之前没有任何编程经验,所以我必须开始学习面向对象编程的工作原理,然后将其转化为蓝图。这真的让我不仅仅是一名艺术家,而且我能够开始创建游戏系统,帮助我快速制作各种想法的原型。

我认为蓝图系统是使虚幻引擎如此灵活和有趣的最大因素。它让我可以戴很多帽子,因为我可以创造艺术和简单的游戏机制,而且它并没有像我当时对其他引擎的感觉那样强迫我只做一个角色。很快我就开始意识到我能够使用蓝图并制作不同的关卡设计工具。我之前的环境艺术经验加上我从之前的项目中获得的技术知识,让我能够制作工具来加快关卡的创建。这是一种非常令人上瘾的感觉,因为我能够制作出我一直想在以前的游戏项目中使用的工具。

Epic Games 还在他们自己的游戏中使用了虚幻引擎,这让它感觉像是一个完整的软件包。我认为这是虚幻引擎的另一个优势——它包含许多可以很好地协同工作的原生工具。我可以使用蓝图来驱动材质、灯光和动画,而无需使用任何第三方工具或插件。这使它成为一个强大的系统,我慢慢地发现自己更多地使用这些技术性的东西,而不仅仅是创造艺术。

我在社交媒体上分享了我的一些工作,人们开始问我是否可以分享这些工具。很快我就意识到我可以将这些工具变成一个更通用的工具库,可以帮助其他 UE 用户加速他们的项目。我开始创建 UE Marketplace 包,其中包含具有这些工具的环境。然后,用户还可以编辑这些蓝图并在需要时进行更改。这使它成为一个强大的生态系统,我可以在我的项目中看到一些可以从这些工具中受益的实际用例,然后与其他人共享这些通用工具。


虚幻引擎 5

当我第一次看到 Lumen in the Land of Nanite Unreal Engine 5 技术演示时,我感到很惊讶。它看起来很逼真,灯光是第一个吸引我眼球的东西。UE5 的发布真的是无处可去,我想知道这些新功能是如何工作的。Epic Games 没有分享太多信息,所以用户只能猜测 Lumen 的真正工作原理,Nanite 使用了什么样的魔法等等。这引起了巨大的炒作,人们真的很期待他们可以尝试的那一刻。

我也感到了一些压力,因为我开始思考我在以前的项目中一直使用的所有以前的工作流程如何工作。我看到了 Nanite 的巨大潜力,但同时,我认为我的项目不会真正从中受益,因为我没有使用 Megascans 资产或任何真正受益于该微多边形技术的东西。我开始问一些问题,比如 Nanite 会破坏旧的和现有的网格,新的 Lumen 照明系统有多重,哪些材质技巧可能仍然适用于 Nanite 网格,我还能使用贴花、顶点颜色、平铺材质等等。

幸运的是,Epic Games 在 2021 年夏天发布了 UE5 的第一个抢先体验版本,我终于有机会得到一些问题的答案。幸运的是,我的大部分担心都是多余的。

作为一名艺术家,最终与 Lumen 一起玩耍并测试 Nanite 如何在实践中处理网格感觉很棒,但作为一名游戏开发者,我觉得还有太多的事情仍在进行中和错误。我还注意到虚幻引擎的基本功能(如物理和性能)存在很多问题。其中一些问题在以后的更新中得到了修复,但今天仍然很少存在。同样令人欣慰的是,我仍然能够使用我的大部分旧工作流程,但我也可以在可能的情况下将它们与 Nanite 等新功能混合使用。


项目迁移

我有大约 17 个不同的 UE Marketplace 包需要从 UE4 转移到 UE5。这是一项艰巨的工作,总共需要两个多星期才能完成。除此之外,我需要转移一个更大的游戏项目,但仍然会引起问题。

理论上,如果项目主要包含网格和材质等视觉对象,则可以轻松地将旧项目转移到 UE5。不幸的是,我的大多数项目都复杂得多,这就是我遇到很多问题的原因。

我的过程是这样的,我复制了一个项目,然后在 UE5 中打开它。在此过程中,它会要求将现有项目转换为更新的引擎版本,我通常只选择 Convert in Place 选项。根据项目的大小和系统规格,转换和打开项目可能需要很长时间,因为 Unreal 需要编译大量着色器,生成网格距离场等。之后,我会看看是否有任何 错误,然后我将开始转换旧资产以使用 UE5 系统。

有一些内置工具和插件也可以帮助将旧的网格转换为 Nanite 网格,以及将旧的 Cascade 粒子系统转换为 Niagara 系统。我的经验是,这些工具在 80% 的情况下都可以正常工作,但是具有复杂材料和具有许多发射器的粒子效果的更高级网格可能会导致问题。我相信这些工具会随着时间的推移变得更好,Nanite 也应该得到更新以支持更多的材料类型。

同时,我建议阅读文档并手动更改这些工具在某些情况下无法处理的资产。如果您看到使用默认虚幻引擎棋盘格材质的网格,则很可能该网格已转换为 Nanite 网格,但它使用的是该系统当前不支持的材质。在这些情况下,您应该禁用 Nanite 网格选项。

如果项目包含任何蓝图,那么很可能会有一些关于某些已弃用节点的警告,您应该将其更改为较新的节点。幸运的是,UE5 中的蓝图系统与 UE4 中的蓝图系统几乎相同,因此您不应该遇到错误,但我仍然建议测试一切是否正常。例如,当前的 World Partition 实现可能会在运行时破坏一些蓝图,如果这些蓝图正在使用构造脚本添加子actors。

新的混沌物理引擎也可能带来一些问题。大多数物理特性在 UE5 中自动运行,但您可能需要针对物理约束等调整一些值。如果该项目以前严重依赖于破坏或车辆等 PhysX 功能,那么您需要做更多的手动工作。对于 PhysX 车辆类,您需要启用 Chaos Vehicles 插件,然后重新设置蓝图的父级,替换节点,并为引擎和车轮设置正确的设置。这样车辆就可以使用新的 Chaos Vehicles 类。

除非您在 UE4 项目中使用更复杂的东西,否则光照应该可以在没有任何大的变化的情况下工作。如果您想使用 Lumen,则需要一些东西才能正常工作,例如地图中的天空氛围或类似演员。虚幻引擎文档对这个主题很有帮助。除此之外,您可以继续使用 UE4 中的基本动态或烘焙光照。


Lumen

我的大多数项目都以具有动态昼夜循环的大型环境为特色,因此烘焙照明效果不佳。以前我需要有很多不同的局部后期处理体积,甚至是局部光照来处理不同的光照场景。这远非完美,最终可能会让人感觉像是一个巨大的黑客,会导致各种问题。

对我来说最糟糕的情况是当我需要为包含外部环境和内部区域而没有任何人造光源的后世界末日环境设置照明时。在现实生活中,太阳将是唯一的光源,其间接照明将照亮废弃的内部空间。在这些情况下,我以前需要某种方法来处理间接照明,并且如果没有昂贵的光线追踪,使用动态照明很难获得良好且逼真的效果。

Lumen 是一个巨大的游戏规则改变者。它可以使内部比外部更暗,但也有助于更多地反射阳光。这样一来,灯光就更加生动,而且在游戏玩法方面,它还可以帮助玩家导航,因为明亮的阳光可以说明门窗的位置。一种名为“局部曝光”的新后期处理设置也有助于增强室内照明,以避免区域太暗。Lumen 的另一个优点是反射,它有助于定义材质并确保反射始终与周围环境相匹配。

Lumen 还具有不同的模式,即所谓的软件流明和硬件流明。软件流明更多地依赖于屏幕空间跟踪和距离场,而硬件流明更多地针对三角形进行跟踪,因此它可以支持像角色这样的骨架网格物体。目前该系统存在某些限制,请牢记。它们中的大多数都与 Lumen 的工作方式有关,因此将网格分割成更小的网格是一个很好的做法,这将使距离场和表面缓存更准确。您可以在 Unreal Engine 5 文档中了解更多相关信息。

我认为 Lumen 是 Unreal Engine 5 中对我来说最大的游戏规则改变者。我之前有一些项目在 Unreal Engine 4 中使用烘焙光照,但使用 Lumen,我能够在没有任何烘焙光照的情况下获得良好的效果。照明是决定场景外观的因素,而 Lumen 确实有助于更好地展示网格和材质。在 Lumen 上使用软件版本时仍然存在一些轻微错误和不准确,但我相信 Epic Games 会在未来的引擎更新中解决这个问题。


UE5 中的程序生成器

最终结果可能看起来很复杂,但实际的蓝图逻辑在底层仍然很简单。通常,像 Houdini 这样的程序用于程序生成器,与简单地使用蓝图相比,它还可以提供更多的控制。我个人认为蓝图对于更简单的事情仍然很方便,然后可以根据需要进行扩展。当一切都发生在虚幻引擎中时,它也使工作变得更容易一些,如果需要,您也可以在运行时访问这些函数。

无论工具或语言如何,这些类型的系统通常都有输入,然后会产生一些结果,这些输入可以变化很大,从简单的数字到更艺术的方法。基本的原始形状也可以像球体和盒子一样用作输入。这是找到随机点生成某些东西的好方法。可能没有多少人知道这一点,但样条曲线对于许多工具来说也是很好的输入法。在实践中,所有这些方法都可以一起使用,以加快关卡创建过程的某些部分。

所有使用的方法都内置在虚幻引擎中,因为它们也用于游戏。您可以使用不同的跟踪方法来查找添加实例化网格、演员、声音等的位置。例如,您可以有一个父工具蓝图类,其中包含驱动将网格散布在盒子内的逻辑的所有函数。它可以包含一个结构变量,该结构变量包含不同的变量,这些变量指定它将散布哪些网格、散布的密集程度等等。然后,您可以拥有从该父类继承的子蓝图,它们可以具有不同的结构值。通过这种方式,您可以拥有一个基本的预设系统,其中一个子蓝图可以散布草,另一个可以散布碎片等。然后您可以使用基于样条线的蓝图,将这些子角色沿样条线添加,这样可以轻松地将细节添加到您的地图。

这些程序生成器仍在使用蓝图,但不是在运行时运行函数,而是这些系统将使用构造脚本。每次将actor放置或生成到地图中时,构造脚本基本上都会运行,因此可以在编辑器中使用它们来创建地图并更快地迭代。

另一种方法是使用编辑器事件在编辑器中驱动这些功能并查看最终结果。这样做的可能性有一些限制,并且构造脚本也可能遇到一个问题,即虚幻引擎处理的循环太多。

我将我的工具大致分为三个不同的类别。有些结构蓝图有助于生成建筑物和道路等大型资产,并使用基本输入,例如某物的宽度或长度。然后是基于样条线的蓝图,它们使用用户为其指定的样条线。基于该样条,它可以添加很多东西,如演员、碎片、样条网格、柱子等。最后一类是装饰蓝图,有助于在本地分散东西。通常,这些系统使用简单的对撞机形状来指定添加东西的区域。

一个很好的例子是我在过去几年中一直在创建的建筑系统,慢慢地逐个功能。它可以使用网格库并创建外部和内部、散布家具、添加楼梯、散布植物等东西。一切仍然 100% 使用蓝图。我未来的计划是看看我是否可以将这些系统与虚幻引擎 5 几何工具结合起来,这样系统就可以根据不同的场景自动生成它们,而不是在 UE 之外创建网格。

我可以分享很多关于这些系统的信息,但与此同时,您可以在我的时事通讯中找到有关这些工具的更多信息,并且这些蓝图中的大部分也可以在 Unreal Engine Marketplace 上找到。


使用混沌载具

以前我使用的是 PhysX 车辆类,它工作得很好,但很难让它顺利工作。该系统的另一个问题是它多年来没有得到很多更新,所以不幸的是,一些错误仍然存在。PhysX 载具在与其他物理物体碰撞时可能会出现故障和跳跃,并且在运行时性能下降到某个限制以下时会晃动。

Chaos Vehicles 仍处于测试阶段,但它已经比 PhysX 版本好得多。驾驶起来更加顺畅,即使在某些情况下性能下降,也不会出现太多故障。与旧的 PhysX 版本相比,我还喜欢它提供的更多控制。另一个很酷的事情是 CV 系统可以支持任意数量的车轮,因此可以将其用于自行车等。甚至可以选择使用影响驾驶的扰流板或选择使用更多街机风格的驾驶。

Chaos 车辆系统的工作方式与 PhysX 等效系统几乎相同,并且文档非常好且有用。仍然可以使用动画蓝图,它允许您根据弹簧和轴等轮子移动和旋转底盘下的各个部件。除此之外,您可以简单地判断哪些骨骼将成为轮子,系统将能够从那里开始工作。


在虚幻引擎 5 中设置破坏效果

新的 Chaos Destruction 系统可以产生非常好的结果,它比 Unreal Engine 4 使用的旧 Apex Destruction 系统向前迈出了一大步。尽管如此,大多数时候我只是使用处理破坏的好方法,我只是为不同的网格块启用物理,然后给一些冲动让它们飞走。这看起来仍然很不错,有一个很好的粒子效果来隐藏它的真正工作方式。

我使用了与我为外太空项目所做的破坏相同的方法。当结构受到足够的损坏时,它将触发一个事件,该事件将使用循环设置为网格启用物理,然后生成随机脉冲以将它们设置为远离其原始位置。系统还将为这些网格添加爆炸效果,以稍微隐藏破坏部分。它并不完美,在某些情况下这些碎片会卡住,因为空间中没有太多的重力可以帮助限制这种行为。

我仍然需要更多地了解混沌破坏系统才能将其用于此类事情。我的小型 Chaos Destruction 测试表明,使用该系统可以更好地控制破坏网格,因此我可能会开始更多地使用它。


AI 巡航线

我想在我的外太空项目中增加一些流量,让宇宙飞船在不同的路线上飞行,这样可以让环境看起来更生动。我没有任何导航网格数据可以为宇宙飞船提供一些飞行点。这就是为什么我决定创建一个更假的版本,可以简单地用作后台流量。即使这个系统在伪造流量,我仍然希望对这些船只的飞行方式有足够的控制,以获得更多的有机结果。

交通样条线蓝图将简单地沿着样条线移动这些宇宙飞船角色,但每艘飞船都有自己的速度、偏移和颜色主题数据。这样每艘船都可以以不同的速度和位置飞行,以避免与其他船相撞,并且与其他船相比看起来有点不同。系统将根据将添加的飞船数量随机选择这些值。

即使系统如此简单,它仍然允许我创建从远处看起来相当逼真的美观交通。该系统还包括优化运行时性能的设置,因此它可以简单地使用静态网格,而不是使用宇宙飞船演员。我可能会很快重新审视这个系统并为其实现更多逻辑。


结尾

我真的很想花一些时间使用新的几何工具,看看如何将它们与我的其他蓝图工具一起使用。Chaos Destruction 也是我想更多测试的东西,看看如何安全地破坏东西。

我不得不说,我不喜欢虚幻引擎 5 如此庞大并且包含游戏开发并不真正需要的工具、插件和功能这一事实。我完全理解这种变化的原因以及不同行业如何利用虚幻引擎的所有可能性,但我认为应该有更好的方法来处理这种额外的复杂性。Epic Games 使用虚幻引擎 5 扩展了他们的关注点,涵盖了从游戏到虚拟制作和电影的许多不同用例,不幸的是,这种新的、更大的范围也意味着任何人都应该在基本功能方面存在更多错误和问题制作游戏时相信工作。这就是为什么我希望 Epic Games 更多地关注未来版本的实际 QA 测试,而不仅仅是专注于添加新功能,同时将其余系统保持在实验或 beta 阶段。

因此,我仍在将虚幻引擎 4 用于我目前正在进行的一些游戏项目。我认为虚幻引擎 5 还需要一些时间来成熟一点。希望在此期间,Epic Games 也可以扩大 Nanite 的使用范围并进一步优化 Lumen。

我可以看到虚幻引擎 5 的巨大潜力,在计算机图形方面,它确实翻开了全新的一页。我真的很感激他们为这些新技术所付出的辛勤工作,这些新技术正在拆除以前存在的一些墙壁。想到任何人都可以免费下载这款软件,这有点令人羞愧。回顾那些早期的 UDK/UE3 日子,我仍然可以看到 Epic Games 如何继续其选择的道路,为像我和你这样的艺术家提供更多权力。我们只需要学习如何使用所有这些。


Kimmo Kaunela 在 UE5 中试验大型游戏项目的功能的评论 (共 条)

分享到微博请遵守国家法律