世界场景模型制作技巧

本系列文章旨在为有兴趣DIY制作场景物件的各位提供一些引导和建议。虽说直接买成品家具很省事,但偶尔自己亲手制作,体验那种成就感也不错!

1 - 场景模型制作流程介绍

作者:APUAMO

前言

当有对场景资产的需求时,可以先尝试在unity商城,booth或其他资源站点搜索有没有你想要的资源,虽然所有东西都是自己做的可能会比较有成就感,但适当地减少重复造轮子的过程会让场景制作更加顺畅省力,能最终完成才是重要的。

在设计初期时,投入大量时间在单个资源的制作并不是个好主意,你的时间非常值钱,因此需要根据所需的完成度,选择不同的制作流程。

下面将要介绍的几种制作流程,他们的主要区别在制作效率与成品效果之间的取舍。

对于刚开始尝试制作场景的读者,建议从最简单的流程开始尝试,一步步掌握更加复杂的制作流程。

步骤解释

建模:没错,这一步的成果可以只是一个方盒子,总之是一些面数相对较低的模型,为的是和后面的“高模”区分开。

导入Unity: 

ed4cae4ce25dbb361e982a81b7b0258b.png

物件的导入设置

最速可行流程

流程:

建模——导入unity——给予基础纯色材质——完成

产出:

带均匀颜色的基础模型

详情:

通过对不同面分配不同材质可以做到分色效果,但会因此增加材质数量,对性能是极大的挑战。

如果您在意您的角色优化等级的话,使用过多材质球会导致优化等级急速下降哦。

使用贴图的流程

流程:

建模——UV展开——绘制贴图——导入unity——给材质赋予贴图——完成

产出:

带简单绘制贴图的模型

详情:

