UE4中一些强大的功能使得UE4很容易制作出各种真实的场景,所以很多人都会想要使用UE4制作各种环境场景。下面3D环境美术师Shil Bose为大家分享他的UE4作品Boarding的制作过程。



01
参考


对于这个场景作品,我的目标是建立一个较大的环境,使宏观/微观的细节能够保持平衡,并具有强烈的电影感,还希望它以与AAA游戏生产管道兼容的方式构建。这意味着使用模块化方法进行构建,在很大程度上依赖于平铺纹理/装饰板,保持纹理大小合理,保持纹理像素密度等。


对于作品的参考,我选择了艺术家Mike Garn的作品“Boarding”。这部作品拥有着良好的构图,比例感,出色的照明,同时也非常适合模块化。


在UE4中创建实时环境场景


由于作品场景中有很多破坏的物品等,所以我研究了具有这种环境的游戏。本·威尔逊(Ben Wilson)在《德军总部》(Wolfenstein)的著作:《新巨像》和他的GDC关于它们的碎片/碎石管道的论述,是对此的绝佳参考。


在UE4中创建实时环境场景

在UE4中创建实时环境场景



其他出色的参考书是《地铁:出埃及记》和最近的《战地风云》游戏,因为这两种游戏都具有看起来很自然的破坏场景。


在UE4中创建实时环境场景

在UE4中创建实时环境场景



对于场景的灯光和心情,希望有一种强烈的电影感觉,为此我看了一些电影参考资料。


在UE4中创建实时环境场景


其他一些引人注目的参考资料(Bladerunner 2049和火车到釜山):


在UE4中创建实时环境场景


对于我的场景的结构元素,查看火车站和地铁站的照片非常有帮助,我也从中获得了很多有用的参考资料。Pinterest和Flickr都是查找此类照片参考的绝佳场所。


在UE4中创建实时环境场景


PureRef能够让参考图片素材有条理布置,它还具有放置注释和标题的功能,这使得对参考文献的分类变得容易。


在UE4中创建实时环境场景


02
创建物体


在选择概念并收集了一些关键参考之后,第一步就是创建模型。花费一些时间在模型制作上是非常重要的,因为扎实,精心计划的模型使项目后期的工作变得更加轻松。我为场景中的几乎所有物体制作了遮挡网格,除了很小的道具和较小的碎片。


由于这是一个模块化的环境,所以所有零件都需要在发动机中卡在一起。这时需要在3ds Max中设置单位和网格,与UE4单位(1个单位=1厘米)相对应,并且所有部件都在网格上构建,并且具有枢轴位置,可以轻松地进行操作。


此时还需要考虑结构块的大小,因为太多的小块难以管理,而真正的大块还有其他问题,例如光照贴图分辨率。


所以我将它们中的一些分解为较小的部分,或将其分解为较大的块,但总体而言,这几部分构成了我的大部分场景。


在UE4中创建实时环境场景


在构建这些模块化零件时,还可以在3ds Max中组装,以确保方向正确。稍后将其导入到UE4中,所有零件都装配在一起并放在网格上。


在UE4中创建实时环境场景


接下来将所有模块化的阻塞网格物体分别导入到UE4编辑器中,并使用3ds Max的阻塞组件将它们放置在关卡里。之后建立一些基本照明,以估计场景中主要光源的来源。


在UE4中创建实时环境场景


03
规划纹理


首要任务是制作地板,天花板,柱子等大型结构,首先为这些元素创建了平铺纹理,然后将其应用于封闭网格,以在编辑器中对其进行可视化。


弄清楚场景的纹理像素密度也很重要,这样我们才能知道纹理的分辨率。我选择每4米使用2K纹理,密度为512像素/米,通常用于第三人称游戏(Source)。人们很容易将4k或8k纹理广泛用于个人工作,但是在实际的游戏制作中,由于有限的图形内存大小和磁盘空间限制,这并非总是可能的。所以我使用了2k,1k和512纹理的混合,其中一个4k纹理用于较大的被破坏的支柱,而较小的纹理无法支撑该支柱。


接下来,我对如何将不同的表面分解为图块,装饰等进行了一些计划。


