Unreal Engine中创建逼真的赛博朋克城市

介绍
你好!我的名字是 Indrajeet Sisodiya。我去印地。我在多伦多 Pixomondo 工作,担任高级合成师/环境艺术家。我还时不时地在 Seneca College 教授合成。作为一名合成师,我为《曼达洛人》、《星际迷航探索》、《雨伞学院》、《中途岛》、《速度与激情》等电视和电影提供了高质量的逼真视觉效果。最近,我被选为 Epic 的虚幻引擎奖学金计划之后我加入了 Pixomondo 的 Unreal 团队,以利用电影级实时渲染的力量。我很兴奋,因为我们正在多伦多建造世界上最大的 LED 墙舞台之一,以在即将上映的电影、电视节目和广告中发挥虚拟制作的力量。但这并不是我决定深入研究虚幻引擎的唯一原因。
我一直是一个经常做白日梦的孩子,脑子里有这些宏伟的视觉效果,我想把它们带入生活。我小时候会画画,后来使用老式 2D 动画软件(如 Adob??e Flash 9)完成这项工作,并最终在印度攻读动画和 VFX 学士学位,在那里我学习了 Autodesk Maya、Adobe Photoshop 和 After Effects。然后在 2015 年,我在多伦多 Seneca 学院学习了 Foundry 的 Nuke。虽然,自从我开始在视觉效果行业工作以来,我并没有真正找到太多时间来学习新工具。然而,在 2019 年,我购买了 Redshift 并开始研究基于 GPU 的渲染的强大功能。Redshift 的渲染速度很快,但不是实时的。
大流行让我有更多的空闲时间在家,我决定拿起一个软件来学习。这是虚幻引擎引起我注意的时候。他们的工作主要是在游戏中,但慢慢地,他们更多地迎合了那里的制作工作室。随着最近收购 Quixel 和 Megascans,在 UE 市场上已经有数千种高质量资产的基础上,我完全沉迷于学习这一点。我在虚幻学院学习了这些课程,这是 UE 的教育门户,供任何想要学习该软件的人使用。我强烈推荐它,因为课程安排得非常整齐,涵盖各种主题,最重要的是,对所有人免费!我一直在玩弄一些小概念,直到我觉得我足够了解在 UE 中做一个更大规模的项目。

KitBash3D 竞赛
KitBash3D是一个了不起的网站,提供模块化 3D 套件,范围从后世界末日到未来,从现代到古代城市,从巨大的世界到微小的道具等等。他们经常举办一场名为 KitBash3D 比赛的比赛,他们为任何想参加的人提供免费的迷你套件。KB3DContest 的目标是根据比赛主题创建图像或视频。这一次,主题是“霓虹之夜”。主题描述中真正引起我共鸣的一些关键台词是:
时间在这个城市没有本质的想法。为什么你会在意太阳早已被新城的绝对力量所取代的时间?
你悬挂在边缘并看着世界在你脚下振动的想法。
夜晚将我们推入一个非常熟悉的霓虹灯模糊中,没有亲切、禁忌和对不那么遥远的未来的梦想。
在这次比赛之前,我参加了他们最后一场以“赛博朋克”为主题的比赛,我的参赛作品“雨中的泪水”是一个非常戏剧性的赛博朋克世界,类似于银翼杀手2049。然而这一切都是在Redshift中完成的,对我来说是粗略的2个月把这一切都包起来。之前做过这个,这次我想创造一些不同的东西。我专注于这样一个想法,即比赛更多地是关于“新城市”而不是传统的赛博朋克/未来主义城市。Neo city 只是意味着来自不久的将来的一个新城市,这让我将其融入了现实。
虽然我从赛博朋克电影中汲取了灵感,比如添加了漂浮的未来派广告、来自银翼杀手 2049 的经典舞蹈芭蕾舞演员全息图等等,但最大的灵感来自我上面提到的提示本身。我希望它成为一个视觉上更可信的城市。我知道如果我在城市中添加任何疯狂的建筑或建筑物,它会使其变得不那么现实。与技术一样,我想创造一个技术与我们相似的世界,这就是为什么你看不到任何飞行汽车或任何控制论增强的人类。我想摆脱经典的赛博朋克流派媒体,例如攻壳机动队或 Akira,同时仍将流派置于现实中。
但和其他人一样,这一切都始于一张空白的石板。