使用贴图带来了对物体表面颜色的控制力,效果相比上一种大概能提升100%以上(如果画的够好提升的上限非常高。同时不一定需要真正“画”贴图,寻找素材并拼贴调整能更快出效果,同时结合部分手绘则事半功倍。您同样可以通过以赋予复杂贴图的方式减少材质球数量,这能够对优化带来显著提升。

使用SP制作贴图的流程

流程:

建模——UV展开——SP制作贴图——导入unity——给材质赋予贴图——完成

产出:

带材质肌理的模型

详情:

使用SubstancePainter就能进入PBR流程的世界。直接使用内置资源就能为模型增加表面肌理,大大提高表现力,您也可以通过导入贴图材质球的方式寻求更加多元的肌理,使用SubstancePainter能够达成比贴图绘制更好的效果其主要原因是在于材质球本身附带多张用于控制材质各种属性的贴图(金属度,粗糙度,光泽度,法相,高度),在SubstancePainter内还可以使用笔刷融合绘制材质,做出多种精彩的操作。

高低模“烘焙”的流程

流程:

制作高精度模型——制作对应的低面数模型——UV展开低面模型——烘焙通道图——SP制作贴图——导入 unity——给材质赋予贴图——完成

产出:

带材质肌理和高模法线细节的模型

详情:

目前大部分3D游戏场景资源生产的基本流程。将高模的细节烘焙到法线贴图上,能让模型表现丰富的结构造型同时保持较低的面数,结合SP制作PBR贴图,能将绝大部分物品做到写实的效果。

这一工作流有着我们更耳熟能详的名字——次世代建模!

品质更加可控的流程

流程:

制作中等精度模型——导入unity查看效果——确认设计后细化中模制作高模——中模减面制作低模——烘焙通道图——模型导入unity并将贴好法线和AO(环境光遮蔽)图检查效果——在SP中制作完成版贴图——导入贴图并将其赋予材质——完成

产出:

经过良好检修的高完成度模型

详情:

这一级别已经是实际项目生产中的流程了。流程上更多是对完成度和资产统一度的把控,提高迭代效率和减少返工几率。有次阶段能力后可以针对不同物体种类和项目风格自定义不同的流程,比如风格化画面等

针对植被模型的流程

新开另一个文档介绍

一些专业工具和软件的介绍

专业UV展开:RizomUV

结合与Blender的桥接插件RizomBridge能基本替代blender自带的UV展开功能

专业贴图绘制:SubstancePainter

一个业界公认强大的贴图绘制软件。同时处理多个材质通道的能力大大提高次世代流程的制作效率,让创作者得以将更多精力投入到设计和美术效果中。

图例

最速可行流程

image.png

贴图流程

image.png

2 - 模型制作步骤详解

作者:APUAMO

模型检查标准

此图来自VAU(实际上是信标工作室的资源)。

image.png

建模

比例

从一开始就确定好模型的大小非常重要,有以下几个原因:

1.  为了和最终使用大小一致。如果你的模型导入unity后还需要调整缩放自然是十分麻烦

2.  统一制作过程中模型大小。如果做好后再整体缩放,回头调整细节时就要决定是在哪个版本上调,往往在缩放之前的版本上调整是更好的选择,不如从一开始就定好大小。

3.  方便确认模型需要的面数。你不会想在场景里放一个几十万面的螺丝钉的。

造型

1. 对于刚尝试建模的人很重要的一点是,你可以通过组合多个基础造型来得到你最终想要的复杂造型。从下图可以看到,左边的一体式模型比右边拼插式多用了很多面数。这不是说你不需要做一体式了,因为拼插模型对于相接位置的转折过渡表现有限,应根据实际情况选择用哪种做法。

image.png

2.  可以从一个面片开始,确定了某个正交视角的剪影造型之后,再把它扩展为有体积的立体模型。这里会有一个小陷阱,那就是正交视角的效果和透视视角会有不同,这在建模角色头部的时候会非常明显,因此在达到一定完成度之后,应转为以透视视角效果为准,往参考效果靠拢。

3. 对于一些较小的平直结构,往往会人工将其垂直于视角的面做斜一些,使其更容易被看到。这么做能够提高视觉表现力,更清楚的表达出起伏的造型和体积。如果对写实度要求非常高,或者用于一些极近景的用途,可以不用这么处理。

image.png

4.  一段圆弧到底要用多少段数是建模中经常要考虑的问题。首先,个人习惯是整圆的段数为二的倍数,除非对面数优化有特别追求。这会让展UV可以旋转对称,也方便在需要找回圆的中心点时选择在圆周上对应的2个点。

具体要用多少段数取决于物体呈现在屏幕上的大小,是不是视觉重点物体,对画面质量的需求,等等。

而圆弧段数也会有边际效应,从下图可以看出来,在这个大小下,20边以上时圆弧效果的提升就不怎么明显了。实际制作中,建议及时将模型导入引擎检查效果。

image.png

UV

工具

关于UV,我个人是较少使用Blender 内置的UV编辑器的,但进行一些简单编辑时还是会用。

我在此推荐使用RizomUV结合桥接插件 B2RUVL ,除了不能在RizomUV中编辑模型,几乎没有缺点

RizomUV 官网

https://www.rizom-lab.com/

B2RUVL (免费) 原作者网址https://titus.gumroad.com/l/B2RUVL?layout=profile&recommended_by=library

ZenUV 一个非常好的UV插件,提供了很多游戏建模常用的功能。因为是blender的插件,甚至提供了一些独有的对制作流程非常有帮助的功能

https://www.blendermarket.com/products/zen-uv

还有一些其他的UV插件

UV Toolkit

概念

UV这个词可能会觉得耳熟,和紫外线的UV有关系么?并没有,这里的UV来自于它的平面轴向定义,U轴和V轴。对于UV展开,你可以把它想象成做纸模的反向过程,它的作用是将一个个三维立体的面映射到一个2维平面上,让我们可以用一张贴图表达模型的表面信息。

一些UV展开的基本原则

1.  尽量塞满整个正方空间。现代游戏中,贴图所占游戏总体积比例非常大,每一个像素都会占用磁盘空间和运行时显存,尽量物尽其用。

2. 通常来说尽量将UV块边界打直以方便packing 和提高UV利用率。除非是对UV拉伸有较高要求比如角色身体UV,和一些圆弧型有花纹在其上的造型。上图中这段弧形面的UV是打直了的。可以看到贴图有扭曲,增加圆弧段数后能缓解一些扭曲,但无法从根本上避免。想要解决,一是可以避免有横向的纹路,这样不易发现扭曲。二是直接UV展为弧形,用UV空间换效果。三是在加段数直到满意,对于较大的物体可以这么操作。

image.png

image.png

3.  尽量共用贴图,

绘制贴图

PS贴图一键批量导出插件  Expresso! Exporter (免费)

https://minifloppy.gumroad.com/l/expresso-exporter?layout=profile&recommended_by=library

说明页面

https://minifloppy.it/tools/expresso/

贴图和模型资源 Quxiel Bridge 用epic账号登陆 大量的免费扫描资源

制作低模/重拓扑

制作高模/雕刻

烘焙

SP制作贴图

导入引擎

解剖一个模型

一个模型的基本组成元素有:

baisc_element.jpg

其中网格是最根本的元素,一个模型如果没有网格,那就完全没有可见的部分。

但一个模型是可以没有材质和贴图的,因为一般的引擎或者软件都会有一个默认材质,当输入一个没有指定材质的网格时,会自动赋予默认的缺省材质。贴图一般是在材质中使用,而一个材质是可以不需要贴图的,因此网格是最基本的元素。

网格由顶点(vertice),边(edge),面(face),构成,也可以理解为点,线,面。

一个面可以有n条边,但构成一个面的最小边数是3,因此三角面数量往往是衡量一个模型“重量”的最基本参数。

材质是一种用来描述表面信息的数据结构。在同一个网格中,可以为不同的面赋予不同的材质,因此一个网格可以对应多个材质。

但出于性能考虑,我们往往希望在一个网格中使用尽量少的材质。

贴图本质上是一个2维的参数数组。一个RGBA,4通道的贴图,每一个像素都可以视作包含了 R,G,B,A,4个通道的信息。