整个过程的开始需要多次迭代和快速测试,使房子既有趣又可怕,易于探索,也是你想要迷失其中的东西。我们将向您展示我们如何思考空间,并使用 包装 将其构建,以便更快地更新个人椅子和整个房间。

以 2D 布局开始
由于房屋是可玩区域的大部分和整个角色本身,我们想要花很多时间考虑如何确保它既真实又有趣。我们开始时认为房屋应包含多个视觉和音频梗、传说和损坏的谜室,我们希望玩家初始接触房屋时对发生的事情知之甚少,学习房屋和住在那里的家庭发生了什么。
为了平衡这些重要元素,我们开始想象 3D 环境以 2D 布局!首先确定一般的 故事节点 或关键时刻,我们希望玩家体验,我们绘制了空间布局,思考我们如何引导玩家到我们想要的地方,同时保持一种感觉比生活更大的环境。

一旦我们完成了整体布局的早期草稿,我们就使用了 地形 来快速布置周围的山丘、湖、道路和驾驶室到房子。我们在这一点上没有关注演示的视觉质量,但专注于需要多长时间才能到达房屋,以及需要多长时间才能让玩家获得房屋和天空中的事件的瞥见。

使用简单的 零件 以及 创建者商店 资产,我们能够快速添加有助于我们组合环境的内容,包括:
- 使道路弯曲,使玩家无法看到整条道路的长度。
- 添加拥有更密集区域的树,以便我们清楚地说明玩家无法访1) 使用权 2)通行证 3)访问权限,以及更薄的区域,以便我们鼓励他们探索。
- 将房子的道路升高,当玩家靠近时,他们必须攀爬上去。这给了房子更可怕的存在感。
- 将巨型事件放在天空中的风暴后面,以便玩家可以看到零件,但不是整件事,直到他们接近房屋本身。
- 放置并确定最终我们选择的房屋的总体形状。
没有任何经验可以保证你的第一个想法是最好的。这就是我们为什么要快速将资产移至工作室,并使用简单的零件和创作者商店资产来填充环境的原因。这允许我们不必在前面制定一切,我们可以在第一几天内开始游戏测试。

虽然我们最终想要替换临时资产使用我们自拥有的资产,但我们在早期关心的唯一事情就是搞清楚基础知识,并玩体验来确保环境足够有趣,以至于玩家愿意探索。

规划每个房间
外观只是为了尝试整个故事的味道,让玩家熟悉他们正在玩的世界。主角是房屋本身,我们希望玩家在其中花费大部分游戏时间布置水管以发现秘密并发现每个房间的惊喜。为了做到这一点,我们需要确定房屋应包含哪些房间,当我们希望玩家陷入其中时,它们应该存在在房屋内的哪里。我们绘制了房屋的 2D 布局,团队围绕着发生可能的酷炫事物提出了一些想法。在这一点上没有被忽略的想法。

我们使用了每个房间的 2D 盒子来确定我们想如何与之相互安排。每个房间都应该是做些什么的机会,我们扔了很多想法,包括每个房间的主要用途,我们可以用什么吓人的笑话来惊讶玩家,以及他们可能面临的潜在难题。


每个房间都必须协作,我们想慢慢地、逐步地讲述故事。我们知道我们不能控制谁先去哪里,所以我们计划了一些更难的谜题离前门更远,更难被发现。这意味着为房屋添加一些楼层,包括用于游戏和主题的阁楼和地下室。地下室里看起来邪恶可怕的最后一个谜题?请注册我们!


构建 3D 布局
世界上所有的早期规划和想法都不能让人产生乐体验,所以是时候开始制作 3D 想法了!外部布局已被封锁,我们为房屋的扩展或紧缩腾出了空间。最早的迭代在另一个 3D 应用程序中完成,我们可以制作简单的盒子和形状来开始将 2D 图像转换为可玩的空间。您可能发现在 Studio 中构建早期版本和使用简单零件是您最喜欢的方法。没有错误的方法,只要你能快速将想法转换为 3D 并可玩性,就好了!



随着工作变得更复杂,没有什么变得更容易,因此对我们来说很重要地经常进行实验,找出我们想要创建 or 创作建的环境结构。房屋的最早期迭代与您上面看到的图像相同简单,简单的形状允许我们尽可能灵活地进行更改,并快速更改房间的大小,因为我们在演示中游戏。早期的缩放也很重要,所以我们总是在我们的 3D 应用程序和 Studio 内建造虚拟形象,以便我们知道门应该有多大或步骤应该有多高。


我们经历了许多小和大的迭代来确定我们在最终演示中拥有的内容。将上面的早期草稿与房屋的较晚版本进行比较,你会看到我们在游玩房屋后做出的许多原始决定仍然能够留下!