在UE4中创建实时环境场景


最后,可以添加大约9个拼贴材料和2个装饰板。大多数图块是用于墙壁,支柱和平台的不同类型的混凝土表面。我使用了一些混凝土材料,这些材料可以在Quixel Mixer中混合几种不同的Megascans材料制作。我想保持基础材料清洁,使拼贴不太明显,在以后使用顶点绘制和贴图将其分解。这些都是2k纹理,并根据所选的纹理像素密度平铺了许多次。




使用Mixer的最大优势是与Megascan的无缝集成,以及庞大的扫描库,智能材料,贴花等对资产进行纹理处理的能力。用Mixer制造的这些图素非常简单,这是其中一种墙体材料的细分。




这是UE4中的结果,上面放置了一些顶点绘制和贴花。


在UE4中创建实时环境场景


对于某些表面,我无法通过混合现有材料来获得所需的结果。所以一些表面可以使用ZBrush进行雕刻,并将其烘焙到平面上,然后在Substance Painter中创建纹理。这是我用于天花板的材料,该材料由一个简单的ZBrush模型创建。


在UE4中创建实时环境场景
在UE4中创建实时环境场景


接下来需要制作装饰板了,这些可以在不需要任何独特纹理的情况下为场景添加大量视觉细节。计划装饰板时需要考虑装饰宽度,这取决于装饰的位置。就像图素一样,修剪也必须保持相同的纹理像素密度,但是它们只能在一个方向上图素,因此事先弄清楚宽度很重要。虽然很难一开始就准确地确定需要修整哪些,但可以先确定了一些我知道的内容,并留下了以后再添加的空间。


16.jpg


这是我用于场景的两张修剪纸之一,也是它的原始布局计划。我在底部留了一些可用空间,以备后用,在这里我为道具添加了一些特定的非平铺纹理。这种装饰板非常有用,大多数金属表面,长凳,楼梯,甚至有些道具都是使用这种装饰板制成的,没有独特的纹理。



04
结构模块化元素建模


创建纹理后,才开始大量建模。我按照资产在现场的影响顺序解决了资产。这意味着需要先创建大型结构元素,然后在创建具有重大视觉影响的大型道具和碎片(例如:破碎的玻璃材料和着色器,大型指示牌等)。


对于结构元素,准备好一些基本纹理之后,便开始建模过程。它主要是建立在遮挡网格的顶部,以提供更多细节并将UV正确映射到平铺纹理/修剪。有些元素要复杂一些,例如,破损地板的这一大块。


在UE4中创建实时环境场景


在使用平铺纹理对资产建模时,另一种非常有用的技术是对边缘进行倒角并使用加权法线。这将创建一个很好的平滑圆角边缘,其效果与烘焙的法线贴图相似。这个功能是3ds Max 2021中作为“加权法线”修改器,如果是以前的版本的话,会有很多免费的脚本可以操作。


在UE4中创建实时环境场景


这是用于构建场景的所有模块化结构的概述。


在UE4中创建实时环境场景


05
独特元素和道具建模


场景中不需要太多的独特元素。但在少数几个中,比较复杂的一个是被毁的支柱。对于支柱和所有其他道具(包括火车),我采用了传统的高多边形到低多边形的制作流程。之后使用Marmoset Toolbag 3烘焙法线贴图,AO和曲率贴图,在Substance Painter中对其进行纹理处理。对于火车,我使用了多个2k纹理集,而不是4k或8k纹理。


在这里,我描述了用于创建被破坏的支柱的主要步骤,由于其尺寸实际上是我场景中仅有的4k纹理(其他所有元素均为2k或更低)。


在UE4中创建实时环境场景


在场景中使用的所有道具已经制作完成。其中一些来自Megascans,其纹理在Mixer中进行了调整。它们中的一些(例如长凳,火车信号灯,路障等)没有独特的纹理,仅使用装饰物构建。


在UE4中创建实时环境场景


06
使用Megascans资产


Megascans 3D资源是一种非常有用的资源,可以使3D艺术家在制作项目时更加轻松。但它们并不总是经过优化就可以直接在游戏中使用,并且需要一些步骤使其更易于游戏。我从该项目中学到的主要知识之一是如何在不引入太多不同独特纹理的情况下将多个Megascans资源整合到场景中。这样做有很多原因的:


