Notifications
Article
用ProBuilder自定义Snaps Prototype资源
Updated a month ago
999
6
我们最近介绍了帮助大家将项目生动展现出来的资源包——Snaps。而在本文种,你将了解到如何使用Snaps快速便捷布置,及如何根据游戏来自定义资源。
作者:Matt Schell和Eduardo Oriz,2019年10月7日
原文地址:https://blogs.unity3d.com/2019/10/07/customizing-snaps-prototype-assets-with-probuilder-2/

什么是Snaps Prototype资源?

Snaps Prototype资源是用Unity的Probuilder 3D模型包创建模块化原型资源。这些资源包可以贴合到ProGrids系统的网格上。这些基于真实尺寸构建的资源可使布置游戏环境更为简单,不论新手还是有经验的关卡设计师都能轻松驾驭。不仅如此,用户还能用极富细节的艺术资源替换这些原型资源。
资源商店现已有几款不同主题的Snaps资源包可供使用。更多的资源包将会陆续推出,我们希望能让用户构建任何原型。
这些低多边形资源模块化的设计可让关卡原型的构建更加简单,同时在使用时用户也有完全的自主权。用户不再需要创作自己的3D资源,或者使用额外的数字创作工具来自定义资源,从而节省下许多时间。
这些资源十分轻量,不含任何纹理。相反,部分网格(Mesh)分配了不同的材质。这些资源已设置UV,方便用户添加纹理。或者,用户也可以在布置好关卡后,用自己极富细节的网格来替代Snaps Prototype的资源。

Snaps包内构成

在我们着手使用前,先来看看一个Snaps包一般都有什么。
如果项目中未包含ProBuilder和ProGrids,Snaps资源包中会有一个脚本自动下载这两个包到项目中。
所有原型资源都存放在了_SNAPS_PrototypingAssets,AssetStoreOriginals文件夹下。在这里的About文件夹下,可以找到Snaps和资源的重要信息。而资源则根据不同的包名称归类(比如ModernOfficeInterior、Scifi_Industrial)。
每个Snaps Prototype包都包含有一个Prefabs文件夹,其中含有所有的3D网格及分配的材质,用户可以立即用于场景中。同时,资源包中还有一个Materials(材质)文件夹,其中为分配到不同模型部位的各个材质文件,以及一个SampleScenes(示例场景)文件夹,其中是各资源在环境中放置的示例场景。
话不多说,我们来看看如何快速从零拼搭起一个场景。

使用Snaps构建原型

是时候来构建一个新场景了,我们来看看如何在关卡中布置Snaps资源吧!
我们将使用资源商店上现有的两款Snaps包(Sci-Fi/Industrial和Office)来构建些未来风的生活区。我们之后也能基于这些场景构建制作自己的场景道具原型。
当在项目中导入Snaps,下载安装好ProGrids和ProBuilder后,我们可以注意到新的UI会出现在场景视图的左上角。这一对图标是ProGrids包的一部分,其中包含了所有快速拼接模型所需的所有工具。点击工具栏中的Grid Visibility图标,可以显示出网格。而下方的X、Y、Z和3D图标则可以在相应的轴或对象上渲染网格。然后下方有控制网格拼接的按钮,打开后,对象在场景中移动时会在具体的拼接间隔之间移动。用户也可以自主启用缩放和角度拼接。想要了解更多,请在这里查看ProGrids的说明文件。
我们首先来利用起网格,从Sci-fi/Industrial包中选取一块地面瓦块,将其拖入场景中。然后使用Push to Grid(对齐到网格)按钮将瓦块对齐到网格上,这里对应的拼接增量为1,请确保Snapping功能处于打开状态。现在,我们在场景中试着移动瓦块时,它会以一单位增量拼接到网格上。我们还可以看到瓦块的顶点被设置在一个角上,以确保该瓦块可以拼接到别的瓦块上。我们继续添加瓦块,铺展开关卡的第一层。
我们可以用同样的方法放置墙壁、门和楼梯。而在放置道具时,我们需要将拼接增量从1调整为更小的值,以便在放置时有更多的选择空间。或者,我们可以手动放置道具,使用Unity默认的拼接工具将其拼接到预想的地方。
使用Snaps就是这么简单,好好享受构建新游戏环境的过程吧!随后,我们将学习如何编辑Snaps资源,使用ProBuilder创建新的资源。
当完成了关卡布置后,我们可能需要将低多边形的网格替换为高分辨率的网格,或者反之,以达到快速迭代的目的。可以使用这个工具轻易达成目的。
我们可以在Snaps→Snaps Swap Tool下找到脚本。
在脚本选项中,我们可以导入包含Snaps Prototype资源的Prefabs文件夹。该脚本中,预制件的文件名应与Snaps资源文件名相匹配。当给Prefabs指定了脚本后,我们可以一键替换场景中选中的对象或所有对象。
我们还能用Snaps Prototype资源创建自定义的Nested Prefabs。该脚本能自动生成相对应的高清晰度预制件。

