建筑架构

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

以模块化方式构建站点可以让我们顺利更新和传播内容更新,这是确保我们没有花几个小时更新个别网格、纹理、零件等内容的关键。

Roblox 包让我们实现这种模块化设计,让我们包装一组Meshparts容易匹配的调色板、修边集和 SurfaceAppearance 节点,这些节点可以由 MeshParts 共分享。这让我们在早期游戏测试期间适应布局和尺寸的变化,并使填充站的过程变得更快。

Architecture Overview

灵活的设计到最终艺术

当我们第一次开始时,我们没有完全理解我们想要在车站中做什么,或者需要多大才能容纳 50 名玩家。

为了找到答案,我们首先使用 Parts 来构建环境,然后导入一些网格,例如来自我们外部 DCC 应用程序的圆形网格,例如 Maya 或 Blender。通过这些简单的形状,我们调整了地图的缩放、房间的布置和路径,以找到最有趣的安排。无论是为游戏还是社交体验,这个早期往往是最动态的。

当建造车站的布局时,驱动探索的最重要的事情是给用户一个目标。在这种情况下,最显而易见的目标是仔细观察黑洞。接下来,我们知道给他们一个直接通往黑洞的路径会很无聊,因为玩家可以直接从生成到地图末端走。我们打破了路径,因此玩家无法先绕过去看到可能吸引他们的其他东西,然后才能到达黑洞。

模块化设计允许我们在不改变整体设计的情况下对环境进行这样的更改。我们可以将整个车站的部分搬到一边,与不同的游戏理念进行玩耍。最终,这些相同的模块部件可以使用包裹进行更新,这样我们就不需要重新构建相同资产的多个版本。

Architecture Example 1 Architecture Example 2 Architecture Example 3 Architecture Example 4

Kerr-Newman DSR-14 模块化设计

空间站只使用了一小堆模块化调色板零件。模块化调色板零件是可重复使用的资产,这意味着我们不需要独立地创建每个墙壁,而是可以组合几个较小的墙壁。这允许在我们建造时在布局上有一定的灵活性。

以下是一些帮助我们创建模块化设计的提示:

  • 在统一网格尺寸上落户 — 对于站点,我们选择了 16 格网格尺寸来创建大部分模块集。你使用的网格大小是随意的,但应该在整个项目和所有工作于该项目的艺术家中保持一致。在项目开始时设置网格大小可确保每个部分都与旁边的部分很好地匹配。它还允许你轻松交换零件,例如交换墙部分为门部分。

  • 所有单位都导入为螺柱 — 在其他 DCC 应用程序中创建网格时,例如 Maya 或 Blender,Studio 不会将米、厘米、英尺或英寸转换为单位 — 它只是用同一单位在螺柱中替换进来的单位。例如,如果您将单位设置为米,Studio将2米转换为2格。最好将你的单位缩放在你选择的应用程序中视为 Roblox 中的螺柱缩放。Roblox 中单个螺柱的最接近的实世尺寸为 28 厘米。

  • 保持零件简单 — 不要尝试构建每一件你认为会需要的零件。想法是有一些非常灵活的部件,而不是很多一次性的部件。你拥有的零件越多,创建每个零件所需的时间越长,对你的整体内存和性能预算的影响越大。如果它绝对需要,你总是可以添加另一部分到你的套件中。

  • 使用包装 — 将每个模块部件转换为包装,并在开始填充体验之前将材料放入包装。这可以让你轻松地向所有实例推送更新。我们稍后会深入包裹。

以下截图显示了我们使用模块化设计来构建车站的各种方式。

Architecture Example 5 Architecture Example 6 Architecture Example 7 Architecture Example 8

创建修边单张

1:1 纹理是未来的方式,但它们在内存预算和创创建 or 创作时间方面变得昂贵。对于空间站,90%的建筑元素使用了一堆可交换的修边单元集,这是一组纹理地图,布置在垂直或横向方式。每个表单行或列都有独特的外观,让你在解开模型时有很多不同的表面处理可供选择,同时使用一个图像单元。

