利用Unity制作精美的赛博朋克场景
今天这篇文章将由来自荷兰的Maarten Hof为大家分享如何使用Unity制作精美的赛博朋克场景。
https://v.qq.com/txp/iframe/player.html?vid=y0555k8f1l1&width=500&height=375&auto=0
赛博朋克场景草图
Unity在图形方面的强大是众所周知的,全新的后处理栈技术也极大地增加了这方面的潜力。下面为大家介绍 赛博朋克场景草图的设计思路。
首先,要尽早地确定相机的位置,尝试不同的FOV以及视角。如果能及早地确定相机的设定,就可以尽早确定优化的方向。在进行环境早期设计的时候需要去找一些线条感较强的地方,利用这些线条来为相机构图,如下图所示:
在这里需要专门注意这些线条与画面边框交汇的地方,然后尝试在Unity中还原出一样的构图。注意画面右边被切掉半块以及上方的红色标志牌,这些标记表示相机应该摆放的位置。另外还需要注意画面中的横向线条不是水平的。根据上面注意事项调整相机,如下图所示:
这样首个草图设计就完成了。上图中的这些假人是用来参考空间大小的,可以给他们起一个名字“参考人”。大家在设计草图的时候也应该有这样的参照物。
在设计完相机构图后就可以决定需要优先做出哪些场景资源。因为建筑是概念图中最主要的部分,可以优先决定。
为了让工作变得更加有趣,可以在做主要部分之间穿插着做一些小玩意儿。比如Maarten Hof在做完一个主要部分的时候就做了ATM机的小道具,而这个ATM机将作为其他需要做的道具的参考。如下图所示:
除此之外Maarten Hof还想利用emission贴图制作常见的霓虹灯光晕效果。因为场景设计图中很大一部分元素都是这样的霓虹灯,所以想把这部分做得尽量好一点。如下图所示:
首个霓虹灯样品
关于这些小道具的制作并不复杂。参照物很重要,在做每一个道具时,可以去Google Picture找参考,或者使用Helio的图作为参考。
下面介绍这些资源和贴图专门的一套工作流程:模型 > 高模 > UV map > 烘焙 > 贴图,期间会经过一系列迭代。这里只用了Zbrush来做垃圾袋模型,其他的高模都是用Blender做的,这些高模都做了细分处理并增加了倒角。其他的像线缆和管道这些模型用的都是一样的平铺(Tiling)材质,这样可以节省时间,并且因为场景比较暗可以不用太在意细节。还需要做两种不同类型的线缆,一套放在任何需要的地方,另一套则把它放在固定的地方。
回顾一下上面做过的资源,环境以及光照的设计是整个设计中最具有挑战性的。关键的小道具包括ATM机,CTC网络点,以及所有的垃圾。所有的标志牌对画面的整体观感起了很大的作用。当然,这也是最花时间的部分。
将所有的画面元素摆放完毕后就可以开始在场景中加入人物了。经过一番尝试后,最终确定一个方案,这些人物使用MakeHuman制作,在Photoshop中完成贴图的调整。
拼合场景
Maarten Hof的Blender场景和Unity场景实际上是通过一个为“blockout”的fbx文件同步的。开始是用它做场景草稿的,但后来渐渐地把所有的东西都做在了这个场景里。通过这种方式,可以直接把模型建在正确的地方(场景最终稿中的位置)。决定了模型最终样子后,需要对模型进行清理操作,然后设定好坐标轴并导出到Unity。在Unity中将所有单独的模型组织好,比如各种容器、ATM、垃圾等。在设定好位置后再做一个高模,并为其做好UV并做好贴图。
在Blender中,只做了场景的规划和建筑的摆放。所以决定不使用模块化的方式来制作这个场景。因为在场景不那么大的情形下模块化没有明显优势,而且这样做的话还可以为建筑制作专门的贴图。
制作材质
在Substance Designer中为这个环境制作了三种不同的材质,而其他的材质基本上就是Substance Painter中的标准材质或者在其中制作的。大家应该知道Unity原生不支持decal,因此可以把所有的decal印在贴图里。
Substance Painter中的标准工作流程是这样的。获得正确的烘焙结果,基本上这是最重要的事情了。因为如果这个没做好的话基本上整个贴图就被毁了。完成这步后在法线贴图上用stamp加一些细节,然后将其他的所有东西烘焙到其他的贴图中,例如ao贴图,世界坐标的法线贴图,位置贴图等。
当完成上面贴图的制作后,就可以开始着手纹理的制作了,直至调整标准材质到满意为止。之后开始对纹理进行做旧处理,加上一些脏东西等。其中有一种在Substance Share上能找到的叫作“沙子(sand)”的智能材质效果非常好,可以利用这种材质做到满意的效果。通常最终成品的最后几个层中都会有一个fill层,可以添加遮罩,增加一个噪点,脏东西和做旧的生成器用于添加额外的细节。
如果道具有decal的话我会在Substance Painter中加上。因为如果只使用Unity标准着色器的话是不会有那么多细节信息的。
创建光照环境
如果大家对3D环境的光照非常感兴趣,可以把这看作是一次挑战自我的机会,提升自己在用光方面的水平。需要大家仔细研究概念图中各种颜色的细微差别,可以尝试在Unity中模仿。每当在场景中添加一个新道具时就需要重新调整光照。这里与大家分享一个小技巧就是在Photoshop中大幅提升概念图的颜色饱和度,以便更清楚地分辨出颜色之间的差别,同时也更容易找到光线反射的方式。之后为了方便检查模仿结果,可以制作场景的缩略图并将其与原概念图进行对比。如果做成黑白图的话,两者之间的细微差别就更容易被观察到了。
图中仅应用了光照而没有材质
所有光源
后续处理
大家上面看到的所有资源都是使用Unity直接渲染并截图的,没在Photoshop中做过任何处理。
在这里使用了两种不同的后处理效果,即Unity的“后处理栈 Post-Processing Stack”以及“Beautify”插件。当然只用Unity的后处理栈的话也没问题,只是Beautify可以对画面进行锐化处理。Beautify插件可以明显提升渲染效果。
霓虹灯牌匾使用了带有alpha通道的emission贴图,同时没有开启mipmap,这样可以显著地减少马赛克效果,尤其是在远处的霓虹灯牌匾。其次,一个能显著提升环境档次的是硬边上的倒角。在光线开始影响这些倒角之后,画面的质量就会显著地上升一个档次。
截图时还可以用一个小技巧,即以两倍的分辨率截图,然后在Photoshop中缩小,并开启bicubic锐化。这样处理后截图的效果就会变得很清楚,同时带有一点点抗锯齿效果。这种方式也很适用于没有添加抗锯齿效果的法线贴图。
结语
上面这些霓虹灯和各种光源使得场景的整体效果美伦美奂,希望大家可以像Maarten Hof一样,能够使用Unity创建出精美的游戏场景。后面我们还将继续为大家分享更多经验教程在Unity官方中文社区(unitychina.cn),请保持关注!
推荐阅读
点击“阅读原文”进入Unity官方中文社区!