使用ProBuilder编辑Snaps资源

那我们怎样才能微调包内的道具呢?或者替换不同的材质,或者更改拓扑?通常我们会需要使用额外的3D模型包才能做到,不过Snaps资源是用ProBuilder制作的,我们在编辑器中就能编辑道具,或者创建新道具。

什么是ProBuilder?

ProBuilder是一款完全免费的3D模型和关卡编辑包,可在Unity编辑器中直接使用。安装ProBuilder的教程可在本文的开头找到。ProBuilder提供有许多3D模型工具,非常适合用于构建原型。同时它还适配ProGrids,使精准定位构建的几何形更为简单。
我们不会在这完整地介绍ProBuilder工具包,你可以在说明文件中找到更多细节,或观看相关的教程视频。若想入门3D模型制作,或找寻更简单的关卡布置方式,这是最好的方法了。
若想编辑现有网格,我们需要先将其转换回ProBuilder可编辑格式,在场景中的Object模式下,选中网格。
然后,选择Tools→ProBuilder→Object→ProBuilderize。该操作将在场景中打开一个新的ProBuilder工具栏,我们便能开始编辑网格了。我们还需要打开ProBuilder窗口,来使用其它的3D模型工具包。选择Tools→ProBuilder→ProBuilder Window,然后将窗口置于顺手的地方。

指定新材质

ProBuilder拥有Material Editor(材质编辑器)功能,该功能不在主要工具包之中,你需要在Tools→ProBuilder→Editors→Open Material Editor中打开它。同时,ProBuilder还有其它许多有用的编辑器,如UV和平滑编辑器,它通常在3D模型包中。但目前,我们先专心于更改对象的材质吧。
既然要营造一种未来感,办公室包中的颜色方案并不非常符合主题,所以我们更改下。首先使用ProBuilderize功能处理道具——这里我选择了桌子。接着,看到Material Editor,我们可以在其中选中一个已有材质,将其指定到整个对象或选中的多边形范围,还可以指定材质到热键上。
为桌面创建一个哑光白色材质,为桌腿创建一个黑色金属材质。接着我们可以将两种材质指定到不同的热键上。指定完后,点击场景视图中工具栏里的对应按钮,进入ProBuilder表面模式。
按住Shift选中桌面的所有表面,然后按下Assign Material按钮或者设定的热键,材质便替换好了。为桌腿的所有表面替换上金属材质也是相同的操作。
我们也可以为电脑屏幕加上些发光材质,或者直接更改屏幕原先指定的材质。
那么用ProBuilder重新指定Snaps材质就是这么简单。你可以学习其它Unity用户的使用案例,该视频将教你如何用现有的UV及UV编辑器来在网格上绘制纹理,带你学习板条箱和木桶的完整制作流程。

编辑网格

