制作赛车游戏

介绍
你好!我们只是两个在这个项目上工作的人。Christian Folkers 是我的兄弟、引擎开发人员、程序员,并且基本上是 Orontes Engine 的幕后推手。我的名字是Thorsten Folkers,我是一名从事车辆设计、关卡和环境艺术的艺术家。我们于 2016 年共同创立了 Orontes Games。
对于声音设计,我们与tekkAudio 的Adam 合作, 他在车辆音频方面做得非常出色。
很难说这个项目是什么时候开始的,因为自 2001 年以来,开发引擎一直是我兄弟的一个副项目。我会说引擎在 2011 年左右开始看起来很有希望,当时已经投入了很多努力,如果不这样做会很遗憾用它。然后我们制定了更进一步的计划,但为了构建一个可用的引擎,我们还需要一个用例。
想到的第一个想法是基于故事的科幻游戏,就像我们这一代的每个人一样,我们喜欢 1998 年的第一款合金装备。当然,这样的事情结果有点不切实际。我们认为保持简单可能是个好主意,但现在我们知道游戏开发中没有“简单”这样的东西。
我们都喜欢有竞争力的多人游戏,而且都是大油锅。我们在 1998 年玩了最初的 Colin McRae Rally,在 1999 年玩了 Gran Turismo 1 和最初的 Rollcage。但是我们想要一些现代的多人竞技游戏。所以我们的想法是开发一款专注于在线游戏的赛车游戏,我们会喜欢自己玩。

2012 年 12 月,从02号站看到的概念艺术作品是这个项目的开端。

station02的概念

造型
我开始为汽车建模——我们的英雄资产——带着这个概念。但是当我们从不同的角度和实际的游戏视角来看 3d 时,它开始分崩离析。在这一点上,您可以按原样完成并希望最好,也可以采取严厉措施并删除大部分内容并重新开始。在这个阶段使用 kitbash 部件是一种跳出框框思考的好方法。您仍然要自己建模所有东西,因为它通常不适合,但它使您能够快速更改内容并查看不同的轮廓。
完成的高多边形网格

查看真实世界的工程而不只是像您认为的那样建模也是一个好主意。特别是对于悬挂部件,我使用了大量参考图像,并且仍然重做了三遍。

对我来说,游戏规则的改变是我前段时间在 GDC 演示中第一次看到的建模技术。他们使用 CAD 数据和Zbrush dynamesh 将其转换为高多边形网格。阿姆斯特丹希尔顿酒店在 Polycount 上很好地解释了使用3ds Max proboolean 而不是 CAD的类似方法。
我在 70% 的汽车上使用了这种 proboolean / dynamesh 方法。我真的很喜欢在高多边形网格上工作,并在 Zbrush 中放置了大量的焊缝。
成品,低多边形 + 法线贴图

紫外线和纹理
对于 UV,我使用了 3ds max 内置工具、roadkill、tex-tools 和Maya 的组合。这是我的工作流程:
3ds Max – 展开、添加外观、快速平面和毛皮、简单打包
Roadkill – 使用 LSCM 并检查拉伸
Maya – 使用 uv_layout 打包 UV
3ds Max – 使用 tex-tools 通过 uv-shells 设置平滑组

纹理是用Quixel Suite完成的。对于主要材料,我从贱金属开始,在上面放了 PVC 层、污垢层和灰尘层。我组装了一个带有不同预配置蒙版的小型材料库,用于不同的应用,例如边缘损坏与表面划痕——或多或少的污垢以及污垢方向。一些用于悬挂部件的材料在顶部有一层油层,并带有预先配置的遮罩。这些材料由垫子 ID 施加。当然,大量的绘画也是必要的。有时表面划痕到处都是。
汽车上的一些贴花是静态的,因此它们已直接添加到 Quixel 中的纹理中。玩家可以更改其他贴花,因此它们是浮动几何体,不包含在纹理中。
这就是游戏中的最终结果。车身颜色、刹车灯颜色和起始编号可以单独设置。您还可以选择汽车后部的小旗代表的国籍。

