Notifications
Article
在Unity中创作高质量硬面场景
Published a month ago
69
0
本文将由英国环境艺术家Callum Tweedie-Walker分享他在使用Unity创作致敬著名画家Simon Stalenhag的作品时所适用到的一些经验与技巧。
下面是场景的视频展示。

创作构思

Simon Stalenhag的画作是创作场景的基础。最初我只打算参考第一张图制作机甲,然而当机甲完成后,如果不将它放在主题环境中,那真感觉有一些浪费了。
但我没有把机甲放回原始画作直接改编的场景中,我认为将它放进另一个Simon Stalenhag创作的场景中会更有趣,因为他的作品有许多宇宙穿越的桥段,这样会让机甲更为炫酷。
因此我找到了第二张图片,然后决定加入加油站,我希望能展示出一个废弃机甲尝试为载具加油的故事。

描绘草图

在进行描绘实际环境的草图时,我已经完成建模和烘焙了机甲。我将一些临时材质放到机甲上,把它导入Unity,然后开始思考如何处理摄像机和光照。由于场景的创作目的只是为了凸显中心资源,我希望让光线投射到合适的位置,然后在其周围构建出相应的场景。
我决定把机甲放到第二张概念图的街道中,所以添加了一排灯柱,它们沿直线排列,有助于将观众的注意力吸引到机甲身上。我通过快速分级来设定作品的沉重基调,我认为使用引人注目的二级颜色能很好地突出机甲的侧面部分。我决定利用在《The Electric State》的画作中经常出现的红光,这将有助于将这件作品与宇宙联系起来,同时还能用蓝色和红色展示出典型的正邪之分。这到底是个“正义”还是个“邪恶”的机甲呢?
通过设置了一些临时光源,用于模拟我大致需要的光照效果,《The Electric State》中超大企业”SENTRE”所用的灯光成为了红光源的来源。因此我很快确定它能联系到加油站。为了得到更好的深度和距离感,我加入了一些在《The Electric State》中出现的高层建筑。我使用立方体和圆柱体构建了场景的大致结构,效果如下图所示。
在上图你可以看到我添加了一些架空轨道灯,它们拥有电影《Tron》的感觉,有助于引起了人们的注意,但最终决定将它们移除。事后看来,这是个正确的选择。因为它们会大大分散观众的注意力,而且样子非常花哨。
我很快去掉了这些内容,决定使用上面画作中的加油站作为合适的前景对象,它将与机甲头部、红色灯光组成三角结构。现在场景布局确定了,所以接下来我将花些时间来处理机甲的基本纹理。
所有的草图部分都是经过调整后的Unity内置网格。背景的高塔和前景的水坑是缩放后的胶囊体或圆柱体,加油站由立方体修改而来。我不会用Maya 来处理这类内容,因为它们都很基础,并且能够提供摄像机画面和光照调整的即时反馈,这对于作品的创作而言非常重要。

主角资源

当我们将作品中的建模划分为基本的体积和形状时,几乎所有的建模都非常简单。机甲上的多个特征主要是圆柱体,所以这里唯一的难题是将特定切口及孔洞与周边网格齐平。
如果使用像Maya的Quad Draw工具进行处理,这个过程会很简单。Quad Draw能够在基本的圆柱体上绘制你想要的形状。对于这类形状的最好处理方法是尽可能长时间地保持少量多边形,专注于所需的核心形状,因为它们会影响其余的建模内容。
天线由模型周围实例化的锥形圆柱体组成,而盖子和面板则是将选中的一些面片做了偏移,然后将它们叠在一起而完成。制作活塞时,建议使用简单的绑定技巧。因为从工程的角度看,虽然不能确保机甲的结构良好,但它增加了一定程度的合理性。
在Maya或其它DCC中执行此操作非常简单。通过在活塞任一端添加空白Locator,使头部或顶部成为它们的父对象,然后使用面向另一对象的Aim限制链接它们,我们便得到了一个非常简单的工作活塞。
当我调整某些腿部长度或是调整需要修改活塞的设计时,这能节省大量的时间。我可以选取其中一个Locator,将其移动到新位置,并确保它能正确对齐。
建模的大部分工作是收集参考资料。网上有大量资源可以用于制作重型机械、载具等类似物件,其中包括Photobash,所以很容易找到灵感。
我非常喜欢电缆和管道,所以机甲上有很多链接着多个结构的液压管路,它们提高了可信度,有助于切分形状,并给机甲的脚部增加了更多细节。除此之外,我从很多简单的内容上获得良好的效果,例如:在形状上加入小型分离效果,或是在圆柱体上嵌入橡皮圈。

