大世界游戏制作:《幽灵行动·荒野》 编程技术概论

来源:优游网责编:网络时间:2024-10-05 12:21:56

地址:https://zhuanlan.zhihu.com/p/164857684

这次给大家带来的是《幽灵行动·荒野》项目的大世界制作技术,分为四章。

最大的挑战

巨大的开放世界最大的挑战不仅是地形本身,还有多样化的生物群落(11种)。每个生物群落必须有匹配的特定景观、植被、岩石、建筑物等。

基本上,我们必须从头开始构建管道和工具,因为这是一个开放的世界,因为它与自然景观息息相关,而且地形非常重要。

最初,我们使用静态网格模型来创建地形,1平方公里的地形网格(带有LOD)。

基于World Machine制作的高度图,我们有一个Houdini进程来自动平铺地形并生成相应的LOD,但是从Houdini到编辑器的来回过程需要大量的维护工作,非常棘手且不可行完全灵活。当时除了Benoit 之外没有人使用Houdini,所以他是唯一一个可以迭代的人。

很明显,这在生产阶段行不通,因此我们决定专注于开发自定义地形编辑器。在功能需求上,我们希望能够直接在编辑器中进行任意尺度的雕刻,能够雕刻山体的整体结构(宏观),能够调整小地形细节(微观)。最初,地形高度图的分辨率为1 像素25 厘米,但有时感觉精度太高。这是一个非常大的数据量,因为对撞机和导航网格也需要相同的精度。我们确定高度图分辨率为1 像素50 厘米(即一米所需的高度图的两个像素),而且由于我们还有硬件曲面细分,这已经足够了。

地形只是第一步,接下来还需要填充美术资源。这个过程可能需要很多牛逼的艺术家才能完成。出于多种原因(成本原因),我们不想增加团队规模。大型团队通常需要非常详细的分工。我们是一个小团队,我们知道如何一起工作,我们的流程非常敏捷,我们希望继续保持这一点。这就是为什么我们决定在Houdini 上投入更多资金来开发编程/自动化工具。

就艺术资源生产而言,关键在于如何平衡三个要素:团队——时间——工具。通常,您无法控制项目的开发时间,因为它是给定的。在我们的案例中,我们决定使用工具来提高生产力,而不是增加团队规模(艺术家数量)。在巴黎,我们从未有过超过15 级的艺术家来创作所有资产和世界建筑。

使用程序工具

自《幽灵行动:未来战士》 以来,我们一直在尝试编程方法。我制作的第一个工具只是为了帮助艺术家放置电线。艺术家导出一条曲线,然后调整参数以在几秒钟内生成电线杆和电线。

第一个houdini工具

然后,我们将这种程序逻辑进一步推进到地形编辑过程中,在该过程中,我们自动生成道路、添加细节并生成UV,并同时相应地匹配凹陷地形。

我们很快意识到,程序化方法不仅有助于摆脱繁琐的任务,而且还节省了时间。艺术家能够专注于品质,并有更多的时间来提升自己。

使用Houdini,我们能够重新定义工具创建过程。 Houdini 的学习曲线陡峭,但并不像您想象的那么困难。 Houdini 在网上提供了大量信息,如果您认真对待它,您可以在短短几个月内开始创建自己的工具。自从我开始学习Houdini 的那天起,我更多地是在艺术家方面而不是技术方面。它完全重新定义了我处理艺术资产的方式。

地图规模

大世界游戏制作:《幽灵行动·荒野》 编程技术概论

首先,我们和全国各地的4支球队一起去玻利维亚呆了几周。研究建筑、景观和植被对我们来说非常重要。我们拍摄了大约15,000 张照片和15 小时的视频。在整个制作过程中,我们依靠这个数据库来创建我们的工具并设计世界,以确保一切都是一致和真实的。

到目前为止,我们还没有与外界讨论任何关于世界规模的问题,因为我们希望玩家在没有比较或期望的情况下进行探索。我们认为这与尺寸没有任何关系。它更多的是关于您可以实现的多样性和细节的丰富性。但它仍然是育碧有史以来建造的最大的动作冒险世界,你可能需要几个小时才能遍历整个地图。

我们开始使用现实世界的位置数据进行原型设计。对于前几次测试,我们只是简单地获取了真实的高程文件,并在World Machine 中对它们进行了精炼和细化。

就真实感而言,效果不错,但缺乏多样性。

获取高程数据很容易,但我们缺乏良好的工具来编辑和组合它们。在Photoshop 中编辑16 位和32 位灰度图像非常麻烦,当时的任何其他应用程序(包括World Machine)也是如此。最后,我们从头开始在World Machine 中使用噪声和腐蚀。这并不容易,但我们试图找到增加编辑控制的方法,以便我们可以设计我们想要的地形。在最终的地图中,没有什么是随机的。每条河流、每一座山都有其存在的理由。整个设计、生产过程都有章可循。

