在虚幻引擎4中构建“星球大战”,其中包含一些以星球大战为主题的资产的最逼真的实时渲染。这是一个惊人的项目,您实际上可以在 PC 上下载和播放。我们已经讨论了工具的选择、生产流水线、光照、纹理,当然还有 UE4 的使用。惊人的工作!
简介
你好,我的名字是Jason Lewis,我想你可以称我为这个小组项目的负责人。我是为Obsidian Entertainment工作的高级环境艺术家. 除了我自己,在这个项目上与我一起工作的其他艺术家目前也都在为 Obsidian 工作,从其他高级艺术家到中档和初级艺术家。我们甚至在 QA 团队中也有人贡献了一些艺术作品。总共有 17 人以不同的身份为这个项目做出了贡献。这是一个只是为了好玩的个人项目,除了我们都是一群超级星球大战粉丝之外,我们都无缘无故地为这个项目做出了贡献,而且这些天来,随着星球大战的所有精彩不断,我们都认为这将是一个是时候加入并制作高质量的粉丝艺术项目了。除了只是一群超级星球大战书呆子之外,我们中的几个人现在一直想找个借口学习虚幻 4,所以我们认为这是一个绝佳的机会。
我自己已经在游戏行业工作了 21 年多,在广泛的工作室工作,从我职业生涯早期的小型初创公司到一些较大的发行商/开发商,如索尼和 EA。多年来,我为许多游戏做出了贡献,其中一些比较著名的游戏是 Enter the Matrix、The Matrix Path of Neo [ Shiny Entertainment ]、SOCOM 4 [ Zipper Interactive & Sony Computer Entertainment ]、Medal of Honor Warfighter 和简介参加战地 4 DLC [ EA] 和装甲战 [黑曜石娱乐]。1999 年和 2000 年,我也曾短暂中断过游戏制作,转而制作 Starship Troopers 动画电视连续剧。正如我之前提到的,除了我自己之外,我们还有其他几位艺术家与我合作,其中大多数都有超过 10 年的经验。值得一提的是Terry Hess,另一位资深美术师,他曾为数个《使命召唤》系列作品工作,还曾为 EA 制作《荣誉勋章》和《战地风云 4》。Craig Marschke是《使命召唤》领域的另一位资深美术师,也是令人怀念的 Novalogic时代。Ken LeSaint和Thad Clevenger,两位来自不同行业背景的资深艺术家。布赖恩·勒勒,Obsidian 的主要照明艺术家之一,以及其他几位艺术家。
星球大战计划
所以我们的星球大战场景只是从我想要建造一个 3D 千年隼开始。我是《星球大战》的超级粉丝,我一直想建立一个 CG Falcon,但直到现在似乎都没有时间去做。它最初是一个简单的3ds Max模型,但后来我认为看到它实时运行可能会非常简洁,而且由于在此之前我没有使用 Unreal 4 的经验,我认为这可能是一个值得学习的好项目UE4,所以我的目标是构建任何人见过的最详细的实时 Falcon,我想我已经完成了,除了最近ILM X-Labs VR 演示中的 Falcon 模型那是几个月前的 GDC。他们的可能比我的更详细一点,或者至少两者可能彼此相当,但从我从在线视频中看到的情况来看,他们的模型更准确地为 Studio 模型,而对于我的模型,我采用了细节上的一些自由,使其更好地与我的场景配合使用。
最初它只是坐在 Docking Bay 94 中的 Falcon,所以我可以跑来跑去实时查看它。然后我认为将内部添加到停靠湾会很整洁,然后可能是周围的一些 Mos Eisley 市,然后我想“嘿,让我们也把 Mos Eisley Cantina 也放进去吧!” 正是在这一点上,我意识到这个项目的范围已经超出了我一个人完成的能力,所以我邀请了几位在 Obsidian 与我一起工作的艺术家在空闲时间帮助这个项目,我得到了很多非常热情的 YES 回应,所以我根据志愿者愿意投入的时间和精力来分配工作。
目前我们已经完成了大约 90%,我们的最终目标是完成它,并将其放在互联网上供人们免费下载和欣赏。它不是真正的游戏,更像是一个互动的粉丝艺术作品。你可以带着爆能枪(或你必须找到的隐藏武器)到处跑,但我们无法获得任何角色艺术家的帮助,所以环境中唯一与你在一起的角色是一群 Astromech 机器人和一些 Gonk机器人。我们也在开发 VR 版本,团队中的几个人一直在玩 Occulus 和 Vive VR 套件,我们认为拥有一个在 VR 中运行的版本会很酷,所以我们目前正在努力获得那也结束了。
建造星球大战
该场景实际上是一个实验,以了解我们可以在可接受的帧速率下在现代 PC 图形硬件上运行多少细节(多边形和纹理细节)。因此,我们正在推动一些相当高的多边形数量和纹理尺寸。我们正在做一些模块化,但在更宏观的范围内。建筑物被实例化,整个停靠舱在关卡中重复使用了 3 次,一些道具被重复使用,但我们没有做太多的微观模块化(没有墙壁、地板、楼梯瓷砖集等)大多数一切都是独特的资产。从构图的角度来看,我们研究了《星球大战 4》中的几个场景,并尝试尽可能地模仿那些场景,同时仍然在自由导航的实时环境的范围内工作,但环境的主要焦点是停靠舱以及其中的船只。
从资源的角度来看,这个场景相当沉重。仅我的 Falcon 就大约有 700,000 个三角形,另外还有 500,000 个左右用于停靠舱和周围的道具。城市中有一些地方的多边形数量可以达到 100 万多一点。到目前为止,我们已经测试过显卡上的 VRAM 使用情况,当设置一直调高时,峰值约为 4.1 GB。由于在我们的空闲时间进行这项工作的时间限制,我们没有时间构建任何 LOD,而是根据玩家位置在内存中和内存中流式传输场景块。尽管我们的多边形和纹理计数很高,但该场景在我迄今为止测试过的 GPU 上运行得非常好。目前我们在 GeForce GTX 970、980 和 Titan X 上获得 45 – 60 FPS。如果我们减小内存池大小,至于mockup阶段,我们没有经过传统意义上的。我们首先构建了所有无纹理的东西,而不是构建我们资产的低细节版本来粗略地绘制关卡,我们从一开始就将所有模型构建到最终的细节层次,然后通过我们的基本布局,然后继续进行照明和材料/纹理生产。在整个过程中进行了一些迭代,但我们发现跳过阻塞建模阶段使我们能够更快地完成更多工作。场景确实在某一时刻变得有点过大,我们确实不得不将其缩小以适应时间和可用的人力。
资产
我们的场景确实拥有大量资产,我相信这是使其如此独特和身临其境的重要原因。我们将资产分为 3 类,建筑物和结构、船舶和道具资产,正如我之前提到的,然后根据志愿者愿意和能够投入的时间和精力,将这些资产分配给志愿者。对于场景中的道具资产,我很早就想出了一个管道,以实现高质量的最终结果,同时也能够快速完成它们。在大多数情况下,团队中的其他人都遵循了我的流程。我们大多数人都是 3ds Max 用户,所以它基本上是这样的:
构建最终的低多边形网格
构建用于烘焙的高密度网格(我们的高多边形网格通常仅用于在我们的法线贴图中生成斜边。通过Zbrush、Quixel或Substance Painter绘制或雕刻小型微法线贴图细节)
烘焙切线空间法线贴图/AO 贴图/和曲率贴图
向法线、AO 和曲率贴图添加微观细节
最终纹理通道(我们大多数人使用 Quixel Suite,少数人使用Substance Painter)
建筑物和大型结构被建模为其最终的低多边形状态,并在没有任何从高到低烘焙的情况下被带入 UE4,因为它们主要使用可平铺的石膏和金属纹理。我们的大多数建筑材料都使用世界空间投影纹理,从而无需进行耗时的 UV 工作。光照贴图烘焙只需要一个快速、简单的 UV 通道。
至于猎鹰,那是完全不同的动物。必须做的第一件事是将这艘标志性的飞船分解成几块,每块都有自己独特的材料。最终的 Falcon 由 50 个独特的网格组成。由于它的大尺寸和复杂的细节水平,上面提到的纹理处理过程都不起作用,因为简单的平铺材料无法提供我试图达到的保真度,而是赋予这 50 件作品中的每一件自己独特的纹理即使是 4GB 或 6GB 的 GPU,集也会很快炸毁,因为它们都必须是 4K 分辨率,以防止当玩家的相机靠近飞船时纹素密度下降。因此为了缓解这些问题,我决定尝试使用 Unreal 4 的分层材质系统。对于那些不熟悉分层材质系统的人,它基本上允许您使用定义不同表面类型的平铺纹理创建主材质,并且在单个根材质中,您可以放入几个这些主材质并通过位于网格的 0 – 1 UV 空间中的遮罩将它们混合在一起。这通过使用几个 1K 可耕的纹理来定义所有表面类型,并为 Falcon 的每个部件使用单个 4K 蒙版纹理,而不是为每个飞船部件使用 3 个 4K 纹理,从而消除了 GPU 内存问题。与仅使用传统的可平铺材料相比,使用混合蒙版对可平铺材料进行分层可为您提供更好的保真度。分层材质系统的缺点是它比更传统的材质设置产生更高的每像素成本,从而增加了 GPU 工作负载。
材料
我在上面的问题中涉及到了材质创建,但我会在这里更详细地讨论。所以材质工作也主要基于其父网格所属的类别,结构/船舶/道具。对于建筑物和结构,我们使用具有世界空间对齐纹理的可平铺材料。UE4 的世界空间对齐系统运行良好,让我们能够更快地创建这些资产,而不必在复杂的 UV 上花费大量时间,而这些 UV 必须非常小心地设置,以免平铺中出现大量接缝。世界空间投影在曲面之间的融合方面做得非常好,您偶尔会在这里和那里看到接缝,但没什么可怕的。速度优势远远超过随机接缝或投影故障。除了瓷砖材料,我们在环境中的大船,千年隼号,正在使用上述分层材料系统。我在尝试将分层系统用于较小的道具资产时确实做了一些尝试,但发现设置它的时间和使用该系统的额外 GPU 成本对于小于这些英雄设置件的资产没有意义. 建造帝国航天飞机的艺术家最初计划使用分层材料系统,就像 Falcon 使用的一样,但最终他在他的模型上运行得有点落后,所以他决定只使用传统的漫反射/法线/粗糙度/金属度工作流程因为分层系统虽然非常有效,但与传统的纹理设置相比,它确实需要更多的时间来进行设置。
道具资产使用非常简单的材料设置。您的基本漫反射贴图/法线贴图和用于粗糙度、金属度、AO 和镜面反射的单个灰色填充纹理。我们在着色器中放置了镜面反射和粗糙度的乘数,因此我们可以调整任何表面的整体哑光/闪亮值,而无需返回并重新创作纹理。此外,我们在整个关卡中使用了许多发光材料,这些材料提供了漂亮的明亮色彩口袋,同时也补充了实际照明。我们经常使用的另一个材料技巧是 UE4 的翻书节点。您可以制作动画精灵纹理图集,然后告诉动画书在您的图集中有多少行和列,它会不断滚动这些精灵帧,并通过插入乘法节点,您可以调整动画书的播放速度。
我们的纹理主要是使用 Quixel Suite(以及一些 Substance Painter)程序化创建的。我们中的大多数人都非常熟悉 Quixel,因为我们在 Obsidian 将它用于制作,我们中的一些人为我们的 Mos Eisley 场景制作了一些很棒的预设智能材料,我们与团队的其他成员分享了这些材料,以实现更快的纹理创建。我想说我们的分割是大约 70% 的 Quixel/Substance 纹理,以及来自互联网和个人收藏的 30% 照片来源的纹理。大多数可平铺纹理是用于建筑物墙壁和灰泥、泥土和沙地地形和地面纹理等事物的照片来源地图。
照明
在为这个场景做了一个粗略的第一遍照明后,我很快意识到这个环境的照明将是一个非常大的任务,所以当我们在 Obsidian 的一位敬业的照明艺术家提出为我们照亮我们的场景时,我很快就交了灯光统治着他。以下是他对为我们的 Mos Eisley 场景进行照明时所说的话:
猎鹰、人行道、面板等中较小的灯利用一个材质节点来控制每个子材质的绽放和烘焙 GI 的强度。因此,与面板上的灯相比,人行道上的一些照明可能具有更高的光反射强度。它们的光晕也降低了,因为较大的灯(如太阳灯和停靠湾灯)的后期处理增加了光晕。
对于场景的其余部分,由于 95% 是外部(或带有开口的内部),我使用单一的主导定向光,并以准确的开尔文温度*为目标的真实世界亮度值。一旦主要光源准备就绪,我就使用 Lightmass 设置(使用来自 archviz 线程的许多设置,在编辑器中,没有 .ini 更改)并进行第一次烘焙,以查看需要添加灯光的位置放置以增加角落或需要额外GI的地方的光线。在环境相当完成后,我开始工作室内照明。场景中环境本身的大部分灯光都是静态的,因为我只希望它们的颜色信息(无镜面反射)用于额外的 GI 或更加强调特定区域。任何会影响玩家的灯光对于额外的烘焙元素都是静止的,但对于需要它们的资产具有动态阴影。没有使用动态 GI 或 AO,因为当我最初开始使用照明时,它们仍然存在相当大的问题。雾是用 UE4 必须提供的两种雾类型完成的。大气雾很好地为静态天空盒提供了与一天中的时间相关的更多深度和颜色,而基于高度的雾让我推动了低洼、尘土飞扬的感觉。最后,在场景周围放置了多个后期处理卷。一个未绑定并用于整个场景和一些内部空间的几卷。全局体积有颗粒、光晕、色差、晕影、色调映射和曝光变化,
*在 UE4 中依赖真实世界亮度值的方法并非 100% 完美,因为某些亮度值在编辑器中是不可能的。还有其他因素可以调整测量,例如立方体贴图、雾和其他灯光,因此亮度会在关卡的整个发展过程中发生变化。然而,我喜欢从基础照明的测量开始,因为它通常可以很快地捕捉到情绪,并允许我在后期打磨过程中艺术性地偏离。
忠告
如果经验较少的人不确定如何开始或在开始任何大小的新项目时将注意力集中在哪里,那么有很多好的建议可以传递给他们。以下是我自己和与我一起在这个项目上工作的其他人的一些技巧:
快速完成工作并以良好的连续步伐前进的一种方法是首先关注大局。广泛的笔触,在你过多地涉及小细节之前,先整理你的形式和构图。很容易迷失在细节中,这样做会很快使您的开发过程陷入困境,并把您的目标推向远方!另外,找到一些适合您的好的生产方法。我个人似乎有很多论坛帖子都在谈论正确的做事方式和错误的做事方式,忽略这些。创造事物的方式没有对错之分。对人们试图教给你的其他方法持开放态度,因为它只能帮助提高你的技能,但归根结底,如果这个过程适合你,并且最终结果是你所追求的质量水平,那你就做对了!
了解 PBR 可以使场景融合在一起时事情变得容易得多。使用任何当前的纹理工具,例如 DDO 或 Substance Designer/Painter,都将极大地加快纹理处理过程,并使您能够更快地获得相当准确的材料。当需要进行照明时,让所有材料在空间中感觉统一并扎根会有所帮助,这是环境的另一个极其重要的方面(但我可能有点偏见)。也不要害怕深入研究构建环境的技术方面。了解灯光将如何影响您的材质、两种立方体贴图投影之间的区别、3 种灯光类型以及它们提供的多种阴影贴图类型,将使照明变得更轻松,并且在某些看起来不稳定的情况下更容易进行故障排除。色彩理论对照明也有很大帮助,因为这让您知道如何通过在现有纹理资产之上使用颜色关系来更多地推动场景。无论光线强度如何,情绪都可以通过颜色来建立。
我们不建议任何刚从学校毕业的人尝试解决这种问题。这可能会让他们不知所措。从小事做起,与其他朋友和同事一起分工。即使每个人都只制作一两个资产在一个场景中共享,也要尝试从每个部分中获得尽可能多的里程。了解真正的 PBR 工作流程并分享贴有贴花的通用材料,赋予它们生命。低效的构建也会节省您的时间,但在普通机器上运行会更困难。质量和速度永远不会在同一边,所以在项目开始时做出选择并相应地计划。
引用帝国航天飞机上工作的艺术家的话:我在 Lambda Shuttle 上工作,我努力让我的航天飞机与其他人有所不同。我选择了更传统的高聚烘焙到低聚烘焙。回顾过去,我绝对会建议完全跳过高多边形步骤,从头开始处理最终网格。节省的时间使它完全值得,除非您计划拥有一个非常好的高多边形模型来炫耀您的投资组合。为了获得通常通过从高到低烘烤获得的漂亮边缘,您可以使用其他几种技术。Maya 和 Max 都有使用着色器在硬表面上获得圆边的方法,这将为您节省大量时间。
确保您的比例准确。如果他们离开资产看起来不正确,即使玩家/观众无法查明哪里出了问题,他们仍然会知道资产有问题。给你的资产历史。不要只做一扇门然后把它漆成红色。想想门上发生了什么。红之前是什么颜色?涂了多少遍了?谁或什么使用门?他们穿的是金属的还是布的?门是踢开还是推开?所有这些都为一扇门赋予了历史。它将使您的资产无限有趣。这将共同创造一个更好的整体构图。
感谢您抽出时间查看我们的项目。如果您有兴趣了解该项目是如何从一开始就发展起来的,我们有一个关于它的 polycount 线程,它很早就开始了,它显示了该项目的早期状态。
此外,如果您想下载并直接享受它,请随时这样做。它有点系统密集,我们建议至少 16GB 的系统 RAM 和至少 Nvidia GTX760 或 AMD 等效设备以可接受的帧速率运行。对于高帧率和/或 2560 x 1440 或 2560 x 1600 的分辨率,我们建议至少使用 Nvidia GTX970 或更高版本,或 AMD 同等产品。