1、对于较小的杂物网格,垃圾,碎屑等,这可以显着减少所需的物料绘制调用次数。


2、可以轻松地一次调整所有纹理,例如:抹上一些污垢和污垢或使其具有一定的外观。


3、具有许多不同的材质和纹理贴图集很难管理。对于诸如植被,贴花等物体,通常手绘只有一个混合纹理贴图或图集,并且每个资产都映射到UV空间的一小部分。


4、通过将多个Megascans纹理打包为一个,可以节省大量纹理内存。


在UE4中创建实时环境场景


我将此技术用于较小的网格,例如垃圾和杂物,碎玻璃等。该过程为:


1、引入所有想要合并到3ds Max的资产,并充当高多边形或源网格。


2、然后复制它们,将重新包装到一个0-1空间中。通过在所有选定的网格上抛出UVW修改器,在UV上进行自动打包,可以快速完成此操作。这些合并了UV的网格可以充当低多边形或目标网格。


3、使用Marmoset Toolbag 3将所有地图从源网格转移到目标网格。Marmoset能够将完整的PBR纹理(反照率,粗糙度,法线贴图等)从一个网格烘焙到另一个网格,只要它们位于相同的世界位置即可。


这是Marmoset中烘烤此类地图集的场景设置。我设置了多种材质,并应用了源Megascans纹理,并经打开所有不同的烘焙贴图,包括反照率,光泽度和透明度(用于纸贴花)。之后以4k烘焙,然后再降采样至2k,获得更平滑的结果。


在UE4中创建实时环境场景


另外,可以在场景中使用的一些碎片和混乱网格。这些都是具有多种纹理的Megascans,它们融合成一个小网格。较大的资源具有单独的纹理,这些纹理在Mixer中通过更改颜色/粗糙度,添加灰尘覆盖等进行了修改。


在UE4中创建实时环境场景


07
质量水平


先将场景中的所有内容(一些较小的道具除外)带到某个阶段或质量水平,然后再继续抛光特定的片段。


第1阶段-封锁


第2阶段-具有占位符纹理的基本模型


第3阶段-完成的模型和纹理,但未完成或未抛光


第4阶段-抛光


之后按照重要性顺序对场景中的所有重要元素进行这些阶段。将完成结构元素的模型和基本纹理,然后对唯一元素进行同样的处理,然后对道具进行相同的处理。之后可以先回过头并抛光结构元素,然后再抛光独特的元素,道具等。


在UE4中创建实时环境场景


这可以快速的在早期阶段抛光纹理,而场景的大部分仍未完成。



08
材质和明暗器


材质是UE4中外观开发的重要组成部分。在项目中我使用了大约5-6种母版材料和一种用于顶点绘制的混合材料。它们中的大多数都非常简单,几乎没有用于控制反照率,正常强度,粗糙度等的调整。


这是我用于所有道具和某些不需要顶点绘制的结构的主要主要材料之一。我们可以选择控制平铺,着色,在底面上混合第二个法线,添加灰尘覆盖等。我添加了一些光线跟踪质量开关,可以在跟踪光线时使材料便宜(例如,在光线跟踪反射中),通过平整法线,将金属减小到0,将粗糙度减小到1。


在UE4中创建实时环境场景


另一个示例是我用于对大表面进行顶点绘制的混合材料,这基于UE4文档中的4材质混合模板。在任何情况下,都不需要混合4种材质,因此对于蓝色通道,可以在潮湿处进行绘画。我对除湿度以外的所有东西都使用高度约束,而不是使用高度贴图,而是使用一些混合蒙版,这些蒙版只是黑白垃圾或噪波纹理。


在UE4中创建实时环境场景


这是一个屏幕截图,显示了顶点绘制如何快速将细节添加到大表面上,从而打破了拼贴纹理的重复性。


在UE4中创建实时环境场景