打开套件
我做的第一件事就是下载 KitBash3D 免费为这个项目提供的 NeoCity 工具包。幸运的是 KitBash3D 允许艺术家从他们的网站下载他们最新套件的 UE 项目文件。这节省了大量时间,因为几年前,我们不得不从 KitBash3D 的网站引入 FBX 文件,并且必须手动引入所有纹理并为 UE 中的所有资产重新创建每个着色器。这花了很长时间,而且非常缓慢。幸运的是,这些新套件经过预先配置,可以在 UE 中完美运行。
打开套件附带的 UEProject 文件后,我惊讶地发现里面什么都没有。这是可以理解的,因为建筑物尚未加载到您的关卡中,因为您可以看到您的视口和世界大纲面板只有基本的东西。
如果您进入内容浏览器的 KB3D 文件夹,您会发现四个子文件夹,分别称为 Actors、Geometries、Materials 和 Textures。这就是您的建筑资产如何按资产类型分解和收集的。建筑物上的所有纹理都在 Textures 文件夹中,Materials 文件夹中的所有着色器,Geometries 中的所有 3D 模型,最后所有这些都在 Actors 文件夹中组合成一个蓝图。
对于那里的初学者,出于本教程的目的,将蓝图 (BP) 视为智能组,您可以在其中将资产组合在一起并将这些 BP 放置在您的关卡中。因此,下次您想更改一座建筑物上的标志的纹理并且该建筑物已被复制并在关卡中放置 20 次时,您不必为每个实例更改它。您只需在 BP 中更改它,该更改就会传播到所有实例。
然后我简单地将 Actors 文件夹中的所有建筑物 BP 拖到我的视口中并将它们隔开。可以看到一共有9块,3大块,3块中层,3块小块。由于这3个小部件只是特写小道具,我基本上有6个建筑物来制作整个城市,而不会显得过于重复。

UE中的散射
现在从这里开始,有两种方法可以将这些建筑物散开。一种是更难但更独特的方法,即手动放置每个建筑物并以这种方式构建整个城市。这种方法通常适用于拍摄宽度不超过几个城市街区的镜头。但是,如果您的镜头涉及与我的类似的更广泛的建立镜头,我会建议以某种方式自动化此过程。所以我决定沿着将建筑物变成树叶的路线走下去。这就是 UE 以其惊人的性能让我大吃一惊的地方。
植物工具: UE 拥有强大的绘画工具,可让您在几何体表面绘制一个或一组对象。它专门用于(顾名思义)在您的景观上绘制树叶,例如草、岩石、树木、碎片等。这几乎是我之前使用它的目的,散射具有相当低多边形数量的中小型物体。这次我非常谨慎,因为我的计划是将这些巨大的高多边形建筑变成树叶演员,并像画草一样画它们。
要将建筑 BP 变成树叶演员:

1)转到顶部并将“模式”更改为“植物”
2)在植物面板中,单击“添加植物类型”并选择“演员植物”。在下面的弹出框中,使用 F_(Name of Building BP) 等良好的命名前缀保存 Foliage 文件
3)创建新的 Foliage Actor 后,选择相应的建筑 BP 并将其拖放到 Foliage Actor 图标上。然后选择 Foliage Actor 并单击 Actor 类并搜索“KB3D”以查看我们的 BP 列表。选择我们刚刚拖过的同一个 BP。您的缩略图应更新为相应的 BP。
用所有 9 个道具重复所有这些步骤,现在我们准备好绘画了!
4)现在为了绘画,我将“模式”改回“选择”并在0,0,0位置创建了一个平面。这将是我们的城市地面。我将其放大到 1000,500,1 并将“模式”切换回“植物”。
5)然后我检查了每个 Foliage Actor 图标上的小复选标记,除了 3 个小道具。选中和取消选中此框意味着这些选定的资产将在您绘制时分散。这是仅绘制选定资产而不是绘制所有内容的快速小方法。
6)接下来,将工具栏上的画笔大小更改为 8192,使其成为一个较大的绘画区域。然后移动选择 6 个建筑物 Foliage Actors 并将它们的密度都更改为 0.01。每个 Foliage Actor 中的密度滑块是绘制更多/更少特定建筑物的好方法。较高的密度 = 该演员的大量实例,较小的密度 = 该演员的只有少数实例被绘制。
此外,将所有实例的 Radius 更改为 5000。这意味着不同的实例不会彼此相邻,而是相距一定距离。
通常,默认值效果很好,因为 Foliage Tool 的用例是绘制草和岩石,它们很小并且可以密集地堆积。在我们的例子中,由于这些建筑物很大,我们只需要在每个笔画中画几个。
就这样,我们画了我们的第一个笔触,顺便说一下,1000 万个多边形以 120 FPS 的速度绘制、点亮和渲染!当我第一次这样做时,它让我大吃一惊,因为 UE 甚至没有出汗。现在继续并开始绘制您的城市街区。
您还可以调整每个 Foliage Actor 的 Min 和 Max 比例值,以不同的尺寸绘制它们。这是打破一致性的好方法,因为所有最高/最小的建筑物看起来都不一样。小心不要使建筑物过度拉伸或压扁。人眼可以快速看到参考点(例如窗户)并判断它何时不成比例。
我希望它拥有的植物工具的一大特点是能够以特定的角度放置实例。这将使建筑物不会相互随机旋转,而是遵循某种顺序。这是需要牢记的重要事项。查看真实城市街区的参考资料,看看建筑物是如何排列的。在某些城市,例如多伦多,大多数城市街区都是基于网格的,因此建筑物之间总是呈 90 度角。然而,像香港这样的城市在建筑上有零星的增长,这些建筑彼此对齐,但与邻近的城市街区相比,总体上是随机的。
7)使用植物绘画工具栏中的选择工具一次选择一个或多个建筑物,然后手动重新排列它们以在混乱中创建一些秩序。此外,将它们单独缩放到不同的大小以打破重复。这是经过 5 分钟快速调整后的结果。您“城市规划”的时间越长,城市就越真实。

