引言

大家好!我叫 Tulika Roy,是一名 3D 环境艺术家。最近我刚刚完成赫特福德大学(University of Hertfordshire)游戏艺术与设计专业的硕士学业,毕业设计作品就是 Outstead。

我最初对 3D 产生兴趣,是在读 3D 动画与视觉特效本科的时候。那段时间我们接触了很多方向,包括动画、VFX 等等,而我开始对 3D 建模产生兴趣。我很享受从零开始做出一件东西,再看着它一点点长成完整的环境或道具。

随着技能不断提升,我对环境艺术越来越感兴趣。这也成了我在硕士阶段最想探索的方向,并通过风格化维京环境——也就是我的毕业项目 Outstead——来实践。

最终渲染的维京村庄场景:红色木瓦屋顶的长屋,屋脊与门廊装饰着木雕龙首,屋前小路旁立着木栅栏、木桶与长桌,烟囱顶部扣着一顶维京头盔,背景是连绵的青山与蓝天
长屋侧面近景:红色木瓦屋顶与木雕龙首屋脊装饰,墙边堆放着木桶、木箱和一辆搭着黄色帆布篷的木车,左侧是木栅栏、草地与远山
长屋屋顶特写:层层叠叠的红色木瓦铺满整个屋面,屋脊两端与山墙处装着木雕龙首和金属加固件,屋顶上还有一扇小小的天窗
长屋旁院落特写:木架上摆着一只带金色包角和锁扣的木箱,旁边的木条箱里斜放着一面圆盾,木柱之间拉着黄色布篷,地面上散落着几段原木

概念与灵感

我翻了很多不同的概念图,因为我不想选一个已经被做烂的题材。看了各种想法之后,我看到了 Skylar Zhang 画的这张维京长屋概念图,非常喜欢。

概念设计图:中央是一栋红顶维京长屋的彩色设定画,右侧是宝箱概念草稿与长屋的素描结构图,下方排列着六张长屋立面草图与一排配色色卡

我很喜欢它设计得恰到好处——精细但不至于过于复杂,这意味着我仍然可以做自己的改动,加一些属于自己的细节,去贴合我为这个环境设定的故事。我特别喜欢这栋房子的造型,还有屋顶那道微微的弧度,让它很有性格。

选它的另一个原因,是我想借这个项目第一次用一整套环境来尝试手绘贴图。那时我刚起步学手绘,还没有用它做完整的环境。我也开始思考,究竟谁会真的住在这栋房子里。我想象它属于两位老朋友——他们告别了过去那种爱冒险的生活,如今一起安静地过日子。我不想让角色本身成为重点,但希望环境和道具能透出一点关于他们是谁的线索。

整个项目里我用了大量参考,从房子和整体环境,到每一件道具和更小的细节。这很重要,因为完全凭想象去做一件东西,还要让它可信,真的出奇地难。有真实参考再加上风格化参考,我就有了可依循的依据,在处理每件资产的形体、材质和细节时也能做出更好的判断。

参考图拼贴板:包含维京长屋的外观照片与绘画、木质结构局部、屋顶与墙板细节、道具与材质参考等多张图片,按类别排列在一起

白模搭建与构图

想法确定下来之后,我先在 Unreal Engine 里给房子和周围环境做了一个简单的白模。我主要想先把比例和构图理顺,再去抠细节。

Unreal Engine 视口截图:场景还处于白模阶段,用简单几何体搭建出长屋、小路、长凳和栅栏立柱,周围是绿色草地、远山与蓝天

我希望房子始终是画面的主角,所以开始琢磨怎么用地形和周围的小元素把视线引向它。我用小路、栅栏和山坡这些东西来框住房子,同时又不让环境显得太封闭。

我也希望环境给人的感觉是一片开阔的北欧草原,而不是茂密的森林。我用低矮的丘陵把背景打散,让画面不至于太空,同时保住房子作为视觉中心的地位。

建模流程

建模上我主要用 Maya 和 ZBrush。大部分资产在 Maya 里完成,ZBrush 则用来雕一些更细的细节。我从房子做起,因为它是整个环境的重点。我想保留原始概念图的整体造型,同时也做一些改动,让它成为我自己版本的房子。我把它当成一件主角级资产(hero asset)来做。

Maya 视口截图:灰色长屋白模的正立面视图,背后并列显示着维京长屋的彩色概念图、宝箱参考与结构素描,画面右上角显示模型面数 5758、三角面 11231

屋顶是我花了不少时间去思考的部分。我看过几种做法,包括用 Substance 3D Designer 生成,但最终还是决定自己建模。因为它在这栋房子上实在太过显眼,我觉得亲手把瓦片建出来,能对造型和我想要的整体效果有更多掌控。我做了几种瓦片变体,再用 MASH 和晶格(Lattice)把屋顶塑造成需要的形状。

Maya 视口截图:一片由数百块菱形木瓦交错排列组成的屋顶模块,模型以灰色显示,上方信息栏显示面数为 95594