第三个示例是玻璃着色器,它的渲染成本更高。先为Substance Painter中的裂缝制作了一个遮罩,用于驱动裂缝的不透明度和色度。添加了由菲涅耳驱动的发射和折射属性,该属性根据相机的位置和表面法线给出了衰减。最后,我还在此处添加了相同质量的开关,以使该材质的光线追踪版本更便宜地渲染。在“材料详细信息”面板中,必须将混合模式设置为“半透明表面”,并将照明模式更改为“表面半透明” 体积,以便正确渲染该材料。


在UE4中创建实时环境场景


网格物体本身非常简单,没有任何烘焙的法线贴图。我在平面上切出玻璃形状,然后应用“壳”修改器赋予其厚度。附近放置了柔和的绿色光,使它更加可信,因为在现实生活中,半透明的材料吸收了光的一些能量,并将其自身的颜色注入到透射光中。


在UE4中创建实时环境场景


09
组装


在使用遮挡网格作为向导重新创建场景的模块化部分之后,在墙壁,地板和天花板上添加细节。我首先对这些表面进行顶点绘制以破坏平铺纹理。


在UE4中创建实时环境场景


为了添加诸如碎屑,垃圾等散布的网格物体,可以在UE4中使用Foliage工具。通过调整密度,最小和最大比例,网格之间的距离等,我们可以快速分散周围的混乱情况。位置,旋转,比例等都是随机的,因此无需手动放置每个网格即可快速添加很多变化,并且分布看起来自然。


为了向墙壁和天花板添加细节,我创建了一组模块化的管道和电气盒。其中一些是Megascans,我在这里再次使用了Atlassing技术将它们全部包装在一张纹理纸上。最终使用了样条线和一个蓝图将网格沿着样条线放置。但盒子必须手动放置。


在UE4中创建实时环境场景


最后是贴花。在这里使用了dbuffer延迟贴花和网格贴花的组合,它们是作为网格的一部分构建的,但是使用透明材料,可用于添加边缘细节和损坏贴图表面。表面损坏,弹孔,裂缝等很大一部分来自Megascans和市场贴花的组合-这些使用反照率,不透明度和法线贴图。墙上的标志,告示和警告是在Substance Painter中创建的定制贴花。还有一些用于墙/地板/天花板的大型垃圾贴花,它们只是B&W alpha蒙版,其色调由材料属性控制。贴图对场景具有巨大的视觉影响,而对帧速率的影响却很小。但是,它们确实增加了纹理内存,因此,最好使它们数量少且用途广泛且具有很多可重用性。这是关闭/打开贴花的场景。




10
照明与后期处理


在照明方面,我想获得战时电影中经常看到的温暖沉闷的灯光。所以混合使用了实时光线追踪和烘焙照明。我分阶段创建了照明,遮挡,基本,精致,抛光。


对于光源,我有固定的定向光和天窗,以及设置为明亮的午间HDR的发射天窗。由于天窗箱是如此明亮,因此天窗强度设置得很低,使光源不会冲出场景。为了强调从某些开口进入的阳光,我还在那里放置了一些聚光灯。由于大多数场景只是颜色柔和的无光混凝土表面,因此还需要在隧道中放置了充满活力的红色灯光,以添加一些急需的对比度。我还在较大的发射表面附近放置了一些额外的灯光,以增强效果。




我的场景是在室内,所以需要大量的间接反射照明或全局照明(GI)。在这里使用了不同类型的GI。




对于烘焙光照贴图,我使用了GPULightmass插件。这使GPU可用于运行Lightmass而不是CPU。由但使用此插件会禁用UE4中大多数lightmass设置,并且light build quality(预览,中,高,生产)也不起作用。唯一有效的亮度设置是Num Indirect Lighting反弹,我将最终烘烤设置为50。


为了提高GPU轻量烘焙的质量,必须在配置文件中将其设置为引擎变量。


光照贴图分辨率和最小光照贴图分辨率对于获得良好的烘焙效果仍然非常重要,必须根据其尺寸为所有静态网格物体设置此值。


我想提到的关于烘烤照明的最后一件事是间接照明强度。从上面的gif中可以看出,此设置对反射光的数量有很大的影响。必须为每个光源单独设置。烘焙后,还可以在后处理体积的“全局照明”部分中调整间接照明的数量。