家具和道具
我们需要大量的家具和道具来填充这个尺寸的房子,所以在开始灰色盒子任何内容之前,我们制作了一个文档来跟踪我们可以使用的所有内容,这将补充房子的类型和我们正在创建的谜题。通过将我们所有的想法集中到一个地方,我们可以组织、优先级和看到我们在不同房间可以重复使用内容的地方。虽然这是一定程度的预先规划,但它可以避免我们制作不足内容或太多不必要的物品。

这个列表给了我们一个很好的理解,当灰色拳击出内容并将其遍布房屋时,需要优先考虑的事情。通过提前添加高优先级内容,我们可以轻松地看到资产是否重复、比例不正确,或者当它们处于某些房间时是否需要第二个变体或纹理替换。我们在早期阻止的一些内容最终没有对体验产生重要影响,但由于它们只是快速屏蔽,我们在过程中没有损失很多工作。对于我们保留的所有家具和道具,我们在它们的屏蔽阶段将它们转换为 包装,这使我们更容易地将房屋内的所有东西替换为最终版本。


由于此演示需要的资产数量巨大,我们尽可能多地重复使用纹理对于保持我们的内存预算非常重要。很多家具共享相同的木材、金属、石头、玻璃和织物花纹,我们尽可能地使用了透明纹理。例如,我们使用透明纹理为织物,这样我们就可以无需创建第二个反射纹理就能获得颜色变化。了解有关如何重用纹理的更多信息,请参阅规划、重用和预算。




照片测量
我们知道我们需要比我们有时间建造自己的内容要多得多,因此我们决定通过使用来自 创意共同体 (CC0) 的照相测量来加快制作高质量内容的过程。 照相测量 是将数百张物体的图像从每个角度捕获,以创建高质量模型精确比例的过程,Creative Commons模型主要是免费模型,通常具有教育性质,你可以使用并/或合法分享。这些模型可以从手模型资产到由光学成像制作的资产,在这个过程中与它们合作,使我们能够跳过创建详细高分辨率模型所需的耗时步骤。
我们为家庭创建的背景故事将他们描述为“怪异收集者”,在幽灵中泡泡。他们从世界各地收集了文物,我们希望房子充满东西来反映那个故事。我们能够从 CC0博物馆内容 中获取扫描数据,用于像 古董、雕像 和 标本 这样的模型,然后开始优化它们为 Studio 所需的 UV 映射、重排和纹理工作。


UV 映射 是将 3D 模型的网格展开并将 2D 图像投射到其上的 3D 建模过程。“U”和“V”分别代表 2D 纹理的轴因为 “X”、“Y” 和“Z”分别代表 3D 模型的轴。UV在扫描时倾向于自动化,而且倾向于为游戏开发目的不好完成。例如,某些照相测量模型的 UV 可能看起来像一堆单个飞机,但当创作者被限制在 10,000 个边顶点时,移动体验的性能最差。有时我们会幸运地获得扫描数据,但大多数时候我们需要更新或完全重做这些二维纹理坐标的目的是体验。

此外,模型的大多数网格只包含模型初始扫描时将灯光信息烘烤到网格中的渗透纹理。虽然这可能有助于用作网格纹理的基础,但仍需要手动清理,在那里我们需要画出光和阴影。如果网格有强烈的定向照明,它可能在世界照明不匹配的地方看起来奇怪。为了解决这个问题,我们必须重新创建大多数 PBR 纹理,以便能够使用我们从 CC0 博物馆内容中使用的模型。


物理基础渲染 (基于物理的渲染) 是指使用更准确地模拟和表达实际世界中的材料和照明来使用现实阴影和照明的概念。创建 PBR 纹理时,对我们来说很重要,即使没有或很少的照明信息被烘烤到 反射率 纹理中,因为工作室的引擎计算这一点是基于图像照明 (IBL),除了使用纹理的 正常 , 粗糙度 和 金属性 表面值来正确代表真实世界的材料。相比之下,稀释纹理可能会将这些个别地图的部分或全部细节融入到一个纹理中,这对于你可能需要稀释纹理单独承担这些细节而不需要IBL或其他个别PBR纹理的帮助来说是有用的。当你决定是否保留渗透纹理或创建自己的 PBR 纹理时,考虑你自己的设计或内存预算限制对你自己的体验有何意义。
我们使用的扫描数据的网格通常都很不错,但有些网格需要清理。例如,有些网格存在需要填充的问题孔、需要平滑的锯齿边或需要加粗的薄边。为了这个过程,我们使用了 Zbrush 来编辑扫描数据。


