艺术家Michael Cox为大家分享神秘的树屋场景的设计过程,并详细介绍场景的材料和资产是如何创建的,该场景主要使用ZBrush、Maya、Substance和UE4制作。
我在浏览ArtStation时发现了Even Amundsen的概念作品,他在每个作品中都会阐述故事,并赋予它们深度和地方感,这在构建场景时很有帮助,所以将其中一个场景作品作为概念。
首先收集一些岩石(尤其是靠近河流的)、苔藓和长满苔藓的老树的照片,还看了一些游戏(恶魔之魂重制版等),该游戏中的一些树使用类似的技术,例如烘烤时铺有瓷砖树皮、苔藓混合物和顶部的树叶卡片以提供支撑。
使用Trello创建资产列表,记录场景所需的内容,例如岩石、石阶、大树、草/泥/苔藓砖、水等。每个资产都有一个子列表需要多少着色器/纹理,制作它们需要多长时间。然后将它们分为:开始、审查和完成,并在这些列之间移动资产。
在开始画布之前,分析和理解作品的构成,以便将其转换为 3D。需要保留几个强大的元素。红门是这个概念的焦点。这是一个温暖而饱和的细节,与环境的冷色调和低色调形成高对比度,构图和周围环境都朝着门口流动。树木、树枝、河流、楼梯,都将视线引导到画面的焦点上。
转向Maya的初始封锁通道,这包括球体、立方体和非常粗糙的树版本(使用 ZBrush 中的 ZSpheres 快速制作),用来代替场景主要部分的基本形状。
在这个阶段,在封锁上画一些草图,以便尽早解决问题并确保不偏离概念太远。例如框架右手边的树枝需要被推到离房子更远的地方,并且在巨石和树之间必须有一个小间隙。还在树上绘制快速拓扑草图,以了解模型将如何流动。
一旦有了一定的场景规模,可以将全部导到ZBrush。把所有东西放在一起,有助于为场景奠定基础。然后在 UE4 和 ZBrush 之间来回切换,确保构图与概念相匹配。在这个阶段,在地面上进行工作,给人的印象是房子位于山上,有一条小路向上,河流向下。
地面成形后,将其替换为UE4 地形,以便即时对其进行编辑。当需要放置地面资产时,可以不用在更改时不断重新导出地面网格。
在高级阶段进行封锁后,可以关注单个对象并进一步研究它们。首先要建造的是树。计划是制作一个具有相当数量几何形状的平铺树皮,可以让我创建一个详细的轮廓。在与 Kyle 讨论后,决定雕刻并烘培,然后添加平铺纹理作为细节混合。
使用 ZSphere blockout 网格作为基础来处理轮廓,使用移动笔刷使其看起来更加粗糙。对于雕刻,使用的主要画笔为 Clay Buildup、Dam Standard 和 Standard,首先使用 Clay Buildup 画笔添加粗笔画,然后使用 Standard 和 Dam Standard 在树皮中创建更多方向。
过去并不能很好地从 ZBrush 转换为最终的游戏资产,许多细节在雕刻中不明显。所以使用具有大画笔大小和低强度(大约 6 或 7)的 Flake 画笔在网格上雕刻,为可能会在最终烘焙中丢失的细节增加更多深度。在项目后期,在房屋的岩石和原木上使用类似技术,可以在下面的 gif 中看到它对雕刻的影响。
对于低多边形网格,在第一遍使用 Decimation Master,可以保留轮廓。在将网格抽取到合理数量后,它们被带到 Maya 进行清理和 UV。
所有的烘焙都在 Marmoset Toolbag 中完成,这是树在进行任何树叶或顶点绘制之前在 Maya 中的外观。
雕刻岩石很棘手。因为过度使用修剪动态和硬波兰画笔,让岩石看起来比较崎岖和尖锐,在参考文献中,它们更光滑,因为靠近水而被侵蚀。所以使用Dannie Carlone的辉煌包开始获得一些裂缝,然后使用标准和 Clay Buildup 画笔的组合分层细节,再使用薄片画笔技术。
之后使用 Decimation Master 来处理低点,在 Maya 中清理它们,UVing,然后将它们放入 Marmoset 进行烘烤。Substance Painter 用于最终纹理。
在这里使用收集的参考资料和拍摄照片将基本颜色和粗糙度贴图放在一起,使用Josh Lynch 创建蒙版生成器并将它们混合在一起。此生成器将法线贴图作为输入,可以从中选择各种蒙版类型,然后根据需要调整它们的范围。
这是在为树皮图块制作纹理时在 Designer 中使用的生成器的另一个示例。
现在我已经准备好了几个对象,我迫不及待地开始使用平铺纹理进行混合!
从资产列表中,场景需要三种地面瓷砖材料:草、苔藓和森林地面。使用 NanoMesh 创建高多边形,在 Marmoset 中烘烤它们,再导入到Substance Designer来完成它们。这是在 ZBrush 中使用的设置:
主要雕刻平面是高几何体所在的位置,下面的基础瓷砖平面用于烘焙上面雕刻平面的细节(它们在 ZBrush 中确实靠得更近,将它们移得更远只是为了拍照),这两个 Unreal 角色网格为纹素密度提供参考。主雕刻平面更大,可以提供一个径流,以确保烘烤到下面的基础瓷砖平面时,烘烤中没有可见的接缝。
将主雕刻平面细分几次(大约 120 万个),然后从textures.com获取置换贴图。接下来使用标准画笔在平面上雕刻出一些起伏(确保画笔-曲线设置中将包裹模式设置为 1),有助于避免烘焙看起来太平,标准画笔的好处是可以保留每个笔划的细节,因此无需担心丢失任何置换贴图。
下一个任务是创建一个小型资源库,包括用于填充瓷砖的树枝、树叶、岩石和苔藓丛(都带有稍后用于 alpha 卡的额外好处)。在这里没有做任何太花哨的事情,只使用 Clay Buildup、Dam Standard 和大量 DynaMesh 进行更多工作。
在使用 NanoMesh 之前,在不影响其外观的情况下尽可能多地抽取对象,使用这种方法,多边形数可以快速飙升。然后复制主雕刻平面并将其抽取到大约 2-3k 多边形,因为 NanoMesh 要在每个面上创建对象,而雕刻平面太密集了。
选择子工具,进入画笔设置并点击“创建插入网格”,然后点击“创建纳米网格刷”。然后使用 ZModeler,点击并拖动到平面上以添加树枝。在这个阶段,NanoMesh 在每一个面上创建子工具,再进入 NanoMesh 设置并使用随机分布滑块,减少实例的数量并分散在周围。较高的值会增加更多的实例和密度,但需要让数量相对较少,因为还需要添加更多的子工具。
第一根树枝制作之后,在 NanoMesh 设置中启用冻结放置,并使用上面的步骤将另一个树枝子工具添加到平面,启用冻结放置可确保先前添加的树枝不会被新树枝覆盖。
继续添加更多子工具,使用随机分布和旋转/长度/宽度变化,也可以在这里循环索引并调整每组实例的设置。禁用 Show Placemen。下面是添加所有子工具后 NanoMesh 的外观,绿松石代表将要烘焙的瓷砖的边界,也代表位于下方的基础瓷砖平面的角落。
一旦所有子工具都在,到几何设置中点击“Convert BPR to Geo”,将 NanoMesh 对象转换为普通子工具。然后将瓷砖复制了 8 次,使用变形-偏移将每个子工具围绕主中心移动,确保NanoMesh在两个轴上平铺。完成后,将对象合并在一起,然后屏蔽雕刻平面周围的位。最后在 Geometry-Modify Topology 设置中点击delete hidden,将多边形数降低到合理的水平。
在开始时遇到问题,即瓷砖的外边缘比中心密集得多,这是因为相邻的图块彼此重叠,添加了越来越多的对象。其中大部分不会在最终烘焙中看到,但比较明显。为了解决这个问题,可以减少边缘周围的物体数量,在复制时其他瓷砖就会填补空白。如果在某些区域过于密集,在飞机上使用标准画笔覆盖一些树枝。
要创建具有大量变化的基色,需要使用颜色蒙版在 Substance Designer 中选择不同的对象,所以在 ZBrush 中使用 polypaint。NanoMesh保留放置的每组实例的多边形组,因此可以使用 Ctrl+Shift 自动选择每个组并分配不同的颜色。对于已经涂漆的对象,例如后来制作的苔藓瓷砖则有点棘手。在那种情况下,需要基色的 polypaint,保存两个版本并分别导出基色的 polypaint 和 ID 贴图。
选择每组子工具并使用颜色-填充对象分配一个随机颜色,然后将 NanoMesh geo 和下方的高平面导出到 Marmoset 进行烘焙。在这里保存法线、AO、曲率、高度和顶点颜色贴图。
完成后,Substance Designer 就可以创建最终的贴图了,下面是森林地面图表完成后的外观。
该图的大部分由混合节点组成,这些节点用于组合不同的颜色节点,以垂直颜色图作为掩码。使用“Color to Mask”节点,它非常适合为每组对象选择颜色。
在查看ref之后,虽然感觉纹理整体上并不密集。因此返回到原始 NanoMesh,在 ZBrush 中使用 GrabDoc 从已经雕刻的树枝中导出 alpha,这些像其他纹理一样作为位图导入 Substance Designer。
Tile Sampler 节点用于将这些散布在一些较小的树枝周围,使用与以前相同的垂直颜色贴图将它们添加到烘焙树枝下方。
这些是使用上面方法在 Marmoset 中渲染的最终材料。
对于树叶纹理表,包括几个草丛、一些苔藓来装饰资产,以及各种植物/花卉以获得更多变化。对于草,需要大约 3 个不同大小的草丛才能获得相当数量的品种,使用 FiberMesh。开始时制作一个快速平面,代表纹理表。然后添加一些较小的平面,与主平面成 90 度角。
接下来在这些区域上使用蒙版,我希望草出现的区域。FiberMesh 的预览是基于相机的,因此网格需要面向前方才能让草自然发芽。
也可以使用上面方法用于植物,叶子和花头是手工雕刻的,但茎是用 FiberMesh 生成的。可以在下图中看到烘焙前的完整纹理表。创建苔藓阿尔法对于苔藓,用于苔藓平铺纹理的网格被重新利用。
其他部分的树叶是使用相同 FiberMesh 方法制作的。使用 Clay Buildup 和 Dam Standard 刷子和 DynaMesh 雕刻各种叶子和花头。
创建散落的岩石和树叶,需要一些较小的岩石和鹅卵石散布在场景周围,使用布尔脚本 DCBoolManager,在已经制作的岩石中创造更多的岩石。当使用布尔脚本创建新的岩石形状时,会将 UV 映射投影到相交的部分,这导致纹理出现接缝,但由于场景中的岩石很小,因此不必过多担心。
创建地面树枝和树叶模板。在整个项目中不要让任何事情变得平坦,意思是不要仅仅依靠平铺纹理来完成工作。所以创建一些地面 alpha 对象来支持平铺材料,地砖上的树枝和树叶已经制作完成,这只是为模板创建面具的例子。
Substance Designer用于创建这些,在使用Substance Designer之前,使用的相同顶点颜色贴图,添加一个 Color to Mask 节点以仅屏蔽一些树枝和树叶,然后将其与垃圾贴图结合起来。垃圾贴图设置中的画笔图案设置为 0.75 左右,并使用 Levels 节点使其纯白色。为这些导出两种变体,一种用于树枝和叶子,另一种用于单独的叶子。
这是 Maya 中的地面 Alpha,在这里也添加一些为树制作的分支 alpha 以进行一些变化。
以下是在UE4中的外观。
把它放在一起现在大部分材料和资产都接近最后阶段了,然后将它们组合成预制件。查看许多 Megascans 资产以获取灵感,特别是带有岩石和草等的地面部分。
对地面资产使用类似的方法,将每个资产都视为自己的小布景环境,这个过程的大部分是在 Maya 中完成的。首先为地面制作一个基本形状,然后将其细分以获得更高的密度。使用Maya 的雕刻工具创建一些表面噪声。
添加地面网格后,将添加岩石,然后为材料混合将出现的位置绘制垂直涂料,再添加树叶和小石头。
这种方法可以用于场景中的大多数资产,从一块地面开始,逐渐向其添加越来越多的对象,将其分层,并使用顶点绘制作为设置苔藓、草和岩石。这里对大树使用相同的工作流程,减去地面。
当资产开始放置在UE4时,这个工作流程的好处就显现出来了。设置它们涉及很多准备工作,但是一旦完成,场景就很快聚集在一起。还能够快速更改资产,并查看整个场景的效果。
在创建河流的过程中,使用 Unreal 水系统,并使用 TharleVFX 着色器。创建河流的第一个阶段是从UE4导出地形并将其导入 Maya,用地形来模拟和创建河流的形状。将它细分几次以获得更好的垂直绘制效果,并确保 UV 在弯曲时不会扭曲太多。
这是UE4的结果,在这个阶段,还在岩石材质上添加额外的粗糙度混合,用于那些坐在河边的岩石。
为此将一个简单的标量参数与粗糙度贴图相乘,然后使用绿色顶点通道作为 alpha 将其输入到 lerp 中。还添加一个常量 3 使基色变暗。
在这个场景中坚持使用动态光照,因为不想在光照贴图 UV 上浪费时间。添加一个定向光和一个天光。概念中的灯光看起来很阴暗,就好像它坐落在茂密的森林中间。为了尝试模仿这一点,Directional 需要非常微妙,而 Skylight 则更具优势。
在这个阶段有很多测试和反复试验,最终将方向强度设为 2.0。从HDRI Haven下载多个 HDR 贴图,经过大量测试,Skylight 最终使用捕获的场景本身。这是对天光和高度雾的设置。
天光的强度提高到 1.5 以补偿较弱的定向,将颜色着色为浅蓝色以模仿概念的蓝色氛围。设置天空距离阈值为 1,这是捕捉场景的条件,因为默认值不考虑天光周围的直接区域。
禁用“下半球是纯色”,虽然可以产生很好的遮挡效果,但感觉这里丢失了太多的立方体贴图。经过大量调整后,调回高度雾,以确保不会过多地淹没场景。!对于最终渲染,保持在0.04,给场景添加一些深度。
除了定向和天窗之外,还有几个聚光灯位于树的后面。与主灯不同的是,这些灯被放大以发出边缘高光,可以通过微妙的照明来强调。
场景周围有几个小点光源,阴影投射被禁用,可以调整气氛。这个场景的照明导致几个替代的照明场景,这些场景最终包含在最终项目中。黄昏版本的灯光设置与主版本几乎相同。唯一的区别是天光和定向的色调和强度。
夜间设置有点不同,将定向灯的位置移到树的后面,以捕捉树枝上树叶的边缘,并在前面为房子中的橙色灯光提供额外的对比度。关闭所有的点光源,但捕捉下方边缘的聚光灯仍然在那里,并具有不同色调。天光被调低到0.6,并具有更深的蓝色色调。再增加体积雾,以创建来自窗户的光线。
再看一遍这个概念后,灯光似乎很不饱和,所以将全局饱和度降低到0.75,并提高门基色的饱和度。还将全局对比度提高到 1.5,为最终镜头添加色差。在最后的镜头中将脚趾值增加到 0.6,以增加对比度。