全部模型资源
  • 全部模型资源
  • - 交通工具
  • - 动物昆虫
  • - 场景\道具模型
  • - 建筑模型
  • - 植物模型
  • - 武器模型
  • - 独家资源库
  • - 科幻模型
  • - 角色动画库
  • - 角色模型
  • 游戏开发知识博客

Unknown Island:用 Blender + UE5 打造风格化热带岛屿

我是 Lili Bruijn,一名来自荷兰的风格化环境(Environment)与道具(Prop)美术师,最近刚开始自由职业。我今年 7 月刚毕业,拥有 6 个月的行业经验。

Unknown Island 风格化场景最终渲染,热带小岛上的茅草屋、河马头骨与停泊的船只

「Unknown Island」最终渲染效果(作者 Lili Bruijn)

Unknown Island 风格化场景最终渲染另一角度,茅草屋与茂密植被

「Unknown Island」最终渲染的另一视角

目标

在为下一个作品集项目寻找灵感时,我偶然看到了 Kateryna Kyrkach 创作的「Unknown Island」概念图。我十分喜欢其中的色彩与氛围,这让我很想把它在 3D 中还原出来。

此外,我也想尝试独立制作一个更大尺度的室外环境。在 Beyond Extent 团队挑战赛中,我们曾一起制作过室外环境,而这次我想一个人完成。

使用的软件

参考与灵感

起初,我收集了概念图中真实物体的照片——小屋、植物、树木、船只和水体。我用 PureRef 来整理参考板和情绪板(moodboard),因为它能始终置顶在其他软件之上,也便于集中存放大量图片。

收集完现实参考后,我开始寻找心仪的风格化美术方向。我本人很喜欢风格化(stylized)风格,主要参考了「Wayfinder」,以及 Mateo Chilla、Axel Blin 等其他艺术家的作品。

小屋、植物、树木、船只与水体等现实参考图拼贴

作者收集的现实中对应物体参考图(小屋/植物/树木/船只/水)

风格化艺术参考情绪板,含 Wayfinder 等作品风格

风格化美术方向参考板(moodboard),参考了 Wayfinder 等作品

白模与建模

我想尽快把场景搭起来,于是先做了一批体块(blockout)模型,并从 Sketchfab / Fab 下载了一些模型作为场景中的占位(placeholder),包括头骨、水面花朵和棕榈树。

其余的体块资产由我在 Blender 中创建。我刻意让形状保持简单,努力把比例做对。

在体块阶段我就开始布置基础灯光,这样能帮我判断整体是否接近概念图。

在体块阶段乃至后续的制作阶段,头骨、山体和茅草屋的位置都向前移动了不少。有反馈指出这些元素原本太靠后,前移后更能凸显出来,也更贴合概念图。

虚幻引擎中 Unknown Island 场景的早期版本截图

项目早期的引擎内场景截图

Blender 与虚幻引擎中的场景体块搭建截图

遮挡(Blockout)阶段的场景搭建,用简单体块确定比例与构图

道具

对于道具,我以低模(low-poly)为基础。船只的形状一开始保持得很简单;等我开始做精修版本时,又复用低模并调整了形状,使其更贴合概念图和我之前收集的参考。

精修时我还给船加了座椅,因为体块阶段并没有这个元素。

在建模和贴图时,我总会检查它们在引擎里的样子,看看形状和颜色在环境中是否成立——它们必须和场景里的其他元素协调。肋骨和岩石也用了同样的流程。

由于绳索和渔网从一开始就没放进体块,我只能从零建模。我会先建出基础形状,再在引擎里检查它能否连上肋骨,以及从摄像机视角看效果如何。过程中我不断加面,并几次调整长度和围绕肋骨的紧密度,直到满意为止。

所有资产我都从低模开始,河马头骨除外。有时我得坐几小时车,想在火车上试着雕刻头骨,于是用三星平板上的 Nomad Sculpt 起了稿。

雕刻时,我把现实参考放在手边(手机上),让它能忠实于真实物体。由于概念图略有不同,我调整了部分比例并补充了一些元素以更贴合概念,同时也保留了属于真实版本的特征。

在平板 Nomad Sculpt 中雕刻的河马头骨早期模型

在三星平板上用 Nomad Sculpt 雕刻河马头骨(旅途中的即兴创作)

完成贴图与手绘润色的河马头骨模型

最终完成的河马头骨道具(低模烘焙+Substance+3DCoat 手绘)

环境里还有不少木头,比如茅草屋和头骨旁的梁与木板。于是我决定做一套木质构件(wood kit):雕刻并打磨几样木制元素,再在环境里尽量复用。

木板、横梁、甲板、梯子与立柱组成的木质构件套件

木质构件套件(wood kit):木板/横梁/甲板/梯子/立柱,尽量复用

我用了 4 块木板、1 根大梁、1 块茅草屋的地台甲板、1 把梯子,以及 4 根围绕地台的小立柱。