我们想要获得从最高的山脉到下面的丛林的雨水侵蚀的效果。这是一个巨大的模拟计算量。在一台计算机上以这种分辨率(64k x 64k)计算如此大的地形是不可能的。

我们必须在World Machine 上进行一些定制开发。我们要求WorldMachine 开发人员Stephen Schmitt 进行一些额外的开发。他向平铺渲染系统添加了一个额外的变量接口,以便与用C# 编写的专用渲染场一起使用。

我们最终尝试了World Machine,并每3 天在80 台计算机上运行计算。

由于成本原因,这些瓷砖之间的访问受到限制,因此另一个挑战是确保不同机器之间的侵蚀一致。为了解决这个问题,我们首先在一台机器上以较低的分辨率渲染大面积的侵蚀土地,然后使用Tile 系统在渲染农场中分布微侵蚀和其他昂贵的细节。它解决了90% 的块接缝问题。但当时的WorldMachine版本还不是100%完美。

我们使用Houdini 来做很多不同的事情。

自动向地形添加其他细节,例如道路和河流。根据规则自动放置物体(贴花、森林、建筑物等)。创建特定的艺术资源。这是自动组合并生成建筑物的工具的示例。

该工具仅用于快速组装一些通用的建筑资源。不需要太多细节,因此该工具可以很好地工作。它可以帮助您组合门窗尺寸、窗户和地板高度等并匹配UV,并且会生成一些多边形条带以帮助混合墙壁/地板交叉点上的一些污垢。然后手动添加所有细节(窗户、门、支撑)。

建筑+工具(Houdini)

对于村庄布局,我们采取了完整的程序化方法。

这个想法是帮助艺术家让他们有足够的控制力来实现有趣的图形分布、多样性和美丽的生活环境。这为他们节省了足够的时间来手动添加详细信息。

无论程序生成的质量如何,它都不是完美的,并且需要艺术家干预。您是如何解决的?

我们完全同意。我们学到的是不要过多谈论程序化,因为每个人都认为“程序化”就像一个神奇的按钮,按下它就会得到无聊的结果。对于编程,我们更多地认为它是一种辅助艺术家解放生产力的工具,让他们有足够的掌控力来构建一个完整的世界。对于每一个特定的工具,我们都与专门的艺术家密切合作。他决定该工具如何运作、他需要什么以及他希望它如何工作。关键是能够大规模构建并节省时间。然后,通过节省时间,我们可以专注于细节并提高质量,因为这是程序化无法做到的。在使用编程和手动之间还需要取得平衡。在某些情况下,我们需要完全手动控制,我们将完全手动指定某些位置,无需任何工具。我们可能想将Boss 放置在村庄内的某个位置,然后我们可以使用程序工具在其周围创建一个村庄。

大世界游戏制作:《幽灵行动·荒野》 编程技术概论

程序和手动不能很好地结合起来。当您开始以编程方式进行手动更改时,必须锁定它。如果您不这样做,下次更新时您将丢失所有手动调整。当然,我们有一些解决方法,但这不是一件简单的事情。在大多数情况下,我的建议是在继续手动工作之前锁定编程数据;或者设置编程构建将绕过的手动区域。

最后,哪些需要编程,哪些需要手动完成并不重要。主要取决于项目、团队、艺术家的喜好等因素。

如何管理一个大型项目

我们有4 位Houdini 艺术家(包括Benoit)。我们在制作过程中学到了很多东西。我们最终使用Houdini 超出了我的预期。

我们了解到,构建(很多)工具会改变您的生产节奏

左:正常生产。右:工具开发(平坦)和新内容量(陡峭)

传统的大规模生产过程是线性的。您拥有一支从第一天起就制作资产并构建关卡/世界的团队。

当您决定专注于工具时,您将经历一些停滞期。这并不容易,因为有时你不知道需要多长时间。但是,当该工具准备就绪后,您可以在短短几天内推送新的内容量。最终,这将导致比仅靠蛮力实现更快的生产和更多的要处理的内容。

这正是地形、河流、道路、铁路、森林、定居点、矿山等的制作过程所展示的。我们的每一层资源内容都是一步步叠加的,整个世界就是这样一层层叠加内容创造出来的。

Houdini 团队中的每个人都使用一些特定的工具:

Guillaume 适用于所有后端,并确保Houdini 管道可靠且高效。他专门从事与渲染农场相关的分布式计算。埃尔文主要负责道路和村庄配送。 Twan 负责建筑工具、河流、田野、音效工具、游戏玩法等。Benoit 设法保持这些工具的流程健康高效地运行,并在研究植被、岩石、贴花和电线的同时推动建筑的使用。