小件资产我尽量保持简单。每一件我都找了参考,而不是全凭记忆去做,这样能保证比例和形体是合理的。

Trimsheet 工作流

这是我第一次认真使用 Trimsheet,所以一开始是跟着教程把基本流程弄明白。做的时候我又想起以前做测试时用过的另一个教程,那次我做了一块风格化的木板。那个方法让木板有了更多形状和体积,而不是平板一块。我想到可以把两套技术结合起来,做一张更有形状和起伏的 Trimsheet。

Trimsheet 贴图:画面中央是一排水平排列的木板纹理,中间夹着两块带方形雕花的木块,深色背景,左上角是 Uv 排布缩略图,右上角是材质球预览

我还给这张 Trimsheet 做了一版配色。我不想让环境里每件木质资产都一模一样,那样场景会显得扁平又重复。第二版在不重做整张 Trimsheet 的前提下,带来了更多变化。

同一张木质 Trimsheet 的两种配色版本并排显示:左侧偏暖棕,右侧偏橙黄,两块纹理都悬浮在一片开着白色小花的绿色草地上

贴图方面,我也从 80 Level 上 Alex Iveroth 的一篇文章里借鉴了一些思路:先选定一个局部色,把调色板控制在有限范围内,再在某些区域点上更强烈的颜色。这个结果让我很满意——把两套流程结合起来之后,Trimsheet 有了更多形状,木质资产也变得更有活力,而不是像一张平贴图盖在模型上。

草地上的木桌摆放着木桶、木杯和一块方形木料:木桶由木板拼成并用金属箍固定,所有木质表面都带有手绘风格的木纹、高光与色彩变化

贴图与材质

贴图上,我想让整个环境都用手绘贴图。那时我才刚开始学手绘,还在摸索。

出乎意料地帮到我的一件事,是在空闲时用丙烯马克笔画画。我一开始只是为了放松、做点项目之外的东西,但后来发现,亲手一层层叠颜色让我对色彩理论的理解更好了。我开始注意到一种颜色叠上另一种颜色之后会怎么变,这种理解在贴图时很管用。

木质资产我先铺一个底色,然后通过加阴影、暗部、高光和更亮的高光把贴图堆起来。我还会加上小块的强烈颜色来打破表面,让它不那么平。

这部分思路有一部分来自 Alex Iveroth 的文章,尤其是「把调色板控制得很有限,同时用小面积的强烈颜色让贴图跳出来」这个做法。我在各个木质资产上都用了类似的思路,让它们看起来像是属于同一个环境。

Substance 3D Painter 界面截图:画面中央是一只贴好木纹与金属包角的木箱,左侧是 Alpha 素材库,右侧是材质集、图层堆栈与填充图层属性面板

这大概是我在这个项目里进步最明显的一块。我意识到手绘贴图能把一件资产提升多少。

我还找到办法省下不少时间:把木质 Trimsheet 的贴图变成 Substance 3D Painter 里的自定义智能材质(Smart Material)。底色、高光、阴影我早就都在 Trimsheet 里搭好了,所以只要把这个文件夹转成智能材质,就能复用到其他资产上。

这对房子特别有用,因为我可以把同一套材质套在柱子、门和山墙上,再逐个补上各自的细节。这也意味着我不用反复回去翻 Trimsheet,去确认某个高光或阴影用的是什么颜色。颜色就在那儿,而且在各个资产之间保持一致,省了我很多时间。

六格展示图:木柱、带符文雕花的弧形梁、木门以及三组木雕龙首,全部沿用同一套木质与金属材质

它并没有替我把资产完全上好色,个人细节还是得手工加,但主要颜色和图层已经准备就绪,整个流程快了很多。这大概是我在贴图阶段找到的最有用的捷径之一。

草地用的运行时虚拟纹理(RVT)

草地方面,我在 Unreal Engine 里用了运行时虚拟纹理(Runtime Virtual Texture,RVT)。基本原理是让草地材质读取它下方地形的信息。在我的场景里,我用它把地形的颜色信息传给草地,这样草的颜色就能随它所在的位置而变化。

我是跟着一个教程把这一步搭起来的,它非常有帮助,因为把流程一步步讲清楚了。那个教程用的是 Blender 和 Unreal,但我用的是 Maya 资产,思路照样可以照搬。

Unreal Engine 材质图截图:Landscape_Master_Material 由多个 Layer 节点引出图层混合组合,依次连接权重混合、颜色输出与材质属性,左侧是材质预览球
Unreal Engine 材质图截图:Grass_Master_Material 通过 Runtime Virtual Texture Sample 节点读取地形信息,再与 Uv 通道、遮罩、Simplegrasswind 与 World Position Offset 节点混合输出

在我的场景里,我先在地形上画上不同的颜色,再用 RVT 让草地材质去读取这些颜色。这样一来,整片草就不再是一个平涂的颜色,而是能吸收它下方地面的颜色。地形上颜色略有差异的区域,草地也会跟着有细微的色差。

