在虚幻引擎 5 中构建开放世界 【Unreal Fest 2022 直播节选】
Game艺视界原创文章原创 15332 0
实名

通过了实名认证的内容创造者

发布于 2023-4-28 15:28:54

您需要 登录 才可以下载或查看,没有账号?注册

x
本期笔记内容现在让我们来看看开放世界的概况!
首先要讨论的是所有工具的总体情况,当你在创造大型开放世界时你将需要使用所有这些工具

c4a6ef7a34b1725896e0b15f72bdb70c.png

世界分区

现在世界分区是一个自动数据管理和基于距离的关卡流系统,它允许你将你的世界网格化
然后根据用户在世界的位置在其中的内容中流化那些特定的网格部分,每个Actor都有一个文件,这样做的目的是帮助在从事同一项目的人员之间产生重叠。很多人都知道当你在制作一个虚幻项目时你会有一个你映射文件也就是关卡文件。这可能会成为生产瓶颈,当你有多个美工在一个庞大的世界中工作时一次只能签出一个美工的映射文件这就产生了瓶颈
每个Actor一个文件有助于缓解这些问题,因为它允许项目中的每个Actor基本上都成为一个文件。如果你有那个方向灯那个方向灯现在是一个你能检入和检出强制的文件所以你能检入和检出源代码控制,这是针对所有将被放置在关卡中的内容

HLod
是一个层次化的细节级别。这让你能够处理你的整个世界烘焙,他们是一个新版本的几何图形在远处,就像我说的新几何新纹理或者你可以把它们合并在一起瞬间变成静态网格并通过编程的方式为大家完成
它的作用是帮助那些非常非常非常远的物体看起来仍然像它们应该的样子,但你不需要大量的内存开销来绘制所有这些物体将以编程的方式为大家完成
虚拟阴影
虚拟阴影它们允许你在你的场景内部做什么?
它们允许你得到非常非常棒的很远的阴影或者你得到非常非常神奇的阴影非常非常接近物体。如果你观察一个虚拟引擎的影子,注意当你有一个物体时它有一个影子投射在上面,当你仔细观察那个物体时你知道会有一些阴影锯齿或者阴影不会像你想要的那样精确。再多的阴影锐化或阴影偏差过滤也无法将这些阴影恢复到它们漂亮清晰的状态。虚拟阴影映射帮助生成虚拟阴影而不是阴影映射,虚拟阴影有助于缓解这些问题。因为它能在非常近的地方给你非常非常漂亮的阴影但也能在很远很远的地方给你阴影

关卡

仍然与我们以前的关卡工作流程相似,你以前无法在一个关卡内生成多个关卡,所以你可以通过设置关卡实例来设置你的项目,这样你的每一栋建筑,或者每一辆车辆或者,不管你在世界上要建造什么,你可以有一个作为基础的关卡,然后你可以把其他关卡放在上面,开始把这些东西组合在一起,构建这些巨大的、开放的世界,不一定要由一个单一的关卡实例构建
这是非常非常强大的因为这意味着你可以进入并修改一个领域的内容然后让它扩展到你的整个内容管道

数据层

现在 数据层是WorldPartition中的一个系统 用于组织数据但是关于数据层很酷的一点是 您既可以在编辑器内部使用它们作为管理数据的方式也可以在正在运行的项目内部使用它们来打开和关闭东西,《黑客帝国觉醒》演示版便是一个很好的例子。所有建筑的顶部都是数据层 所以当游戏在Xbox和P-SFour上运行时 它们可以被关闭因为这是他们无法真正维护的一点额外数据。但我们想要确保我们的体验在多个平台上是相同的得到数据层 它们允许我们标记不同的数据 把它放在那个层上,然后我们可以把它们用作编辑器内部的组织层或者是一种帮助一次性降低复杂性的方法

虚拟纹理
现在虚拟纹理在开放世界工具的意义上,只需要当你想要建立你的迷你地图开放世界工具,将为你提供一个迷你地图为了让它被画出来你需要启用虚拟纹理,但是在大规模的开放世界中使用虚拟纹理的一大好处是当你去画一个物体时即使你只能看到那个特定物体的一个像素用旧的渲染风格你必须渲染所有与之相关的内容
假设我们正在建造一个巨大的山脉对吧!我们只能看到山脉的一个像素,剩下的部分恰好包含在别的东西里。在我们的旧系统中没有使用虚拟纹理,我们必须绘制整个对象 引入虚拟纹理 并允许我们将物体分成四部分。现在我们只需要画一个小像素,现在这是一个很大的过度简化 但这是它的优点之一它允许我们有更多的内容,但只画我们在任何给定时间真正需要看到的内容

