全部资源
  • 全部资源
  • - 交通工具
  • - 动物昆虫
  • - 场景模型
  • - 建筑模型
  • - 植物模型
  • - 武器模型
  • - 独家资源库
  • - 科幻模型
  • - 角色动画库
  • - 角色模型
  • 知识干货

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库
  

泰坦空间站项目

随着Starbreeze/Overkill因《行尸走肉》发布失败而陷入困境,我产生了制作自己的游戏的想法。我能做些什么?我喜欢哪些类型的游戏?我曾经玩过并享受了《回家》、《火塔》和《塔科马》这样的游戏——也许我也能制作出类似的游戏?

我一直是一个多才多艺的人,所以编程、构思故事、编写对话、艺术设计、灯光效果等工作都让我感到兴奋——这到底有多难呢?最初的计划是制作一个非常简单且短小的游戏。但随着项目的推进,游戏的规模和内容超出了我最初的预期。

我想要讲述的故事和我所设想的范围让我决定采用科幻设定。我一直对复古科幻情有独钟,那种在现代科幻作品中常见的“浮动透明魔法屏幕”出现之前的科幻。因此,从《异形》、《2001太空漫游》和《星球大战》中汲取灵感是再合适不过的了。游戏《异形:隔离》的复古未来主义设计也给了我很大的启发。将所有这些元素与60至80年代的室内设计风格相结合——下沉式休息室、地毯覆盖的地板、鲜明的色彩、色彩线条——这就是泰坦空间站的设计理念。

选择虚幻引擎

我第一次接触虚幻引擎是在虚幻引擎3的时代。那时,我就被这个引擎的强大功能、稳定性和完善的体系结构深深吸引。在我多年的游戏开发生涯中,我还没有遇到过比它更优秀的引擎。

虚幻引擎最大的优势之一是它在各个方面都有详尽的文档。遇到问题?谷歌一下——很可能已经有人解决了相同的问题。不理解某个系统或功能如何工作?查阅文档,或者去YouTube上找找。还有疑问?打开示例关卡看看别人是怎么做的。

另一个重要因素是蓝图——虚幻引擎的视觉脚本/编程语言。泰坦空间站就是使用蓝图构建的。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

蓝图提供的自由度是惊人的。突然之间,我发现自己能够独立完成许多工作。尽管在项目开始时我还不会使用蓝图,但它相对容易上手和学习。虚幻引擎的文档完善,这也是一个巨大的优势。

对UE5的看法

我对虚幻引擎5中最激动人心的功能是Lumen。传统的烘焙全局照明需要大量的工作,包括制作光照贴图、等待烘焙完成以及迭代优化。虽然GPU烘焙器确实有所帮助,但Lumen无疑会进一步提高效率。

Nanite同样令人兴奋,但在本项目中,我从未遇到过多边形数量的问题,尽管我为大多数模型添加了倒角,以避免花费时间在烘焙上。此外,我在这个项目中也没有使用LODs(细节层次)。

创建游戏世界

我的总体生产策略是,在百分之百确定某个资源会被使用之前,不会进行任何正式或最终的制作。这一原则适用于所有内容——艺术、音效、蓝图等。在很长一段时间里,游戏场景仅仅是彩色的盒子和基础网格。这需要极大的自制力,但最终证明是值得的。我可以轻松快速地丢弃并重新制作任何内容。

游戏中的大多数资源都是手动放置的,但我确实使用了一些分组技巧,以便于更快捷、更方便地进行操作。从一开始,我就知道我需要制作一套套件,以便独自一人构建这个空间站,我认为每个资源至少会被使用两次。它们大多是模块化的套件,大多数时候能够很好地拼接在一起(虽然并非总是如此)。

我还利用了编辑器小工具。这些简单的脚本可以替换资源、向资源添加内容,或者统计使用了多少灯光等。这非常实用,我将在未来的项目中大量使用它们。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

如果有机会重新开始,我肯定会使用带有构造脚本或编辑器小工具的蓝图来生成资源的放置等。

所有的3D工作都是在Maya中完成的,一些布料模拟等工作则是在Blender中完成的。至于泰坦的地表,我使用了调整和优化过的Megascans资源。一位担任角色艺术家的朋友负责制作了角色和第一人称视角的手/臂模型。

游戏玩法

最初的设想是完全没有游戏玩法。基本上,玩家只需通过无线电、电脑和拾取阅读的物品来跟随故事。听起来很疯狂,对吧?但在像《亲爱的艾斯特》这样的游戏中,这种设计已经得到了实践。

我觉得击败成群的敌人很少能让我感到兴奋,这通常会妨碍到游戏中更深层次的体验——话虽如此,我确实喜欢《狼enstein:新秩序》和2016年的《DOOM》。回顾像《生化奇兵:无限》这样的游戏,我记忆中最深刻的不是无休止的杀戮,而是那些故事性的瞬间和我所访问过的地方。当我重玩游戏时,我只想跳过所有的射击环节。