水中船只参考图与运动示意

船只道具参考及其在水中的运动参考

场景中停靠的船只道具,含座椅细节

最终船只道具:在体块基础上调整形状并补充座椅细节

围绕头骨与木结构的渔网与绳索道具

围绕头骨与茅草屋的渔网、绳索道具(从零建模并贴合结构)

地形与植被

制作地形时,我用了地形模式(landscape mode),建了一块足够大的地块。我挺喜欢水体连接沙滩与沙地的想法,就像我收集的参考图那样,于是把那些区域做得平坦一些,后方则保留更多山丘。

贴图方面,我用了之前在 Substance Designer 里做好的可平铺(tileable)沙地与苔藓材质。

我很喜欢这个地点藏在茂密热带森林里的设定,仿佛玩家是自己探索发现的。因此我用茂密的树木把环境围了起来,带来一些幽暗感,也营造出”发现隐藏地点”的感觉。

草我用带透明通道(alpha)贴图的简单面片(plane)来做,主要铺在环境里岩石的顶部,也会在几处让草垂挂在岩石上——做法是在 Blender 里建一个面片、细分后加上布料(cloth)物理,让它自然垂落贴合岩石。

水中的植物,我做了低模变体,并在 ZBrush 里雕刻高模以烘焙法线(normal map)。接着在 Substance Painter 里为植物铺了想要的颜色基底。

之后我把植物导入 3DCoat,手绘了一些细节与阴影到基础颜色上。植物贴图在 3DCoat 和虚幻引擎之间来回倒腾了好几遍,因为它们在引擎里看起来总有些不同。

我也几次调整了植物的形状,好让叶片有那种有机、皱巴巴的质感。

环境里我做了两种树:一种是棕榈树,另一种是树干更细、树冠蓬松的树。棕榈树我做了 3 个变体:一棵相当笔直,一棵略微弯曲,最后一棵弯得很厉害。

做 3 个变体的原因是:从同一角度复用同一棵树会非常明显。我把棕榈叶雕刻后烘焙到面片上,借助法线获得更立体的感觉。

细树干那种我只做了 1 个变体,但希望它从不同角度看差别明显。这难免带来一些重复,不过我通过加上更大、色调不同的树冠把它打破了。

叶片方面,我做了简单的 alpha 遮罩贴图,以及一张带不同笔触的基础颜色贴图,让叶片颜色更有变化。

我也把树冠团块当作灌木用在了环境里,主要放在主画面之外,从其他视角填补环境。

虚幻引擎地形模式下的场景布局,沙滩与后方山丘

地形模式(landscape mode)下的场景布局:连接沙滩的水面与后方起伏山丘

三种变体的风格化棕榈树模型

棕榈树:雕刻叶片烘焙到平面以获得带法线的立体感,共三款变体

树冠蓬松的细树干树木模型

另一种细树干、蓬松树冠的树木(通过加大不同色树冠打破重复感)

山体与场景中的岩石材质与模型

岩石与山体:在 Substance Designer 中反复调试破碎形状

纹理、材质与平铺材质

对这个环境,我特别想在 Substance Designer 里制作可平铺(tileable)材质。我希望多练习、提升这方面的能力,同时也展示把平铺材质妥善用到环境中的技巧。

制作材质时,我经常进引擎看效果。这些材质单独看并不惊艳,但在场景里很协调,而这对我而言才最重要。

茅草屋顶我参考了一个教程来确定形状,定型后我在其上继续加工——调整色阶、堆叠颜色等等。

茅草屋的材质我想保持极简:想有些细节,但不希望材质太”噪”,因为屋顶已经够复杂了。

山体的岩石材质让我颇费了一番功夫。我试了几个不同的教程,想得到一些破碎的形状。反复几次才做好;而且我也只看教程里”如何塑形”的部分,上色和其他元素都是自己完成的。

风格化美术工作流

最近我在 ZBrush 里常用的流程是:用套索(lasso)工具做遮罩,再用移动(move)工具添加细节。这个方法始于我尝试为「Wayfinder」做一个同人道具、研究其美术风格之后。风格化雕刻时我也经常用到 OrbFlatten_Edge、TrimDynamic 和 Orb_Crack1 这几支笔刷。

这些笔刷可以免费获取:https://orb.gumroad.com/l/nOkHw

下面是一个快速演示,展示我如何组合套索遮罩工具与移动工具来得到想要的效果:

用于风格化雕刻的 Orb 系列 ZBrush 笔刷

风格化雕刻常用的 Orb 免费笔刷(OrbFlatten_Edge / TrimDynamic / Orb_Crack1)

雕刻完高模后,我把低模导入 Substance Painter,用高模烘焙法线。烘焙完成后,我在 Substance 里逐层叠加:先铺一层通用基础色,再配合曲率(curvature)等生成器加上颜色。模型内侧用更暗的色调,边缘用更亮的颜色,并加了一层做粗糙度(roughness)变化。