Nanite
虽然你不需要使用Nanite去建造这些巨大的开放世界,但nanite确实有帮助因为它可以与虚拟纹理和虚拟阴影地图一起工作它真的会帮助提高质量,对吧使用Nanite真的可以帮助我们获得这些非常非常梦幻的场景有很多深度和很多真实感,这就是我们把所有这些工具放在一起的结果我们有黑客帝国觉醒演示版里的那种市中心城市

542aba5ca3b026eebabc674aeb24af98.png

让我们继续讨论开放世界模板
首先启用流在世界分区下,你可以检查是否启用



我们讨论了开放世界和空的开放世界,两者的主要区别一个是完全空旷和开放的世界,这与世界分区启用一个文件生产者启用的数据层细节的层次,这个地形大约是2乘2公里,上面有一种特殊的风景材料,室外的照明已经设置好了。它有天空大气、天窗、定向光、指数高度雾和体积云所以基本上这个模板包含了你开始工作所需的所有内容,按照你想要的方式填充一个关卡或构建它,您仍然可以通过例如:导入自定义高度地图并只是放置Actor来处理景观,这只是意味着 您需要启用的所有额外的小选项都已经启用并为您设置好了


设置是这里的一个关键词,因为网格它是主要的东西输入和输出的主要方式,当你第一次打开它的时候可能会有点难理解。我这么说是因为这里的细胞大小是25600,这是256m对吧!因为我是真正的厘米所以这有时会让人有点困惑,基本上这个网格所做的就是假设我们的单元大约是256平方米,每个细胞都是你在这里看到的这些小白线


我们也可以在编辑器中看到这些回到编辑器 然后点击预览网格


单元格实际上有一个加载和卸载的距离,默认情况下你的单元格大小是256米 到了768米 信息就会开始消失或变冷,所有这些都是由所谓的流源自动处理的



流源同时帮助输入和输出一系列单元格或者那些在编辑器上弹出的小窗口基本上就是你们看到的这些小白盒(上图)它会开始输入和输出内容


流媒体是由两件事决定的它是由你的播放器控制器决定的或者有一个额外的流源,你可以看到 如果你把它添加到这里,这是世界分区流源假设你将玩家从你世界的某个地方传送到世界的另一个地方这种瞬间传输发生得非常快。所以一旦你把那个人带到那里你就希望内容能被显示出来,你不会想让这个人走到那一步然后突然之间内容开始大量涌现这就是这个流源组件所做的
我们要做的是这是我们的世界分区流源,我们可以将它添加到玩家控制器中这是默认值,它应该添加到玩家控制器中用于使用蓝图第三人称蓝图模板,它已经有了这个设置所以我们不需要将它添加到我们的玩家控制器中我现在给你看这个以防你需要知道怎么用,有两种方法可以使我们像你们一样,既不将它作为组件添加到这里,也不将它内置到我们的播放器控制器中。将请求启用流媒体源应该被激活 运行时网格应该叫做我们可以在这里看到它叫什么


主网格名字


我们现在要讲的是网格的流网格中的流或者是两个基元件来装载它们周围的单元格,当你实际浏览你的世界时。你会看到这里最后一张幻灯片我会给你看这个调试命令它会告诉你什么正在加载什么正在挂起加载 什么正在挂起被终止


我们要更深入地讨论一下这些工具第一个是世界分割,现在它被分成两部分我们有世界分区编辑器,然后你可以看到这里这又是一个流网格的图像对吧!因为我们在这里看到的单个细胞(图左)实际上是在这个图像中流入和流出的,所以我们在这里(图右)看到的数据这里的屏格和这里的屏格是相关的,我们在世界分区中看到的


小地图生成


关卡实例但这并不是典型的关卡感知风格,就像你拥有一个关卡然后创造所有这些对象的实例,我们在这个例子中谈论的关卡实例涉及两件事,第一我们如何在不污染我们的“世界大纲视图”(World Outliner)的情况下将一堆资产组合在一起


我的意思说我们看看这些石头,有很多对吧!这是我有一个文件夹是的 我知道这是一个文件夹 但里面有很多东西而且它一直在继续