周围环境

实际上,周围环境明显不如机甲复杂。环境在描绘草图阶段就确定好了,我保留了原型布局,作为一种突出主角资源的风格化方法。这个想法很有意思,但是我不希望场景看起来还未完成,所以保留了所有关键形状,只在对原型影响较小的层面上建模。
此后,我需要一种方法来填补场景的其余部分,并分离不会转移机甲注意力的迷雾。我的解决方案是添加组织混乱的立方体,它们离摄像机越远,看起来会越像原始形状。这也是背景塔仍保持原样的原因。

材质

在我完成机甲上的建模后, 使用了Substance Painter Live-Link插件。它能够实时在Unity引擎中更新材质,极高的提升了项目的质量。
我通常使用的绘图方法是尽可能尝试和模拟真实世界中对象的“故事”。为对象创作有力的故事能在很大程度上提高该对象的可信度,Substance Painter 能够非常直接地实现对象,因为它是围绕分层过程的想法来构建的。我首先添加原始材质,例如:金属和塑料。然后处理绘制图层,最后加入机甲的战损和风化的效果。
在最初步骤中,最重要的是不要坚持使用单一的通用的金属材料。金属的种类繁多,每一种都有微妙的色调变化,选择一些在模型中使用不同的金属会增加更精细的材料变化。 例如:钢是一种冷色金属,但钛有一种金色的微暖色调。
材质分离可能是最重要的步骤,但是粗糙度的变化也很关键,这是我在风化阶段所关注的。这个处理过程非常容易让人联想起中世纪的彩饰画,这种画作最开始由各种基色组成,然后用干刷制作出一些磨损和尘埃效果,这是为了塑造出历史感。
所有材质都是这样进行处理。这个阶段可以充分享受创作的乐趣,有时候很难忍住不过度处理模型。相对于建模,我更喜欢制作纹理,因为这个过程中有大量时间思考对象在其生命周期所经历的一切,包括它所遭受的损伤,为它构思一个故事,这个阶段将帮助你思考如何使角色真正融入场景。

着色器

场景中的内容除了道路和人行道,都是使用Unity标准着色器制作完成。下图是我基于Sébastien Lagarde分享的出色作品而制作的自定义着色器。该技术使用了大量遮罩来抵消波纹效果,而且能动态创建用于折射下层纹理的法线。红色通道用作各个溅射点的距离场,指明波纹的大小,绿色和蓝色通道存储每个圆形中心的方向,用于生成法线,而Alpha通道用作时间偏移,当每个波纹的溅射开始时变化。
该效果可以通过分层和偏移来增加降雨的强度。这种方法非常高明,你可以在Sébastien的博客上找到其伪代码,并轻松将它调整为基于节点的着色器编辑器;所有内容都很好地呈现了出来,而且用到的数学原理并不复杂。
我根据自己喜好调整了一些内容,例如:水的流动效果。此后我又发现这恰巧是UBER着色器资源包所使用的逻辑,所以如果你想要带有内置小技巧的简单解决方案,它会是一个不错的选择。

光照