我们要如何更改关卡中单个网格的形状呢?关卡中现有一把办公椅,但是它看起来没有未来感,我们来试试将它变成一把帅气的电竞椅。
在学习了椅子的参照图后,我大概知道它应该是个什么形状了。简单点就是:椅子的靠背需要更长一点,上边有一个圆形的枕部。靠背上方应该有两个孔,用于绑上靠枕。靠背两边应像翼一样展开,一直延伸到座位底部。
我们先来做出较大的形状,进入表面模式,选中靠背顶部和底部的多边形。接着,切换到缩放工具,沿Y轴拖大多边形,顶部和底部多边形之间的距离会变大。然后,我们可以使用移动工具在单个表面上做一些微调。
提示:ProBuilder中缩放、移动和旋转工具的作用轴范围将取决于使用时是处于Local(局部)还是Global(全局)变形模式,或者是选中区域的中心还是选中部分(如一个面或角)的顶点。通常,使用Local变形模式是最合适的,在此模式下,作用轴只作用于选中的对象,在更改位置时也只会以选择对象的中心为参照,如此一来在使用工具时,便可以确保选中对象受到对称的影响。
可以注意到在椅子的顶部没有足够的细节,以进一步塑造枕部。我们可以进入Edge(边缘)模式,使用Insert Edge Loop(插入边缘环圈)工具给椅子靠背上部加上两个新的边缘环圈。然后我们拖动背部新加的两个边缘,将其向上拖动,就能做出一个类圆的形状。
接下来我们来制作椅子靠背的两边。抓取两边的边缘线将背部伸展开来,然后我们需要加上新的边缘环圈让椅子更圆润一点。两边的翼部也应稍微向前。
下一步就该在靠背上挖两个孔了。我们需要用到一种新的工具,将现有的四边形分为三角形,然后删去部分三角形表面,再将空隙处用新的多边形表面连接起来。
首先,我们需要将靠背中部的部分多边形向上拖动。然后,同时选中前部和后部的四块对角排列的表面,在ProBuilder面板中按下Triangualte Faces(表面三角化)来查看结果。
可以看到,部分新划分的三角形朝向错误。若要改正,我们可以撤销划分操作,取消选择形成朝向错误三角形的那部分。接着仅在网格的一边重新三角化。然后,我们可以在余下的多边形部分使用Flip Face Edge(翻转表面边缘)工具,再三角化这些表面,可以看到边缘的朝向就被正确翻转过来了。
现在,选中新划分的三角形,使用Delete Faces(删除表面)来形成一个开口。这步完成后,我们可以在边缘模式下补上新形成的网格洞,选中前部和后部的一对表面,使用Bridge Edges(桥接边缘)工具补上它们。

使用平滑编辑器

先前,我们提及了ProBuilder的平滑编辑器,该编辑器可以让椅子的边边角角稍微圆滑一点。我们可在Tools→ProBuilder→Editors→Open Smoothing Editor中打开平滑编辑器。
我们可以在Face模式(表面模式)中用选取框选中整个对象(请确保Select Hidden‘选取隐藏部分’功能是打开的),按下平滑编辑器窗口中的Clear Smoothing Groups(清除平滑组)按钮,去除现有的平滑组。
我们来平滑下椅子的部分部位,为其添加上圆润的效果。首先,选中靠背上的所有表面,按下编辑器中的任何一个数字按钮,将它们添加到一个平滑组中。鉴于椅子背部没有什么锋利的边缘,这样操作是完全OK的,但是不要选中椅子后方底部的金属部位。
我们也可以对坐垫做相同的处理,使用相同的平滑组,因为靠背和坐垫的表面并不是相连的。
为圆形的模型部分(如液压杆和椅子腿部)添加平滑组是理所当然的。请注意如果想要在平滑两边的同时保留部分硬边,不要在这些地方分配平滑组。
这样就完成了。左边是原本的办公椅,右边则是我们做出来的帅气电竞椅了。

用ProBuilder定制资源