可以看到我卸载了一些东西,那么我怎样才能减少这些东西使它更容易管理一些东西呢?我可以通过关卡实例或封装的关卡角色来做到这一点这两者之间有很大的不同



创建关卡实例,这将在您需要打包更改的内容时使用,所以在两周内我们所有建筑的所有基地都是关卡实例,我们可以在其他关卡实例中生成这些关卡实例。你现在可以做很多以前不可能做的嵌套,你可以用它们来做一些事情,比如你也可以有世界上同一关卡的多个实例。再说一次这对unrellingenFord来说是不可能的,你的世界中只有一个关卡实例所以创建关卡实例的用例就像一个兴趣点可能是一座房子或者是某种类型的玩法资产设置
所以你有一些资产的集合也许还有一些蓝图代码的集合,它们将这些资产包提供给关卡角色 或者抱歉关卡实例主要用于在你的项目的整个生命周期中需要动态或更新的东西或者你的项目在播放过程中拥挤的关卡Actor略有不同,它们所做的就是将你拥有的任何对象替换为该对象的即时静态网格版本,它们纯粹是为了让程序运行得更快
在黑客帝国觉醒的演示版本中,他们使用了所有建筑和所有建筑立面的关卡Actor而在古代山谷演示版本中,他们使用了关卡实例因为有些东西实际上需要随着游戏玩法进行更新,这两个关卡实例的主要区别是当我们想要有一些随着游戏变化的内容时也许是一栋大楼爆炸了也许它是当用户在关卡中达到某个目标时更新的内容而当我们想要加速某件事时便会出现拥挤的关卡Actor它很快就出现在我的编辑器上



我看看这里有一堆这样的石头对吧!我按shifte有37个对吧我知道这37个都不会移动,它们只会被用作地面上的东西,我能做的就是来到这里右键点击关卡创建一个包装好的关卡角色,我们要把它放在中间的盒子里





只要按 OK 我们就会看到新地图



我要去保存我的蓝图


你可以看到它在这里转换了


如果我们看我的文件夹里面 这是我的这就是它


你基本上可以看到一个蓝图 但每一个都是一个即时静态网格组件,你基本上可以看到一个蓝图但每一个都是一个即时静态网格组件


我可以做的另一件很酷的事情是我可以去编辑


注意我的世界变灰了但我仍然能看到这些资产


我门可以在这里复制一份然后移动出去,完成之后我们就可以提交它,它将要做的是更新这个,但它将为我在世界各地放置的许多实例进行更新


如果我回到这里我看一下在这里再加一个然后按住alt可以复制很多个。我们可以随时添加修改


另一件很酷的事是我也可以打破它,所以如果我想的话我可以把它拆开,假设我把它放下我想用它作为模板开始做其他的事情。我可以把它分解开始添加一些东西,然后在之前分解的东西的基础上再做一个新的。所以我可以不断地打破增加或调整,我并不是真的在用一种特定的方式或者为一组特定的资产使用它



我想花点时间讲一个文件启动器 因为它的工作方式和你们习惯的有很大不同它还会生成大量文件,因为记住每个参与者一个文件字面上意味着我的项目中的每个参与者都将有一个文件,我放一个LOD点进去它就是一个文件,我放了一个静态网格这是一个文件,我放了一个骷髅任务这是一个文件新蓝图它是一个文件对吧!我在硬盘上看到的文件和编辑器里面看到的文件是一对一的。这将使你的作用力这是一个有点不同的流程,您将通过编辑器进行大量的签入和签出操作,我提到这个的另一个原因是每个角色一个文件如果你注意到这里要启用它我们去实验工具然后启用每个角色一个文件
我提到这个的另一个原因是,每个角色一个文件如果你注意到这里要启用它我们去实验工具 然后启用每个角色一个文件它还处于实验阶段的原因是,这只会在你使用OpenWorld WorldPartition工具和所有其他随模板而来的东西时起作用,这就是为什么我在模板上如此努力,因为有些东西在外面是不能用的比如分区工具之类的,所以你必须把所有这些结合起来 才能得到所有东西的好处
你可以看到在我们的世界设置中我们可以使用外部参与者 这将在整个世界中实现
如果我们在包装模式下查看细节我们可以有外部的或者相信没有



数据层数据层实际上是我最喜欢使用的东西之一 ,因为数据层打开了层工作流就像你期望的那样期望层在你内部工作,在数据层内部我要来到这里我的编辑器