奠定基础
最初的几个散布建筑物的油漆最初是在一个巨大的平面上完成的,类似于我在上面展示的方式。但它看起来并没有那么戏剧化。然后在重新阅读 KitBash3D 的提示后,我意识到为了展示一个即使在太阳还没有落山的情况下夜晚也开始的城市,我想如果我把建造这座城市的地面抬高会怎样?这导致了以下设置,其中有较低的城市,然后是通往较高城市的斜坡。
这也从视觉上将经典的“精英城市”与“肮脏犯罪猖獗的城市”区分开来。如果您正在创建自己的城市,请尝试在您承诺将建筑物分布到周围之前奠定基础。

纹理
Kitbash3D 套件中的建筑物已经预先纹理化,这很好,但是,我必须做的最大更改是窗户。正如你在下面看到的,窗户的材料是一个简单的半透明反射窗。目标是创建一个类似于夜间窗户的不透明和发光窗户。
最大的挑战是让它足够随机,这样人们就无法在附近类似的建筑物窗户中看到重复。
我在textures.com上的建筑类别下找到了六张窗户纹理,有些是单调的,还有一些香港和东京等城市的彩色霓虹灯图像。这基本上驱动了我项目的每一个纹理,从窗口到地面纹理。为简单起见,我将它们称为窗口纹理。
这是我创建的窗户的主要材料。它可能看起来像很多节点,但它们中的大多数都非常简单。这样想,开始时您在主材料中添加了更多控件,以后可以创建更多变体。我将带您完成设置,但是,请谨慎对待,因为着色器是在我早期的 UE 时代制作的,所以我知道某些事情可能会做错或效率低下。话虽如此,让我们潜入吧!
在最顶部,我们有 Base Texture 部分,它是一个 Texture Parameter 节点,用户可以在其中决定输入他自己的纹理,在我的例子中是窗口纹理。在左侧,我们有简单的 UV 控件。纹理坐标节点乘以主纹理平铺量(这是您创建的常量,然后右键单击并将其转换为参数)。您再创建两个这样的常量,它们将成为您单独的 U 和 V 控件,以确定在任一方向上平铺纹理的数量。
然后我们对另外三个称为色相噪波的部分进行类似的设置,其中黑白噪波纹理通过相同的 UV 控件设置。这是所有窗户颜色变化的主要驱动因素。上面的窗口纹理图像的输出被插入到 Hue Shift 节点的 Texture 输入中,这个 Hue Noise 被插入到 Hue Shift Percentage 输入中。所以噪点中哪里有白色就会有色调变化,哪里是黑色,原来的windows纹理图像就通过了。
色相噪声下方是色相蒙版。这再次增加了另一层差异以进一步打破一致性。在解释亮度蒙版下的最后一部分之后,我将展示它如何插入着色器的其余部分。
Brightness Mask 又是一个带有平铺控件的噪声纹理,可以决定窗口的亮度。无论哪里有白色的噪声与窗口纹理重叠,该区域都可以根据用户的需要变亮,而无论哪里是黑色,都保持不变。
最后展示一切是如何插入的。下面你可以看到输出的来源。基础纹理进入 Lerp 节点的 A 输入,Hue Shift 的结果进入 Lerp 节点的 B 输入,Hue Mask 的结果进入 Lerp 节点的 Alpha 输入。Lerp 基本上做的是告诉 UE,嘿,看看 Alpha 贴图,哪里有黑色(值为 0),显示插入 A 输入的任何内容,哪里有白色(值为 1),显示插入 B 的任何内容输入。Lerp 是一个非常强大的节点,我认为所有 UE 美术师都应该经常使用它来将这些结果混合在一起。
然后,该结果直接进入由用户可以调整的去饱和值控制的去饱和节点。最后插入我们窗口几何体的基色。这一步有点多余,如果需要的话可以避免,因为无论如何,窗口将更多地由自发光颜色而不是基色驱动,但我连接它以防万一。我们的 Lerp 输出的另一个副本进行对比,使窗口纹理更有冲击力,然后进入另一个全局亮度强度控制。
最后,我们的亮度蒙版的输出被限制在 0 和 1 之间的值,然后传递到另一个 Lerp 的 alpha 输入。此 Lerp 的输入具有我们全局亮度强度控制的输出,并且 Lerp 的 B 输入设置为 0。这样做是为了确保并非建筑物的所有窗户都打开。根据亮度蒙版噪声,有些会打开,有些会关闭。就是这样,最后,它进入同一个去饱和控制器并插入自发光颜色,从而驱动我们整个城市的窗户!
我们现在要做的就是在内容浏览器中找到我们刚刚制作的主材质并右键单击它并选择创建材质实例。这将制作材质的副本,但会公开我们之前构建的所有参数。这是其中之一的样子。
然后我将其中一个窗口纹理插入纹理插槽。然后在全球范围内大量平铺。并调整色相控件和亮度控件以创建您看到的变化。相同的图像重复出现,但每次都有不同的颜色和强度。这比简单地将窗口纹理直接插入到我们的窗口几何体上带来了更多的真实感。
但请注意,如果您尝试在场景中复制这些值,我在此处输入的某些值可能太亮或太疯狂,我将我的设置设置得如此之高,因为我的相机曝光非常低,因为我想要那种夜间感觉。随意调整值以使其在您的场景中效果最佳。此外,我建议尝试使用不同的输入图像,看看哪种效果最好!
这是我的一栋建筑物在纹理上的样子。您可以看到每个窗户如何具有不同的颜色色调,以及如何真正明亮(因此开花)而其他窗户根本不发光。在我看来,这是通过窗口纹理实现真实感的最重要的驱动因素。
总的来说,到目前为止,我的城市看起来像这样,建筑物的布局和材料现在创造了不同的窗灯。
至于地面纹理,我用同样的方法重复了其中一个窗口纹理,如果重复得足够多,很难分辨它是什么。这是一个很好的例子,它只努力工作,做聪明的工作,而不是努力工作。如果我们知道相机只会高高举起,永远不会下降,就没有必要详细说明地面。