游戏玩法有时也会显得生硬,像是“好吧,我们需要在这里加入一些游戏元素。”这往往感觉不协调,与故事或世界观不符。

最终,我确实加入了一些游戏元素,因为它们与故事和世界观相契合。当你进入网络空间时,你需要连接盒子并混合它们。每次进入网络空间,挑战都会略有增加或有所不同。

在游戏测试中,我发现玩家很快就会对重复相同的动作感到厌烦,这并不令人意外。因此,我削减了很多内容,确保每个谜题都足够不同,当你解决了所有谜题后,你将学到一些用于“击败最终boss”的技巧。

设置照明

从艺术角度出发,我希望照明效果从暗到明,避免平淡无奇。下面的图片展示了这一点。你处在空间站的暗部,可以看到从外部流入的光线,但在远处,你看到了更明亮的区域。

我希望有夸张的雾和烟效果,并且想在空间站内部走动时,能够望向外部,看到土星和通往泰坦的电梯。

从技术角度来看,这促使我选择了静态烘焙照明解决方案,以便实现全局照明。这并非没有挑战。雾和照明系统原本是为地面使用设计的,具有地平线和天空——而不是太空。要让它在太空环境中工作,需要大量的调整和创新。

静态和固定光源不会为体积照明投射光束。它们会被烘焙到体积光贴图中,在大范围内效果不错,但对于小范围,如电缆投射光束,这就不切实际了。

我使用可移动光源仅用于光束效果,调整它以尽可能少地影响到其他物体,以避免产生过于尖锐的阴影,并尽量减少性能损耗。同一位置的静态光源也用于渲染全局照明和柔和阴影。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

当我厌倦了等待静态光源使用CPU光质烘焙时,我开始探索虚幻引擎中的GPU烘焙——我发现虚幻引擎将支持GPU光质。一旦它可用,我立即开始使用,它为我节省了大量时间。

GPU光质在烘焙时限制了256个静态/固定光源。这听起来可能不是问题,但对于我正在制作的整个空间站来说,这确实是个挑战,因为空间站由多个部分组成,而且只有一级变化,即前往泰坦。在这种情况下,256盏灯的限制就显得有些吃力。解决方案是尽可能使用自发光材质,并用可移动光源补充体积照明。

对于某些自发光材质,我准备了两个版本的设置和纹理。一个用于烘焙,一个用于游戏运行时。通过材质集合参数来切换使用哪一个。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

GPU光质的另一个挑战是几何体可能会阻挡光线。例如,望向空间站外部的窗户不应该投射阴影,以免阻挡来自太阳的光线。它必须是独立的网格,且“投射阴影”选项未勾选。这适用于任何你想在几何体后方烘焙光线的情况,要么像上面那样处理,要么进行材质集合交换。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

为了更好地控制体积照明,我制作了一些简单的材质,并在我想要增加体积照明的网格上使用它们。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

启用了虚拟纹理(VT)后,我可以实时调整灯光,并观察它们的调整效果。当我放置了“最终”照明后,我关闭了VT,因为它在加载纹理时会导致过多的视觉闪烁。

当你在游戏中下降到泰坦时,那里正发生一场风暴,非常尘土飞扬和多风。我想创造一个环境,让你在努力寻找前进方向的同时,不会感到烦恼。

为了保持良好的帧率,我使用了高密度的体积光贴图来烘焙照明。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

然后,我通过这种材料发射了大量粒子,这种材料与我用来控制体积雾的类似,营造出了这种烟熏/尘土的感觉。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

组装游戏

空间站在设计、布局等方面经历了多次变化。在很长一段时间里,玩家甚至不会看到实际的空间站,而是向外望去,只能看到土星。后来,我制作了一个部分,玩家可以走到外面,看到空间站的一小部分。

最后,我做出了艰难的决定:我必须实际建造一个空间站,并将其所有内部结构适配进去。这在各个方面都是一项艰巨的挑战。现在看着它“完成”的样子,一切都显得那么理所当然,但我想当你看到问题的解决方案时,总会有这样的感觉。

泰坦的表面也是一个挑战,它经历了许多迭代。最初,它基本上是一个小营地,你爬上一个小山丘,开始一个塔。然后它变成了一个相当大的环境,你需要驾驶一辆车四处走动,启动塔并与无线电通话。我喜欢这个想法。但这并非没有挑战。你可以在这段时间里谈论什么,比如让驾驶变得足够有趣等等。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

这也是一个范围问题。制作一辆可驾驶的酷炫科幻汽车,配上声音和一个驾驶世界。我制作了一个你四处驾驶的环境,一辆你驾驶的方块车,制作了对话等等,但最终,要将这些内容推向最终质量,所需的时间太长了,而且在某些方面拖延得太久了,我无法将我想要的故事元素融入其中。我不得不削减它。