动画片
关于悬浮动画——它是 3ds Max 中的简单正向运动。转向和悬架运动的完整行程方式被烘焙为现成的线性关键帧动画。
这与网格一起导出,并且在引擎中设置了单独的动画剪辑。一个特殊的辅助点像普通骨骼一样与这些数据一起导出。这个特殊的骨骼在整个动画中跟随轮子。它始终代表每个关键帧的轮毂的最终位置和方向。我们现在通过播放一次动画并记录此辅助点的位置和方向来创建从关键帧到最终轮毂转换的映射。如果您现在反转此映射,您就知道要使用哪个关键帧来获取,假设向左转向 10%。通过这种方式,您可以从物理中获取所需的车轮位置,并从动画数据中设置拟合关键帧。汽车的坚固性和其他物理元素设置在发动机中。

阶段
我开始在 Photoshop 中绘制轨道布局来制作舞台。根据布局在 3ds max 中对轨道进行建模,渲染高度图并将其与World Machine 中的地形相结合。地形与赛道一起变得非常好,但赛道表面附近的一些区域已被 World Machine 侵蚀了很多。所以我把它带进了Zbrush,在赛道附近雕刻了很多中等大小的细节,并调整了一些高度差异。回想起来,我应该在 Zbrush 中做更少的雕刻,而是在重新拓扑后添加中等尺寸的细节。通过首先添加细节,我在地形重新拓扑上花费了更多时间。

然后地形被重新拓扑。我们将轨道表面与地形分开,因为在轨道表面上我们使用两种通过顶点混合的材料。为了获得有趣的表面结构,这些材料有很多变化。但是因为其中的信息太多,我们需要两种材料来打破平铺。如果我们只有一种材料,则平铺将非常明显。
在周围的地形上,我们使用了 3 到 4 种材料,这些材料针对大型应用进行了优化,具有更少的可见平铺。它们通过世界机器的 splat 贴图应用,然后通过在编辑器中绘画来改进。为了隐藏地形与轨道表面相交的多边形边缘,我们使用了一个过渡贴花,它与地形重叠大约一米,并使用与轨道表面相同的材料和 UV。它由顶点 alpha 淡出。在赛道的顶部,我们使用更大的贴花作为轮胎轨迹,并赋予某些区域更多的独特性。
水坑是由可平铺的视差贴花完成的。高度图和顶点颜色信息用于控制水位。所以我们可以有很多小水坑或几个大水坑用相同的材​​料。
对于第二阶段,我使用了稍微不同的方法。我像以前一样绘制了轨道布局,但在 3ds max 中使用了两条样条线来表示轨道表面。一个样条在外面,一个在里面。通过这种方式,我能够尽早规划赛道的宽度变化。在这一点上,我们几乎完成了驾驶物理,所以我能够进行很多试驾。

驾驶
我们建立了一个适当的 4 悬架物理模拟汽车高度逼真。
通过这种方式,您可以像真正的拉力赛车一样出现转向不足/转向过度的情况。这辆车是全轮驱动的,前后功率分配为 20-80,重量平衡为 50/50。玩家在刹车或加速时会经历重量转移,这可能导致起飞过度转向。如果您要快速行驶并在中角急刹车,您会遇到转向不足,就像在真正的汽车中一样。作为赛车手,您可以充分利用所有这些效果。我们设置了汽车,使其在过度转向方面具有完美的平衡,但因为它是一辆赛车,所以您不会有像牵引力控制或防滑调节 (ASR) 这样的电子助手。回到 B 组拉力赛的黄金时代,它只是关于你和机器。
“如果一切似乎都在控制之中,那么你的速度还不够快。” ——马里奥·安德雷蒂

在 alpha 测试期间,我们意识到当您是一名经验丰富的车手时,这会非常有趣,但请放心——我们建造了更宽的赛道作为第二阶段,您可以在那里看到大部分弯道。因此,您可以专注于学习如何驾驶。我们目前处于封闭测试阶段,并将于 2018 年初将 DRAG 引入 Steam 抢先体验。

返回首页

作者 lll

发表评论