创建霓虹灯
为了创建霓虹灯标志,我最初考虑采用与查找亚洲城市图像并从那里抓取标志相同的路线。然而,在浏览 KitBash3D 套件附带的纹理时,我注意到这张图片让我立即松了一口气,因为这是他们为 Cyber??punk Streets 套件制作的完整标牌图像。由于该套件中的资产很少包含在 Neo City 包中,因此也包含了此纹理。一张图统治一切!
现在更大的问题是,我如何将其融入场景中。我尝试考虑程序化方法来自动化这个过程,我相信如果有足够的时间我可以想出一个方法,但时间是我没有的,因为截止日期将在 2 周后到来。所以我决定手动完成。
我在 Maya 中打开了它,但您可以在 Blender 或任何 3D 应用程序中完成。我创建了一个没有细分的默认方形平面。然后从顶部投射 ??UV,使纹理完美地位于平面内,如下图左侧所示。然后听起来很费力,在您的 3D 应用程序中使用类似 Multi-Cut 工具或任何类似工具的东西,这些工具允许您通过单击表面来创建边缘,将整个正方形分成迷你多边形,并最终删除空白区域并分离所有的部分都变成了单独的几何形状。这种方法比为每个标志创建新平面并调整它们的 UV 效果更好,因为如果您的标志是一个矩形,而您将图像分配给的原始几何体是一个方形平面,那么可以任意更改几何体的大小,直到标志“看起来”权利很难。
当您使用多边形切割方法时,您的标牌的最终尺寸是预先确定的,不需要猜测。
完成分离所有部分后,不要忘记将所有标志的枢轴居中,并将它们全部放在场景中的 0,0,0 上,然后再导入 UE。这样它们将正确导入并且不会显示偏移量。我总共做了 100 个这样的标志,一些来自这个,很少来自其他图像。
创建和动画全息图
在场景中添加霓虹灯标志是难题的一半。我知道如果我要移动我的相机,我不能完全只有静态标牌,特别是如果我们在某种未来。我想要一些动画标牌,但我知道为每个标牌制作动画会花费太多时间,而且我最终会错过最后期限。所以我开始考虑引入各种预先动画的标志。
从前面提到的“雨中之泪”项目中可以明显看出,当我尝试在 Maya 中制作一个赛博朋克城市并使用 Redshift 进行渲染时,我已经解决了动画标志的问题。我一直对 GIF 以及它们如何在塑造我们的文化中发挥不可或缺的作用而着迷。我认为没有更好的方法可以从 GIF 以外的任何其他地方获取我们文化中热门和正在发生的东西。除了您在 GIF 中发现的内容变化之外,它们也是一种非常轻量级的格式,因为它们正在播放通常非常耗费资源的图像序列。然而,问题是 3D 应用程序本身并不支持 GIF,这就是为什么我必须为《雨中的眼泪》煞费苦心地将每个 GIF 转换为图像序列并将其插入我的材料中。
就像 Maya 一样,UE 本身不支持 GIF。由于还在学习UE,现在开始学习如何将视频和图片序列导入到UE中。这至少需要玩 3-4 个晚上,直到我意识到使用媒体纹理和媒体播放器在 UE 中引入视频/图像序列的过程不必要地复杂。也有使用 Sprite Sheets 引入动画媒体的方法,但它们也不必要地复杂,您必须将图像序列转换为粘合的 sprite sheet,然后使用 panners 制作动画。
如果我不得不以这种方式引入 50 个 GIF,那绝对需要永远。幸运的是,UE 市场的开发人员 Neil Fang 来到了我的心底,感谢他为 UE 创建了一个出色的 GIF 导入器,并使之像将 GIF 直接拖放到您的项目中一样简单。他的插件确实让我在截止日期前完成了这个项目!
所以我想,我已经完成了最困难的部分,我只需拖放我所有的动画标志的 GIF 集合。
但是生活总有办法在每一个给定的转弯处扔扳手。任何可能出错的事情都会出错。我带入 GIF 的那一刻,它就让 UE 崩溃了。在接下来的 3 天里,我只是试图找出它崩溃的原因,事实上,我已经是 UE 的初学者,对此知之甚少。
它可能是 UE 拥有的数百万个滑块和复选标记中的任何一个可能导致这种情况。最终,经过大量的反复试验,我意识到他创建的 GIF 导入器与我大量用于反射的 UE 的光线跟踪功能不兼容。在将项目设置中的默认 RHI 设置为 DirectX 12 时引入 GIF 会立即使其崩溃。所以现在我有一个工具但没有使用它的方法。我不想关闭光线追踪,因为它是我项目不可或缺的一部分。所以我联系了多个平台上的开发人员,最终在他的 GitHub 上提交了一个错误解释细节。这发生在我开始从事该项目一周后。从那时起,我正好有 3 周的时间去截止日期。
我双手合十,因为我不知道他是否会看到我的消息,其次,如果他看到了,他能否在截止日期之前修复它?每天,每天多次,我都会刷新他的 Github 页面,看看他是否回应,但什么也没有。在等待他的回应的同时,我一直在研究城市设计的其他方面。他在截止日期前整整 5 天回复了,幸运的是他提到他有一个解决方案!这意味着我有 5 天的时间用标牌为这座城市装扮并把所有东西都拿出来,合成,添加音效/音乐,剪辑,编辑和提交条目,同时仍然有一份朝九晚六的全职工作。
我提到所有障碍的原因是在处理这样的项目时快速进入重要的事情。生活总会在最后一秒投出曲线球。永远不要因为它而灰心,并坚持下去。全力以赴,最后一段总是充满压力和麻木,但如果你通过了,除了奖励等待另一边,别无他物!
回到UE!