这让草地和环境之间的连接更自然,我也不用为每个区域单独做不同的草地材质。同时,改动地形的颜色会自动影响到草地,效率高了很多。草的运动我也做得很简单,只在材质里加了一点风。这样草会有一点摆动,又不会抢了场景里其他东西的注意力。

Unreal Engine 视口截图:Outstead_Env 场景中一座覆满青草的小山丘,左侧是 Landscape 与 Foliage 绘制面板,列出多种草与植被的实例数量,右侧是 Outliner 大纲面板

植被

植被是这个项目里对我而言完全陌生的另一块。我以前从没做过植被,所以在做这个环境的过程中,得现学怎么处理花、草和树叶。

花的部分,我在 Photoshop 里做了底色和 alpha 贴图,然后在 Maya 里用简单的面片搭出来。树叶也用了类似的办法:做好叶片贴图,再贴到面片上,而不是一片片建模。这样资产保持了简单,同时又能对环境里它们的样子有足够的控制。如果要在 Unreal 里做类似规模的草地与植被铺设,本站收录的 UE5 程序化植被与环境散布系统(Forest Tools)也是一套值得参考的方案。

Unreal Engine 材质图截图:Tree_Canopy 材质由大量叶子纹理、颜色与遮罩节点组合而成,左侧预览球上贴着几片风格化的绿色树叶

树冠着色器我跟着 Victoria Zavhorodnia 的教程做,那篇教程帮我理解了怎么在 Unreal 里做出更风格化、更蓬松的树。我还把一些材质参数暴露到材质实例里,方便我调整外观,适配自己的场景。

场景组装与构图

开始组装最终环境时,我已经有了满意的白模和一个主摄像机视角。这让构图轻松很多,因为我早就知道主要元素该放在哪儿。我也把原始概念图当作指引,特意选了相近的机位,让最终的环境在取景和感觉上都保留原设计的一部分。

循环动画:场景先从白模状态的几何体长屋与草地开始,随后逐渐变成贴好材质的最终环境——红色屋顶、木栅栏、木桶、长桌与花草陆续出现

我先摆大件资产,比如房子、栅栏和其他较大的环境元素。这样我能在纠结小细节之前,先看清整体是怎么在一起的。既然房子是重点,我希望周围的资产去衬托它,而不是跟它抢戏。

摆道具的时候,我也尽量把环境的故事放在心上。长凳、木桶、木箱、头盔这些小东西被安排在房子周围,让空间显得有人住过,也透出一点住在这里的人是什么样子。我不想让道具把场景堆得太满,所以主要集中处理从主摄像机确实看得见的区域。

灯光与渲染

灯光上,我想保持和整个环境一致的宁静、温暖的感觉,同时又有足够的对比,让房子和更细的细节能被看清。我试了几套灯光方案,最后选定了一套与画面色彩和整体氛围最搭的。

Unreal Engine 视口截图:从主摄像机视角看到尚未上色的场景,长屋、栅栏、木桶、长桌与道具已经各就各位,画面中散布着点光源图标与一盏被禁用的灯光

最终场景和渲染都在 Unreal Engine 里完成,我用 Ultra Dynamic Sky 来搭建天空和整体光照。调整灯光时,我是按它在主摄像机里看起来的效果来调,而不是试图让环境每个部分都一样亮。

时间、挑战与收获

一边上课、做兼职,一边推进这个项目,本身就已经是挑战,制作过程中我还遇到了一次意外,损失了一些宝贵的时间。等我重新回到项目上时,发现很难再启动起来,也对自己在做的事情失去了很多信心。

我从中得到的一个体会是:有时候最难的部分就是开始。我意识到,我不需要一上来就做得完美。我只要先让某个东西存在,然后再慢慢往上叠,把它变好。一旦重新开始动手,我的信心也一点点回来了。

对于从没用过的流程,我也相当紧张,尤其是植被——这也是我把它留到最后才做的原因之一。结果它反倒成了整个项目里我最享受的部分之一。能做出以前完全不知道怎么做的效果,再亲眼看到它在环境里工作,那种感觉非常值得。

把 Outstead 和我早期的一些环境放在一起比较时,我也能看到明显的差别。看到这种进步、知道自己在这个项目里学到了这么多,大概是完成它之后最满足的部分之一。

结语

Outstead 前后花了大约两个半月。回头看,我觉得这段时间里自己进步了很多。这个项目让我有机会去碰那些以前不太有把握的领域,尤其是手绘贴图、植被、Trimsheet,以及 Unreal 里的材质。

我最大的收获之一,是明白了规划和准备有多重要。早点拥有好的参考、清晰的白模和扎实的构图,会让后面的阶段轻松很多。我也学会了把时间花在环境里最重要的部分上,而不是试图让每件资产都同样精细。在手绘方面,我做自己的决定也变得更有底气。

还有太多东西我想继续改进,也想继续打磨自己的手绘贴图和环境艺术能力。总的来说,Outstead 让我更清楚今后该怎么去做环境艺术。

更多同类拆解可以查看 案例教程 分类

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。