到此相信你已经掌握了ProBuilder中使用和编辑Snaps资源的技巧。接下来我们将学习如何用这些资源包制作自己的道具。
我们来制作一个外星样式的小道具,它将作为门的控制面板。
首先,在ProBuilder中创建一个素体,找到New Shape(新形状)工具,按下工具名称边的“+”按钮打开配置窗口。在打开的对话框中设置新形状的三位数据和具体类型。
在设置时,请记住Snaps资源都是基于真实世界尺寸制作的,所以估量下与对象相关事物的大小(如正常人的平均身高)会很有帮助。下方是我们使用的三维数值。
现在,我们需要将该物体转变为拼接状态,在对象的底部中心放置顶点,让其能拼接到网格上。或者,如果对象是一块地面或者墙面瓦片,我们可以将顶点放在一角的角尖上。
ProBuilder有专为此服务的Set Pivot(放置顶点)工具,该工具可将顶点放置在选中范围的中心点上。于是我们就可以选中新网格的底部表面,将选择柄放置在中心,然后按下Set Pivot按钮将顶点放在对象的底部中心。
我们可以开始塑造对象了。为它暂时指定一个材质,将上表面网格向内缩小,做出上小下大,上部向中心汇合的样式。然后使用Extrude Faces(挤压表面)工具在顶部添加新的几何形状,再将其向内缩小。
提示:我们在制作模型时仍能使用ProGrids的拼接功能。操作时,可以打开该功能,然后将新挤压出来的表面拼接到基座网格的顶部。
接着,选中基座顶部的外围边缘环圈,用Move工具将它放低一点。
在顶部再挤压一次,对象的基本外形就完成了。
为了方便,我们给道具添加些发光的内嵌线条吧。首先,为网格的四面加上两条边缘环圈,然后在每一面的新环线上再分别添加四条环线,如下图。
选中两条外层的边缘环线,将其向中心缩小;然后在其余面上执行相同的操作。接着,选中所有边缘环线的内侧部分,在Extrude菜单中,将其向内沿法线以厚度“-0.01”向内挤压。这样我们就在网格上制作出内嵌线条了。我们再创建一个新的发光材质,将其指定到内嵌线条上,做出以下效果。
目前,道具的顶部看起来太无聊,我们来改进下,将顶部表面的四个顶点向下拖动。先用Connect Vertices(顶点连接)工具连接角的两边,划出三角形,确保在在向下拖动顶点时四边形能正确划分成三角形。然后,选中四个顶点,用Move工具将其向下拖动。
漂亮!除此之外,我们还能在网格之上加上一个漂浮的物件。选中顶部现有的四个三角形表面,点击Detach Faces(分离表面)。此操作会形成一个新的ProBuilder网格,在原网格上留下一个孔。要补上这个孔,我们需要选中失去表面的周围边缘,再使用Fill Hole(填补孔洞)工具。
然后,我们可以将分离出来的网格拖到上方,旋转一个90度角。虽然该元素是漂浮着的,最好还是将其保留为基座网格的一部分。按住Shift键选中两个网格,然后使用Merge Objects(合并对象)工具将它们合并在一起。
最后在新网格的两面分别再挤压两次,为其指定一个发光材质,完成最后的装点。
将其放在门边,这就是我们的成果了。

创造永不停息

希望该教程可以帮到你。
你可以在此处了解更多有关于Snaps Prototype及其它Snaps包的信息。

"开发过程中遇到问题?在这里提问:connect.unity.com/g/discussion
觉得这篇内容不错or有待提高?请在下方评论区留言。我们会根据大家的需求,优化内容产出^_^"
Tags:
Unity China
694
Comments
qaqwwll
a month ago
刚接触unity,来瞻仰一下
1
ZD
Zhu Deming
a month ago
不错不错
0
euphoria
a month ago
moderation
unity在一条龙的道路上越走越远,不再是单纯的游戏引擎了→_→
2
xunshu li
Staff
a month ago
LuoDongSheng(比如ModernOfficeInteror、Scifi_Industrial)。Interor是否打错了?
是的,应该是interior. 多谢纠正
0
L
LuoDongSheng
a month ago
(比如ModernOfficeInteror、Scifi_Industrial)。Interor是否打错了?
0