散布标志和全息图
现在我的所有资产都被吸收到 UE 中,然后我不得不将它们手动放置在整个城市。在等待 GIF Importer 开发人员的回复时,我开始在屋顶上放置所有霓虹灯标志。这里要提到的一件重要的事情适用于你可能做的每个项目,就是总是问为什么?如果你在某个地方随机放置一个标志,问问自己为什么它在那里?为什么会有人在那里看它?这样做可以让你更好地了解你的世界,让你有策略地将所有这些放在逻辑上有意义的地方。将它们放在您认为有人会租用广告牌空间用于商业广告的地方。将它们聚集在一起,就像在现实生活中广告争夺广告牌房地产一样。将它们置于道路/其他有利位置的易见处。这样做还可以帮助您将城市划分为多个区。带有金融内容、银行标牌等的广告可以在您的金融区、电影院/俱乐部/酒吧在娱乐区、在您的住宅区的其他通用广告,等等。观察和模仿你在现实生活中看到的东西是创造现实内容的第一要素。

添加物理光
直到现在,城市中所有所谓的“光源”都只是发光的霓虹灯和全息图。由于自发光,它们在黑暗和反射中自然可见,但它们实际上不会照亮周围的表面。为此,我们将需要场景中的实际灯光。
我主要照亮城市的方式是使用巨大的矩形灯(几个城市街区的大小)来照亮实际建筑物,并使用点灯来照亮小壁架/细节照明。为了使我的照明逼真,我尝试做的一件大事是分解灯光的颜色以创建更多的色调/饱和度/值变化。大多数现实生活中的灯都不是单色的。这就是为什么每当我创建一个矩形光时,我都会将光纹理设置为图像而不是单一颜色。
差异相当可观。这就是为什么我强烈建议使用图像而不是单一颜色进行照明。照亮像城市景观这样的大景观的另一个技巧是遵循我所说的“暗光”技术。一个非常古老的技巧,通过让前景建筑物变暗并在它们正后方的建筑物上放置灯光,使这些背景建筑物真正明亮,从而使我们的前景黑暗建筑物更加流行,从而使您能够创造一种深度感。像这样在整个城市中分层照明(记住相机的视角)会给城市带来巨大的深度,否则会因为无数的窗户而变得非常混乱。
最后几个快速提示。如果您放置了几十个灯并因此影响了性能,我建议关闭“投射阴??影”选项,尤其是当大型矩形灯在给定时间照亮 3-4 个城市街区时。街道上的大多数照明通常是漫射的,没有刺眼的阴影。但是,不要过度使用它,因为阴影对于良好的灯光分层非常必要。同时将您的衰减半径(光的影响范围)保持在较小的范围内将有助于您恢复一些性能。
至于太阳光,我使用了灯光选项卡下的太阳光和天光。此蓝图自动创建定向光(太阳)、天空光(捕捉天空颜色并使用它均匀照亮场景的环境光)和天空氛围(占据定向太阳光位置并改变天空颜色的组件)天空相应)。我所做的只是把太阳放在低处,营造出一种美好的日落温暖心情。