这里有一些关于制作折页的提示:

  • 开始使用包含您需要类型对象和材料的物品库 — 修剪表可包含大量不同的材料类型,例如木材、金属、橡胶和更多。在开始模型你的第一个对象之前,创建一个边缘模板模板。这是所有其他修剪单元集的起点,并为您提供快速的起点以解开模型。这些修剪表生活在 SurfaceAppearance 节点内,我们稍后会涵盖。

  • 在一张表中包含各种表面处理方式 — 这可以让你保留更多的网格在一起,因此你可以应用新的治疗而不需要将网格分解为多个网格。这有助于提高运行时性能,减少对对象和材料的绘制调用。

  • 制作修剪表模板 — 一个模板可确保您可以交换任何地图集为另一个。例如,你可以用生锈金属设置与干净金属设置交换。

这是我们如何为站创建修边表的方法:

我们创建了一个粗略的表格外观:

Trim Sheet Example

在 Photoshop 中,我们创建了一个模型来获得每个减字段的粗略外观的快速想法。

Trim Section Example

我们使用了物质,但你可以使用任何适合你的应用程序来创建最终地图。这是在 Substance 中生成的最后一组修边纸地图。所有四个地图在表面外观节点中合作生成物理基础渲染(PBR)材料。

以下是 Substance Designer 内部的修剪表的最终渲染:

以下是使用于各种对象的同一修剪表的示例:

Modular Trim Sheets

如果您想了解更多关于裁剪纸板UV映射的信息,只需在网上搜索该主题;网上有很多很棒的教程。

应用表面外观

SurfaceAppearance 允许您为 MeshParts 指定新的纹理输入到我们的物理基础渲染系统,并允许您覆盖包含颜色地图、金属地图、粗糙地图和普通地图的网格的外观。它还利用了 Roblox 使用的新动态立方体地图系统,用于反射材料,例如铬。例如,以下是一个带有 SurfaceAppearance 应用的网格与没有它的网格旁边的图像侧面图:

Surface Appearance Example

使用表面外观时,请记住以下提示:

  • 如果您的修剪地图包含透明度信息,将 AlphaMode 从重叠更改为透明。
  • 表面外观不能与零件工作,因为它们没有需要应用地图的 UV 信息。零件使用世界对齐投影,取代 UV 信息。MeshParts 通常在 Maya、3ds Max 或 Blender 等其他应用程序中创建,包含 UV 解开信息。

要应用 SurfaceAppearance :

  1. 单击 MeshPart 或文件夹名称的末尾,然后搜索 SurfaceAppearance 。添加一个将覆盖任何你已应用的砖块颜色、颜色、材料和纹理ID。

  2. SurfaceAppearance节点重命名为独一无二的东西,并添加_SA后缀以便于搜索。在这个例子中,我们使用了 Metal_Trim_A_SA .

  3. 导入修边单张地图,从 资产管理器 面板复制ID,并粘贴到属性面板的相应位置。以下是 Metal_Trim_A_SA 节点与所有地图ID插入并应用到门上的样子。

Surface Appearance Example 2

通过包提高效率

包可以让你在 Roblox 体验期间创建对象实例,因此更新你对包的更新将发布到该包的所有实例。我们使用了包来将几乎所有放入车站的对象,因此如果需要进行调整,我们就不必追踪每个放置位置。例如,我们使用了超过 1,000 个包裹的墙面实例,并能够通过修改包裹来立即发布更新。

使用包时,请遵循以下提示:

PackageLink 中启用自动更新功能。所有修改都适用于启用时包装的所有使用,节省了您使用“全部更新”精选能的步骤。

Packages Example

您可以使用包为 SurfaceAppearance 对象创建“材料库”。这允许您在一个 SurfaceAppearance 对象中修改比图并将它们发布到每个使用它的对象上。以下截图显示了在演示期间使用的主材料。如果我们需要修改地图,我们只需要更新主材料并重新发布包裹即可。

Packages Example 2