一个指数高度雾是非常有用的给光轴体积的效果。最好将其保持在非常低的值(0.01-0.025范围最适合我)。散射光的体积散射强度也可以单独控制。我还使用了UE4市场上免费提供的“粒子效应”项目中的Godray和雾片蓝图。


后处理对于最终外观开发同样重要。就像照明设置一样,这可以大大改变场景的整体气氛。虚幻有一个始终有效的默认后处理,可以通过添加后处理卷或通过调整Camera和CineCamera actor中的后处理设置来覆盖它。




其他后期处理效果(例如色差,镜头光晕和渐晕)都非常有用,但过度处理会使场景看起来非常不自然。


UE4中新的颜色分级工具很棒-它使我们可以分别调整阴影,高光,中间色调的对比度,饱和度,灰度系数等,在每个区域中增加一致的色彩增益,甚至可以调整过渡在高光->中间色调->阴影之间。与之前在Photoshop中执行此步骤并将其导入为后期处理LUT(查找表)的项目不同,这次,我在后期处理体积和相机设置中进行了所有颜色分级。Joe Garth在Quixel Rebirth场景中的教程对于了解此颜色分级系统非常有用。


最后,后期处理的tonemapper部分是另一个可以用来调整图像最终外观的设置。“坡度”和“脚趾”设置尤其可用于调整图像亮区和暗区的曲线。tonemapper还具有锐化功能,当前必须通过控制台命令r.tonemapper.Sharpen启用它。我发现以较低的值使用时非常有用,并且可以使图像清晰美观。




11
构图和相机


对于主要镜头,我有一个可以付诸实践的概念。对于其他次要镜头,主要目标是要制作出具有独特前景,中间背景和背景的有趣构图。建立场景时的一个常见错误是在每个地方都放置过多的细节,我觉得同样重要的是要有一些空白。它类似于绘画或照片中的负片空间的概念,该空间有助于将观看者的眼睛引导到构图的焦点。太多细节均匀分布会在视觉上造成混淆。


在UE4中创建实时环境场景


最后,UE4中的Camera和CineCamera是创建最终图像的绝佳工具。它的工作方式与现实世界中的胶片相机非常相似,虚幻引擎官方发布了一些视频,详细解释了所有相机的属性。


在UE4中创建实时环境场景


需要注意的主要事项是相机的光圈,焦距和焦距。光圈是光在被透镜折射后通过其进入相机的孔的直径,其大小控制着多少光进入相机。焦距确定相机的视场(FOV)。聚焦距离是聚焦的物体离镜头的距离。在CineCamera actor中,较小的光圈和较短的聚焦距离会产生更强的景深效果,其中聚焦平面之外的对象会显得模糊。这可以通过“可视化”->“景深图层”在视口中看到,其中焦点对准的对象显示为深灰色,前景为绿色,背景为蓝色。




如果焦点对准的物体距离相机较远(聚焦距离较大),则光圈必须按相等的比例减小,以得到相同的景深效果。同样,每次调整光圈都会影响图像的曝光,因此必须通过在相机的后期处理设置中调整ISO属性或曝光补偿来相应地进行调整。对于想深入了解这一点的人,虚幻引擎提供了漫长的Cinematic景深培训视频。在这里,我试图证明聚焦平面向后移动如何影响图像的景深。这是通过在保持相同焦距的同时降低光圈和增加焦距来实现的。降低ISO可以补偿进入相机的多余光线。




我认为本项目可以做得更好。优化绝对是我想改进的最大的事情之一,尤其是在实时光线跟踪方面。当前,场景在RTX 2070上以25-30 fps的速率运行,这不是最佳帧率。另外,由于我非常关注一些成分并围绕它们进行抛光,因此该级别的其他部分缺少抛光。理想情况下,我希望将所有内容都提高到类似的质量水平。但是,就像任何艺术一样,它从来没有真正完成过,总有改进的空间。



更多文章推荐:


1、在UE4中创建程式化的丛林环境


2、UE4场景帧数低怎么办


3、在UE4中创建日语教室场景


4、如何使用UE4制作3D环境


5、在UE4中创建废弃的家庭室内场景

,Unreal Engine技巧,Unreal Engine教程