添加指数雾
雾或大气在将任何开阔的风景镜头变为现实方面起着非常重要的作用。光不仅照亮表面,还照亮它在空气、水或固体(透明物体)中传播的体积。
悬浮在空气中的小尘埃颗粒捕捉光线,并作为一个整体提升场景的黑暗值。虚幻引擎的原生指数雾是开始使用大气的绝佳工具,但它可能需要进行一些调整才能使其在您的场景中发挥作用。我调整的第一件事是将定向内散射颜色从默认更改为黑色。
定向内散射模拟雾朝着定向光(启用大气)的方向更强。这是具有默认方向内散射设置的默认指数雾。
到处的雾都相当均匀。但是,如果我将 Directional Inscattering Exponent 设置为更高的值,您将看到雾如何在我的 Directional Light 中变得更加明显。
现在,这看起来可能是可取的,并且在某些情况下绝对有用,但是,如果我将相机向下移动,您会看到雾仍在靠近我的太阳方向的区域徘徊,而它应该被建筑物的阴影挡住了,并且应该在天空更高处更强。
为了减少这个问题,我将定向内散射颜色设置为黑色,以便主色和密度行为由定向光(太阳)驱动。事实上,它已经是日落了,现在我的指数雾的颜色自动匹配并显示为橙色。这是一个没有雾然后有雾的场景的例子:

交通让城市更生机勃勃
此时,这座城市看起来已经很不错了,但任何时候相机直视下,都看不到任何交通拥堵的道路。一切看似细致,却毫无生机。现在,我离截止日期只剩下几天了,所以我决定使用 2D 视频元素和合成,而不是用 3D 汽车添加 3D 道路(如果想要获得逼真的街道细节,这需要数周时间)他们就在 UE 内。记住这一点很重要,这是我在制作时学到的一课。
如果您负责项目的最终创意外观,那么重要的是最终结果。很多 3D 纯粹主义者会将此视为作弊,但我个人认为,如果您的目标是从 A 点到达 B 点,那么请乘坐已经发明的轮子并到达目的地。没有必要重新发明轮子,尤其是在截止日期之前。如果我的最终目标是让这座城市充满活力,无论我是使用交通视频片段快速而逼真地实现它,还是花费数周时间手工制作每条街道的 3D 细节,都没有关系。现在当然,如果你的目标是重新发明轮子,那么是的,无论如何,花时间和精力手工制作每一个细节,最终肯定会更有价值,尽管需要花费大量时间。
由于时间不是我的奢侈品,我做的第一件事就是去Pexels。Pexels 是一个由创意人士组成的了不起的社区,他们慷慨地捐赠他们的高质量照片和视频用于任何用途,无论是商业用途还是非商业用途。我强烈推荐这个网站来满足您所有的素材需求。我最终找到了很多无人机镜头,都是在夜间拍摄的,但大多数都是以四分之三的角度而不是完全向下看的。这很重要,因为当您将此视频素材作为纹理分配给 UE 中的地面时,纹理需要尽可能平坦并且没有任何摄像机移动。最后,我找到了这两个 视频,感谢 Tom Fisk 和 Mixkit,因为它们是完美的直视无人机镜头。
随着摄像机的移动和旋转,我首先在 Nuke 中稳定了镜头(您也可以在 After Effects 中进行),因此道路被锁定到位。然后我使用 UE 的媒体播放器组件来加载这些视频。
要进行设置,请按以下步骤进行分解:

1.右键单击内容浏览器中的任意位置,然后创建媒体 > 文件媒体源。双击它,这是您输入下载视频的文件路径的地方。
2.接下来,我们需要一个播放器(想象成一个 VLC 媒体播放器)来播放这个视频和一个视频纹理(就像我们可以在材质编辑器中调用的常规纹理)。为此,再次右键单击并创建媒体 > 媒体播放器,它会询问您是否方便,如果您想将此播放器的输出创建为视频纹理并将其链接起来。选中该弹出窗口中的框,然后单击“确定”。
3.现在双击媒体播放器,您应该会看到一个带有播放/暂停按钮的窗口,在下面的列表中,您将看到步骤 1 中的媒体源。双击您的媒体源开始播放。根据您的硬件,播放可能是流畅的,也可能是断断续续的。确保单击循环复选框以使您的视频循环播放。就我而言,由于这些交通视频中的每一个都很长,我从未在我的相机动画中看到剪辑的结尾。如果您的相机动作很长而您播放的视频较短,您会看到它跳回到开头,因此在导入之前确保您的视频是可循环的。
4.现在,让它在这里播放并最小化窗口。不要暂停您的视频或关闭此播放器窗口。在下一步中,我们将创建素材并分配视频,为了在编辑器中看到正在播放的视频,您必须保持播放器窗口打开。这个小技巧花了我几天的不间断搜索才弄明白。如果没有看到编辑器中播放的视频,我就无法封锁我的城市。但是,如果您关闭播放器,这只会暂停您地面上的视频纹理,如果您的资源不足,这很好。
5.右键单击内容浏览器中的任意位置并创建新材质。将模式设置为 Unlit 并拖放在第 2 步中创建的视频纹理。如果您正确地执行了第 4 步,您应该会看到正在播放的小缩略图。将其连接到发射颜色并保存您的材料。现在,如果您将此材质分配给一个巨大的平面并将其放在地面上,您就会拥有一个动画视频!
由于我们的地面已经被我们上面谈到的那些重复的窗户纹理覆盖,这些道路视频实际上开始覆盖它。为了使道路视频透明(因此黑色区域将变得透明而道路保持不透明),我简单地将材质模式更改为遮罩/半透明。然后我使用Cheap Contrast节点将视频转换为黑白地图(白色是光线所在的地方,将不透明,黑色是道路周围的黑暗区域,它将变得透明)并将其插入不透明度插槽。现在我可以看到道路,同时还能看到重复的“窗户纹理”地面材料。
最后,需要意识到的重要一点是,尽管添加了这些交通视频,但它们仍然感觉与城市有些疏离。为了让城市沉浸在最真实的氛围中,我们需要让街道和汽车上的这些灯光照亮我们的 3D 建筑。
这就是我在最后一个镜头中所做的,当时人们正在对警察进行暴动。我在 Pexels 上找到了 Kelly Lacy 上传的这个完美视频,将其稳定并带入,并以与以前相同的方式进行设置。
但是,您可以看到视频中已经有一些建筑物倾斜和扭曲,因此我将我的 3D 建筑物正好放在它们的顶部以隐藏它们。现在我的建筑物离得很近,从技术上讲,警车的闪光灯应该能把它们点亮。所以我创建了一个矩形光,并将我的亮度键控防暴视频如上所述分配到光纹理中。将它完美对齐意味着每当警灯闪烁时,我的建筑物都会自动被它照亮。这绝对是在推销现实主义,并消除了观众对建筑物不是真实的所有怀疑。

相机动画
为 CGI 添加真实感的最后一个百分比是通过相机动画。当城市开始成形时,我像糖果店里的孩子一样被诱惑,想要飞来飞去,将相机放在许多令人兴奋的地方,并以非常令人兴奋的方式为它们制作动画。然而,意识到不可能的相机移动(相机飞得太快,飞得太近物体,飞过栅栏或玻璃之类的东西,飞得太突然和快速改变方向等)很容易把观众带走是非常重要的的沉浸式体验。
因此,最重要的是,始终进行逼真的相机移动。我喜欢这样想,现实生活中的相机非常昂贵,因此电影制作人不会做这些疯狂的相机动作。就像这样,想象一下你的 CG 相机实际上是一个昂贵的硬件,如果你不小心就会坏掉。这将使您专注于人类可能的动作,从而产生更令人信服的动画。
在整个短片中,我选择了可??以由直升机/无人机记录的相机移动,因此我的动作非常缓慢。我还确保我的相机角度都不是太浅(查看掠过角度),因为这展示了我的道路视频纹理是多么平坦。始终聪明地工作并发挥自己的优势。如果摄像机视图显示某些问题,最好找到另一个角度,而不是通过错误显示某些内容来破坏观看者的沉浸感。
话虽如此,我真的很想让观众完全沉浸在我正在构建的这个世界中,这就是我选择添加手持相机移动的原因。我在城市里飞了几个小时,试图找到一个地方,一个可以欣赏整个城市的完美屋顶景观,在那里你可以脱离自己,在它经过时看到世界。
出现在 2 分 11 秒标记处的镜头设置在建筑物侧面的椽子上,该建筑物在基本通道中全部手工制作。我想让它感觉像那些屋顶攀登冒险者所拥有的单反相机,自动对焦。城市灯光的散景效果绝对吸引人,自动对焦通常会自然而然地完成。
有一次,当他试图在椽子周围导航时,突然听到远处一声巨响,他拿起相机想看到什么却找不到,最后通过摇摄相机四处寻找。这是我手工制作的基本通道。为了添加逼真的相机摇摆效果,我决定使用 UE 附带的 Camera Shake 蓝图。
在相机中调整的最后一件事(或者您可以在后期处理体积中进行)是曝光和光线跟踪设置。默认情况下,相机设置为自动曝光,这意味着如果它很暗,它会自动照亮您的场景,反之亦然。我个人不喜欢它,而是将其设置为手动。之后,根据您的喜好调整曝光补偿滑块,使其足够亮以成为夜间场景,但又不会太亮。在现实生活中,如果你飞越城市,夜晚的黑暗区域会非常黑。