当您开始使用Houdini 创建场景时,您可能犯的最大错误就是试图在一个工具中完成这一切。一项功能任务对应一种工具,维护更加方便。最困难的部分是需要正确定义每个工具的输入和输出,以便工具可以引用彼此的数据。

例如,桥接工具可以单独使用。但是当我们使用铁路工具时,我们还可以使用它在需要的地方自动放置桥梁。

利用Houdini的优势

Houdini 是一个工具箱。无论您生产什么产品,无论大小,Houdini 都可以为您提供帮助。您可以使用它来自动执行任务、创建内容并帮助艺术家(或声音设计师和游戏程序员)。它既灵活又强大。

Houdini本身很有价值,但不得不提一下Houdini-Engine。基本上,它是您可以集成到主机应用程序中的Houdini 核心API。在我们的例子中,我们确实将Houdini-Engine 集成到内部编辑器中。这意味着您可以在Houdini 中创建任何艺术家都可以直接在编辑器中使用的工具。以下是它创建现成工具的速度的示例:

胡迪尼帮助我们将思维拓展到艺术层面之外。我们对所取得的成就感到非常满意,并且很高兴我们能够在此基础上再接再厉。

用户评论

念安я

作为第一次体验《幽灵行动·荒野》,我觉得这游戏的程序化技术真是太酷了,每一关都是全新的挑战。

    有14位网友表示赞同!

∞◆暯小萱◆

这款游戏利用程序化技术创造的世界感觉是无限大的,每一次冒险都像在探索新的地图一样精彩。

    有10位网友表示赞同!

玩味

《幽灵行动·荒野》中的程序化设计让我感到非常震撼,它真的让游戏世界变得无比真实和独特。

    有8位网友表示赞同!

有阳光还感觉冷

借助程序化技术,《幽灵行动·荒野》的场景和任务始终给我带来新鲜感,玩家可以轻松沉浸在这个无限广阔的游戏中。

    有20位网友表示赞同!

喜欢梅西

《幽灵行动·荒野》使用了最先进的程序化技术,每次进入新地区都像是在发现一个新的世界一样令我兴奋不已。

    有6位网友表示赞同!

心安i

对于《幽灵行动·荒野》,程序化生成的地形和敌人给游戏带来了难以预测的挑战性和惊喜感,让人始终充满期待。

    有10位网友表示赞同!

陌然淺笑

《幽灵行动·荒野》通过程序化技术实现的动态天气系统让整个游戏体验更加真实自然,每个场景都充满了动态变化的效果。

    有10位网友表示赞同!

枫无痕

在《幽灵行动·荒野》,你可以在程序化的任务和环境里自由探索,这种独特性为我带来了无尽的游戏新意。

    有15位网友表示赞同!

浅嫣婉语

不得不说,《幽灵行动·荒野》的场景设计真是别出心裁,每一步都像是进入了另一个奇妙的世界,游戏中的小细节也非常精致。

    有12位网友表示赞同!

安好如初

玩《幽灵行动·荒野》,每次遇到的任务都是独一无二的,由程序化技术生成的内容让人感觉非常新奇和充满探索感。

    有16位网友表示赞同!

没过试用期的爱~

这款游戏利用程序化技术构建出了一个庞大的开放世界,每当我试图了解它的全貌时,总能发现新的亮点和秘密区域。

    有13位网友表示赞同!

你身上有刺,别扎我

《幽灵行动·荒野》中的每个任务都是根据程序化算法自动生成的,这使得游戏充满了不可预测性,总是让玩家充满期待。

    有6位网友表示赞同!

水波映月

对于细节控来说,《幽灵行动·荒野》用程序化技术带来的丰富场景和动态效果,让人对这个世界充满了探索的动力和热情。

    有13位网友表示赞同!

志平

《幽灵行动·荒野》采用的程序化结构为游戏注入了无限的新意,并且在每一个细节上都展现出了高度的创造力和技术投入。

    有5位网友表示赞同!

﹎℡默默的爱

在玩《幽灵行动·荒野》的时候发现,每进入一个新的环境或区域都感觉像是在探索未知星球一样,全靠程序化赋予了这种神秘感。

    有10位网友表示赞同!

枫无痕

这款游戏通过使用程序化技术保证了每个玩家的游戏体验都是独一无二的,在不同操作下呈现出来的游戏世界始终保持着新鲜感。

    有15位网友表示赞同!

红尘滚滚

《幽灵行动·荒野》的场景构建和任务设计都充分展现了程序化技术支持下的游戏创新,这让每一次玩都会有新的收获和惊喜。

    有15位网友表示赞同!

瑾澜

对《幽灵行动·荒野》的第一印象是技术与创意的完美结合,每一个关卡和环境都是那么的独特且富有挑战性,激发了我对游戏的好奇心。

    有10位网友表示赞同!

猜你喜欢
最新游戏更多
热门专题更多
最新资讯更多