我对最终泰坦表面的结果感到满意,那里发生的事情以及最终的结果都是最好的。游戏中的网络空间谜题部分也经历了许多迭代。我唯一知道的是它将看起来如何,以及你在那里做的事情必须向玩家传达。玩家必须通过连接盒子并将它们混合到正确的值/颜色来解锁计算机以解锁系统。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

简而言之,你可以用彩色盒子建造并与其他彩色盒子混合,并将它们连接到门户。

技术解决方案基本上是一堆碰撞盒。当你构建一个立方体时,这个立方体会检查其周围的碰撞并相应地做出反应。听起来很简单,但要正确地实现这一点并改变到正确的颜色/值却很难。性能也是一个问题。每帧检查每个盒子的状态会容易得多,但最终要检查的盒子太多了。相反,所有这些都是通过在创建时进行碰撞检查来完成的。

总的来说,为了节省性能,我在整个游戏中不使用每帧/定时器——只有非常少的东西在每帧/定时器上运行。通常可以找到一些变通方法,让事情通过碰撞触发。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

CRT终端

我知道我想要游戏中的电脑使用CRT屏幕。这最适合复古科幻的感觉。在虚幻引擎中,有办法将界面带入游戏世界,但我想要一个圆润的表面,并通过键盘/控制器输入,而不是在屏幕上点击。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

我的方法是制作一个带有相机和小部件的蓝图。相机将小部件渲染到渲染目标上,然后将其用于屏幕上。为了获得类似CRT的感觉,相机对渲染进行泛光处理。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

与计算机交互时,小部件会覆盖输入。这在小部件图中设置,功能,覆盖。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

这绝对是一个混乱的工作,要正确地工作。我不得不定义每个菜单的行为,无论是键盘还是控制器。这只是巨大意大利面的一小部分:

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

我还做了一件事,有点“老派”的技巧——为了获得CRT光泄漏/散射在更亮区域周围的效果。我拿了渲染目标,得到了一个较低的mip,并在这个mipmapped版本的顶部添加了渲染目标。在渲染目标纹理中,我启用了mip生成。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

拾取物品

拾取一个物品涉及很多工作。首先,你必须从玩家的视角发射一条射线,检查射线击中了什么,如果它击中了你可以拾取的东西,并且它在范围内:显示“拾取图标”。如果不是,隐藏图标。

其他主要部分:

  • 玩家拾取物品的地方是非常暗还是非常亮吗?
  • 这个物品是否给玩家提供了一个密码?
  • …渲染文本,例如一张便条?
  • …玩家能够旋转物品?
  • …有一个事件触发?
  • …角色或其他人说什么?
  • …它发出声音?什么声音?

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

我制作了一个可以根据标志和参数定制的蓝图,并用于玩家拾取和检查的几乎所有物品。由于我希望照明是烘焙的,我最初拾取世界中物品的解决方案是在一个渲染目标中渲染拾取物品的版本,并使用小部件在屏幕上显示它。

这是通过与物体交互 > 告诉一个带有相机和静态网格的蓝图更改当前网格为我想看的网格并开始录制来完成的。这个解决方案有效,主要的缺点是性能成本,物体的边缘可能会有点锯齿状,物体没有与玩家站立的地方相匹配的照明。

这些缺点让我想出了另一个解决方案——只是将物体移至玩家面前。或者更确切地说,隐藏静态物体,并显示你检查的物品的相同网格或另一个网格。

缺点:

  • 玩家拾取物品的区域的照明可能不适合查看物品。
  • 在将物体从起始位置移动到检查位置时,可能会穿过其他网格。

独立开发者利用虚幻引擎打造独立游戏《泰坦空间站》次世代模型库

最后,我选择了两种解决方案,因为每个你拾取和检查的物品都有自己的要求。主要使用非渲染目标解决方案,但在非常明亮的区域,我有一个支持光用于非常暗的区域,但我不能真的让物体变暗,除非我使用渲染目标解决方案。

声音和音乐

对于配音,我和艺术一样,通过使用AI生成的声音,然后再与真实的配音演员录制。AI声音已经相当不错了——不像真正的那么好,但绝对足够好,可以判断对话是否有效。

游戏中有很多对话,如果与配音演员迭代,将是时间上的噩梦。尽管如此,将所有内容录制并设置在引擎中仍然是巨大的工作量,我最终还是进行了一些重录和重写,但使用AI声音进行几次初步尝试绝对是正确的方法。

声音也是一个挑战,我以前从未做过任何声音工作。音乐更是如此,我想要一个更管弦乐的基调,因为这更符合复古科幻的基调。音乐和声音都是购买的,主要来自UE市场。对我来说,音乐和图像的主要区别在于,我可以看一张图片2秒钟并做出判断——音乐和声音需要听很多遍。这需要时间,很多时间。所以,虽然我一直在工作,我一直在听很多符合游戏的音乐,甚至更多不符合的音乐。

标签

评论