这个项目中几乎所有的光照都依赖Unity为《ADAM》演示项目而创建的Volumetric Lighting资源包,它可以在GitHub上免费获取。资源包中有很多体积雾,但我更多地为实时区域光使用这个资源包。
场景中实际上没有全局光照,因为全局光照不会对该场景有太大作用,所以我禁用了全局光照。我为所有对象通过类似的分层方法加入光照,但我认为将这个过程和后期处理协同运作非常重要。
在为场景制作光照时,我首先关注的是环境光。因为在夜晚的照明度较低,而且环境颜色会进入体积雾,所以来自天空的环境颜色是奠定作品基调的重要部分。此后我设置了一个方向光来建立某种形式的方向性。由于场景中是阴云密布的夜晚,所以阴影应该更为分散,这会帮助观众更好地理解画面。
当主要工作从主要光源转到次要光源,目标是在场景中设置焦点,本示例中的焦点是机甲。有些人喜欢让所有光照基于场景中的真实来源。我却认为这并不重要,因为真实性不是主要关注点,我认为更重要的是关注有助于引导观众在场景中注意力的部分。
这个问题在于是否以真实性研究为目标,还是仅仅制作吸引人的画面。举例而言,我在机甲头部后面放入了一个光源,通过给迷雾加入泛光效果,我在背景中凸显出了机甲的头部。真实生活中该光源是不存在的,但是它有助于更清晰地呈现图像。
你可以在下图看见光照过程的动态变化过程。

后期处理

现在到了创作场景中我最喜欢的部分:后期处理。对于游戏创作引擎而言,后期处理特效是非常重要内容,但很少人会分析后期处理流程,但是它在最后渲染时会发挥巨大的作用。
下图是禁用所有后期处理效果时的场景。画面看起来有点阴森,场景看上去整个泛白,红色灯光逐渐暗淡,而且场景中没太多色彩平衡。
首先是最重要的色调映射。我使用的是新版后期处理特效包Post Processing v2资源包中内置的ACES Filmic色调映射预设置,没有使用任何第三方Asset Store资源包。
我通常会使用自定义曲线,但ACES分离了我认为非常适合场景的沉重外观。这也许不太合适一些人的品味,但是之后在颜色分级阶段还可以调整大量对比度。
此后我启用了一些特别效果:泛光、屏幕空间反射和环境遮蔽。环境遮蔽只会遮挡间接光线,它对场景的影响很小。当渲染器的环境遮蔽太明显时,通常是因为其直接光线也被遮蔽,这个功能现在已默认启用。
泛光有助于突出光线,且效果容易过度明显。在这里起到最大作用的是屏幕空间反射。除去了柏油马路的反射效果后,公路就没有被雨淋过的感觉,而且大量视觉兴趣点也丢失了。我很想让光线在水面产生些效果,屏幕空间反射则帮助我实现了这个想法。
启用了这些效果后,我转而处理颜色分级。使用颜色分级可以大幅修改作品的基调。我将图像投射为蓝绿色,作为对《The Electric State》的致敬,然后稍微提高该数值来柔化对比度。
光线为这一切提供了基础,现在已经建立好关键数值和颜色分组,可以将它们调整到不同的极端。我非常喜爱这部分,因为可以轻松使用完全不同的外观创建变体。
是否想要场景看起来像受核辐射的废土?那就加入绿色和黄色。
是否想要加入赛博朋克风?那就加入紫色和粉色。
无论如何,回到现实后,我所做的第一步就是添加典型的摄影和镜头特效。例如:晕影、色差和粒度。它们非常符合我的品位,但是最好精妙地处理这些特效。我很喜欢强烈的晕影效果,它通过专注于中心数值来帮助构建图像。
在处理后期特效时,我一般进行三次尝试,每次迭代都是一次改进,帮助我更好地构建场景的理解。

项目时间

这个项目我与项目组的成员同时制作,花费了二个星期的时间。最难的部分是决定小型对象的设置,因为想法太多。但最终实现非常让人满意。
但从技术的角度而言,机甲的建模更难,尤其是机甲的腿部。但是无论如何,在创造时候,一定要解读概念设计,并使整体设计结构更为可信。

小结

今天的项目创作分享就到这里,希望大家吸取这些经验创作出属于自己的高质量场景。更多的Unity项目创作经验分享,尽在Unity官方中文论坛(UnityChina.cn)!

Unity China
316
Comments