新建数据层








选择并创建图层,然后重新命名、可以很容易地打开或关闭它们关于这些数据层的另一件很酷的事情是 我实际上可以同时打开和关闭它们也可以使用它们来管理跨多个平台运行的项目的性能


下一个我要讲的工具是HLOD
HLOD在开放世界模板中的作用和你想象的有很大不同,通常情况下如果我们在这里计算HLOD,你会启用分层的L-O-D轮廓线



因为对于HLOD只要到这里就可以构建


我要新建一个叫做HLOD层,然后打开


所以我们有了incensing,它只会拿走那里的任何东西,用一个实例替换掉。然后我们有一个合并的网格,它会把所有的东西都取下来然后全部合并。然后我们有了简化网格和近似网格。因此,简化的网格将用一组全新的几何图形和材质来代替它,然后近似网格将做同样的事情,这只适用于nanite对象,或者其中有很多顶点的对象



最酷的是我可以有一个这样的L-O-D层,我可以给河边石头或树叶、我可以有一个屋顶我几乎可以用它来做任何我想做的事然后我可以控制,让我们看看我是否喜欢简化的网格共享,这里有我的代理设置和合并材料 所以我可以控制所有我想要的设置,所以我不再需要在整个映射中应用HLOD设置,我现在可以让很多人按照我想要的方式建造东西


你可以把它设置为你在所有的叶子上使用insensing


但是假设你有一个由一堆相同的静态网格部件组成的建筑,你可以把它设为meshmerrge 这样它就会合并所有的东西,比方说你发现也许网格对远距离物体的处理不够好它们需要大幅减少这样我们就可以在远处看到这些物体


取而代之的是我们可以简化它们的网格,然后在这里在我们的代理下我们基本上可以改变生成度量的复杂程度


然后在材料下面我们可以决定用什么材料,我们需要粗糙度图吗?还是只需要一个常数参数就可以了,现在来构建这个我从来没有在这台电脑上构建过所以我不打算尝试


我们只是来到这里建造我们的Hlod,不过最酷的事情之一是它是一个启用的多核进程。所以内核越多构建的速度就越快它在构造HLOD方面做得非常非常好,最好的部分是一旦你用HLOD层资产设置好了一切你就可以构建了,这就是你要做的你只是重建你不必为此担心





虚拟纹理和虚拟阴影
这两件事并不是使开放世界运转的必要条件,但它们将帮助内容运行得更快一点在多个平台上运行得更好一点,虚拟纹理是做迷你地图所需要的,但那是你唯一需要的东西 除非你在你的项目中使用虚拟纹理虚拟阴影贴图将会工作得很好



我放大了这一小部分基本上是为了向你们展示,新的阴影系统相对于虚拟阴影的优势。还有一个关于虚拟阴影的东西我们会得到就像屋顶瓦片一样,注意到它们每一块瓦片都有一点影子因为光线的方式而反射回来,我们永远无法用我们旧的影子系统看到这些信息很简单,因为我们没有足够的分辨率,没有足够的分辨率来显示这种类型的详细阴影信息 在运行时甚至接近可接受的性能很多时候使用开放世界工具并不一定需要虚拟阴影 但所有这些东西放在一起将会有所帮助


另一个是Nanite所以nanite就是我们的虚拟几何,这将使您的项目运行得非常快并且包含大量的细节,我们点击一个这些小石头都是Neonite网。我们看一下这是一个999000个三角形,或者基本上是在一场静态比赛中构建虚拟战斗机所需的所有三角形,在我看来,这很酷



我们讨论了开放世界工具的概述,只是简单讲了一下这个工具在你的项目中可以做什么然后我们讨论了开放世界模板 以及为什么应该使用该模板好吧 它已经为你的成功设置好了 所以不要对抗模板在任何时候都要使用模板然后我们讨论了每个开放世界工具及其功能然后开放世界调试命令
↓↓↓【关联文章】
UE5开放世界功能 | 如何设置它们?|世界分区、多人协作、数据层、关卡实例


Unreal Fest 2022 直播节选
[micxp_wxonkey]wxv_2648683567346188291[/micxp_wxonkey]【转UE官方Unreal Fest 2022 直播节选】
https://youtu.be/FeWtslAEtyc
好!本期笔记分享就到这里,我们下期见!

微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表