这个过程并不完美,但通过清理高分辨率模型,就可以显著地自动或手动重构模型的网格。 重新顶层化 是修改3D模型边缘分布和结构的过程,对于我们的目的来说,重新顶层化可以在创建低分辨率版本高分辨率模型时制作更好的纹理。低分辨率模型在性能上明显更容易,尤其是在移动设备上,而且仍保留网格和纹理的高分辨率细节。
对于手动或自动重排,您可以使用任何您选择的 3D 应用程序。我们选择使用 3DS Max 手动重新顶层化,并使用 Zbrush 自动重新顶层化,使用 Zremesher 或淘汰工具。The Zremesher 工具允许我们自动重排网格以维持需要更高垂直计数来保持形状的四角形,而 淘汰工具 允许我们自动重排使用更低垂直计数的三角形,仍然能够保持形状。




无论我们为我们的模型/网格选择自动路径,我们可能需要进行一些清理,因为自动重排极大地依赖高分辨率网格、它是如何构建的以及其算法。我们倾向于选择三角形网格路径,因为它更重要于我们在保持原始形状的同时拥有更低的顶点数量。



完成了将网格重新顶部化以新的 UV 的过程后,我们需要然后烘烤并转移高分辨率网格细节和纹理。 Marmoset 使制作网格地图和将高分辨率模型的任何原始纹理转移到低分辨率过程变得容易,但您可能会发现其他 3D 应用程序中的其他工作流程和方法对您更有效。无论使用哪种工具,在烘焙模型时,确保高分辨率模型上的任何原始纹理都被分配给模型。





在我们在 质量画家 完成了我们的反射率、普通、金属和粗糙度 PBR 纹理后,我们的新资产已准备好导入工作室!扫描数据资产与重新顶层化的资产,但最终资产只有 1,000 个垂直而不是 1,000,000 个时,这是值得牺牲的交易。它还保持了我们的内存预算完好无损,并允许体验顺利运行。




使用包装
包装 是一个允许您存储和使用单个对象或一组对象的版本的系统,当您更新该版本时,它会一次更新该对象或组的所有实例。例如,如果你制作了一个树对象并将数百个该对象放置在你的体验中,你只需要更新包裹,以便数百个树一次更新到你的新版本。我们很早就知道,我们将有 两个状态 的房屋大多数房间的正常状态和损坏状态,我们需要维护房屋和其内容的两个副本在整个迭代过程中,并且需要在整个迭代过程中维护房屋和其内容。因此,我们决定哪些对象需要在每个房屋状态中共享,并将它们转换为包裹。

包裹允许我们修改从墙壁面板上的木饰到整个房间的一切,然后两个房间状态都会更新我们的更改。我们还能将 SurfaceAppearance 对象转换为包,这样我们就可以一次在整个体验过程中更新材料的外观。重复使用材料对于使演示对设备尽可能高效是至关重要的,尽管它具有明显的复杂性。
例如,以下图像显示了一个复杂的子集资产组合包,包括我们在演示中使用的金属表面外观包,包括一个复杂的子集资产组合包。无论我们在哪里更新了金属表面外观包,我们也可以执行一次 大规模更新,该大规模更新将强制武器模型包也更新子表面外观包。



了解有关如何将单个对象或一组对象,例如 Models 或 Folders 转换为包裹,或如何选择包裹的创建者进行编辑1) 使用权 2)通行证 3)访问权限,请参阅 包裹 。我们选择将 Vistech 演示组指定为我们所有包的创建者,因为它允许我们组内的每个人随时访问和编辑包,当他们需要时。它还允许我们在群组拥有的每个体验之间共享这些包裹!

我们将父包(例如上面的齿轮或整个房间)设置为自动更新,以便模型或文件夹的更改自动在该包的所有实例上共享,而无需手动检查。这个过程意味着我们可以顺利创建每个房间的正常和损坏状态的更改。例如,以下两张图显示了通过 同 包创建的研究的正常和损坏状态。只有少数几件物品在他们的包之外是不同的,即使考虑到损坏状态是斜着的!


而不是完全在体验与相同位置的文件中工作,我们构建了一个包含所有组件的资产存储位置,其中包含包装链接。每当我们在这个存储场景置对包裹进行更改时,它将自动更新并立即在 每个地方 中使用该包裹。我们可以修改对象、添加函数,并在没有必要导航主体验的情绪和灯光的情况下工作于细节,以便我们看不到我们正在做什么。

包裹允许我们在不需要做大量额外工作的情况下更自由地探索 3D 中的不同想法。我们可以计划、测试或甚至恢复到任何资产的任何以前版本,如果实验在实践中没有成功或破坏了体验。有很多次,通过返回包裹中的一个版本,价值几小时的工作被恢复。最结束,我们无法在这个演示中没有包裹实现最终的波兰语水平。