有时在 Substance Painter 叠完层后,我会把带贴图的网格导入 3DCoat,补一些手绘细节。这主要取决于模型——看它们在环境里多突出、体积多大。我在头骨、肋骨、树木、水草和绳索上都加了手绘润色。

技术实现

做这个环境时,我就知道会碰到一些技术挑战:用蓝图(blueprint)驱动移动的船只、随风摇摆的树,都是我以前没做过的。水着色器(shader)我以前写过,但我真心希望水面能像概念图那样好看又多彩。

我最先啃的是水着色器,因为我知道它得迭代几次才能到位。体块阶段我就搭了一个粗糙版本,但花了好几遍才让水变得五彩缤纷又明亮、透明却不至于过透,并带有一点令人放松的流动感。

最终的水,我参考了这个教程并在过程中做了微调:

对于移动的船只,我建了一个带时间轴(timeline)的蓝图。我对蓝图经验不多,所以也参考了一个添加并配置时间轴的教程:

我找了船在水里运动的参考,并大量调整时间轴,让运动更自然。最终运动不算夸张,但我也不希望它太剧烈而喧宾夺主。

这是船只运动最终的时间轴样子。

虚幻引擎蓝图中的船只运动时间轴节点

控制船只漂浮运动的蓝图时间轴(Timeline)设置

对于摇摆的树,我也参考了一个功能搭建的教程。找关于摇摆运动的视频花了点时间,不过这个视频帮了大忙!

下面就是我定下的参数——动作平缓、不过分。注意叶片和树根要使用相同的摇摆值,否则运动会不同步!

树木摇摆材质的世界位置偏移参数设置

树木随风摇摆的材质参数(注意叶片与树干需使用相同摇摆值)

我还复制了这个材质并改了数值,因为一行里有 3 棵棕榈树,运动却完全一样,让我觉得有点奇怪、不自然,于是让中间的树拥有不同的摇摆幅度。

润色

在最后收尾时,有人建议我给接触水面的表面加些藻类。我决定用贴花(decal),因为不想给现有材质再加顶点绘制(vertex painting)。

我不想让材质被各种设置撑得过于臃肿。于是我在 Photoshop 里做了张 alpha 贴图,并复用了引擎里已有的一个可平铺材质来做藻类。我把贴花加到岩石上,也加到茅草屋和头骨的一些木制元素上。

我还想试着给岩石做垂挂的草丛——这是概念图里还缺、我认为是不错补充的元素。我在 Blender 里取一个面片、细分后,用布料物理让它垂落到场景里的一块岩石上。接着又为草形做了张 alpha 贴图,材质里用基础色。我试过加带细节的纹理,但草变得太”噪”,不太喜欢。

我还试着复用渔网:在 Blender 里调整形状,把它们垂挂在环境的茅草屋周围。这有点棘手,因为我不想用奇怪的拉伸破坏 UV,不过最后都搞定了!

灯光与渲染

我一直觉得灯光很难调准,所以常在早期的体块阶段就开始布置灯光。我知道场景变化或加入新资产时,灯光都需要调整。概念图里有些阴影区域,但因为平行光(directional light)的存在,那些区域被完全照亮了。我的解决办法是做阴影捕捉器(shadow catcher),在环境里制造阴影。

虚幻引擎中用于生成物体形状阴影的阴影捕捉器材质

阴影捕捉器(shadow catcher)材质,可生成物体轮廓阴影(如叶形阴影用 alpha 贴图)

这就是阴影捕捉器的材质,它能生成你所附着物体的形状阴影。比如想要环境里有叶形阴影,就把数值 1 换成 param2D 节点并配合 alpha 贴图。

对于头骨獠牙的水面折射效果,我做了一个材质并把细节面板左侧设为光函数(light function)。纹理上我用了一张噪声单元(noise cell)贴图,你也可以换其他噪声贴图来得到想要的效果。

应用于头骨獠牙的水面折射光函数材质

头骨獠牙的水面折射效果:用噪声单元贴图作为光函数(light function)纹理

配置好材质后,往场景里加一盏灯,并把材质体积挂到该灯的光函数区域。

将材质体积挂到灯光光函数区域的设置示意

将材质挂到场景灯光的光函数(light function)区域,实现折射光效

结语

我对这个环境最终的样子感到满意,但也觉得有些地方本可以再多打磨、或花更长时间。几乎你所有的作品都会有这种感觉——它总能更好,但有时适可而止也好,否则永远完不了。

下次,我想从环境搭建一开始就在不同角度架好摄像机,而不是拖到最后阶段。这意味着我得在其他区域也把环境填充得比较完整,而临时抱佛脚让我觉得匆忙。做这个环境时,我几乎每周、从不同渠道收到反馈,所以真心推荐你在做环境或道具时也这样做!

评论留言