光线追踪
最后,我想利用与 RTX 兼容的 Nvidia 2080Ti GPU 的强大功能,因此在相机?? > 镜头 > 渲染功能 > 反射中我设置为光线追踪。
注意:要使光线追踪工作,请确保转到您的项目并搜索名为“默认 RHI”的设置并将其设置为 DirectX 12。此外,搜索光线追踪并确保它已打开。
接下来在相机的光线追踪反射部分(或后期处理体积),我将
“最大粗糙度”设置为 1。当它设置为默认值 0.6 时,通俗地说,这意味着 UE 将尝试使用光线追踪计算反射,直到粗糙度值为 0.6,其余的将使用老式的“屏幕空间反射 (SSR)”技术计算。当您将其设置为 1 时,这会降低您的 GPU 速度,但反过来,您的整个场景将开始使用光线追踪,从而消除不太准确的 SSR。如果你的场景充满了粗糙的表面,调整它不会有太大关系。
之后,我将 Max Bounces 设置为 16。默认值为 1,这意味着光线将从 1 个表面反弹然后消失(不计算)。如果将其设置为 16,则光在消亡之前将在不同的表面上反射 16 次。这意味着您将获得相互反射的对象的良好内部反射。这也会降低您的 GPU 速度。
接下来是每像素采样数。增加这个值最能减慢你的 GPU。你设置多高完全取决于你的 GPU,我的可以处理 16 个样本,这反过来将场景从 45 FPS 减慢到 10 FPS。然而,你走得越高,你的反射就越干净,噪音就越小。对于渲染过场动画,fps 并不重要。

声音设计
没有声音设计,任何出色的沉浸式体验都是不完整的。好的视频是成功的一半,正如他们所说,好的声音是另一半。我使用才华横溢的音乐家已经创作和免费提供的非常令人惊叹的曲目来设计整部短片,没有他们,这部短片不会引起任何情感:
Eon : Eon 的免版税配乐收藏量很大,他的单曲“片段”有一个非常有趣的开场白,让我能够创作这个开场标题镜头。开场日落镜头和接下来的城市建立镜头实际上是两个不同的镜头,它们在 After Effects 中使用 2D 作弊合并在一起,使您看起来像是在电梯井中旅行。
Scott Buckley:他的配乐“Discovery”是整部短片中最突出的主题。整个轨道完美地流动,但是,我想在轨道放慢节奏并变得柔和的那一刻起关键作用。我编辑了短片和配乐,当这种情况发生时,它会切换到椽子高处的手持拍摄,这是一个非常个人化的时刻。
我还想在这一刻让观众沉浸其中,让他们感受到从远处观看这座未来主义城市的感觉。这就是为什么我从Freesound获得声音的原因,Freesound是我寻找叙事声音的首选资源。这些是在您的叙述中创建的声音。就我而言,我寻找听起来像金属叮当声、生锈的旧金属门摇摆、金属链相互撞击、远处城市隆隆声、远处汽车声以及强风吹过摩天大楼的声音。将这些以适当的量混合,镜头就会提升到一个新的水平。
让人们后来评论说那是他们最喜欢的镜头,绝对值得为它设计声音。

结论
最后,我在这短短的 4 周内创造性地挑战了自己,并且肯定会推荐人们参加那些有截止日期的比赛。承受这种压力肯定会集中您的注意力,并使齿轮转动得更快、更智能。我真的很感谢在整个旅程中帮助过我的每一个人。我希望本教程中的信息对你们中的一些人有所帮助。
我肯定会把我在这个项目中学到的所有东西都用到我的下一个项目中,在那里我将用电影质量的 CGI 重新创建 90 年代蝙蝠侠:动画系列的介绍。我计划从节目中采用经典的 40 年代装饰艺术风格,并将其与新黑色调色板中的赛博朋克美学相结合。因此,如果您想关注更新,请查看我将发布旅程的社交媒体,并带您了解重新设想的哥谭和蝙蝠侠。感谢您的时间,我向您道别,祝您在创造自己的世界时好运!

返回首页

作者 lll

发表评论