微信号:Unity-GreaterChina

介绍:Unity官方开发者平台,分享最前沿的技术文章和开发经验,精彩的Unity活动和社区相关信息.

ProBuilder快速关卡建模实践

2018-05-31 12:08 杨栋

Unity在2018.1版本正式推出了ProBuilder快速建模套件。ProBuilder的前生是Unity资源商店中的一款热门插件帮助开发者实现在Unity引擎中直接进行建模以快速生成关卡用于游戏玩法测试。本文由Unity平台部技术总监杨栋为大家讲解如何使用ProBuilder快速关卡建模。


ProBuilder套件介绍

ProBuilder套件包括以下三个部分:

  • ProBuilder:用于直接在Unity的Scene窗口中进行建模。

  • ProGrid: 用于在建模的过程中进行精确的网格吸附操作,确保所建模型拥有正确的尺寸大小。

  • PolyBrush (Beta): 可被用于对模型网格进行雕刻操作,工作原理类似于ZBrush和Mudbox,甚至连很多快捷键都是相同的。

获取资源

你可以访问Unity资源商店进行下载。

  • ProBuilder:

    https://assetstore.unity.com/packages/tools/modeling/probuilder-111418

  • ProGrid: 

    https://assetstore.unity.com/packages/3d/progrids-111425 

  • PolyBrush (Beta): 

    https://assetstore.unity.com/packages/3d/polybrush-beta-111427 


ProBuilder与ProGrid也可以使用Unity 2018.1版本中的Package Manager下载,你可以访问Unity的顶部菜单Window > Package Manager中找到,如下图所示。


与传统关卡建模区别

 

传统关卡建模

传统的关卡建模必须在第三方软件比如Maya或者Blender这样的工具里面完成,然后以FBX文件格式导入Unity中。



优点

  • 可以充分使用第三方建模工具的强大建模能力,生成高品质模型。

  • 可以对角色进行骨骼绑定和蒙皮刷权重。

  • 制作角色动画。


缺点

  • 需要依赖专业美术人员的支持。

  • 因为需要导出3D软件然后导入Unity中才能使用,会导致迭代时间加长。

 

 ProBuilde关卡建模

将ProBuilder工具集应用到此流程中以后,可以直接在Unity中完成快速关卡建模的工作。



优点

  • 直接在Unity中就可以完成初级甚至最终建模工作。

  • 因为ProBuilder工具集是基于Unity编辑器API开发的,所以操作习惯和Unity完全一致,学习曲线很低,拥有基础建模知识的开发者可以很快学会驾驭相关工具,快速生成关卡用于游戏玩法测试。

  • ProBuilder拥有完整的UV Unwrapping和纹理贴图功能,开发者甚至可以直接生成游戏关卡中所需的最终模型。


缺点

  • 只能进行多边形Polygon建模,目前还没有曲面建模工具。

  • 无法对模型进行骨骼绑定和蒙皮刷权重。

  • 无法做角色动画。


ProBuilder功能介绍


为了具体演示ProBuilder丰富的Polygon建模功能,我们首先从DeviantArt网站上下载了一张概念图,在Unity中用ProBuilder搭建了一个白模关卡,如下图所示。


概念设计图


在Unity中使用ProBuilder创建的白模关卡


ProBuilder,ProGrid和PolyBrush的功能众多,一篇文章不足以直观地教会大家所有的功能。所以本文会重点介绍上述场景的是如何使用ProBuilder和ProGrid搭建出来的。我们分成了5个步骤来完成上述的场景。


在开始建模之前,请确保已经完成ProBuilder,ProGrid的安装。如果你不需要使用雕刻功能,PolyBrush可以不安装。但是强烈建议与ProBuilder一起安装ProGrid。因为建模过程中我们要确保生成的模型大小贴近现实世界的尺寸。Unity的1个单位是代表了现实世界中的1米,ProGrid的默认吸附网格单位也是1米,非常利于计算物体的尺寸。安装完以后按照下图打开ProBuilder和ProGrid的UI。


打开ProBuilder窗口


打开ProGrid窗口


第一步:搭建白模

这个步骤中,我们所要做的是使用ProBuilder的建模工具为整个场景搭建基础。



我们所用的工具如下:

  • New Shape工具:用于生成最基本的Cube和楼梯网格。直接点击New Shape菜单,或者Alt/Option+点击New Shape菜单会出现程序化生成网格的Shape Tool窗口,在此窗口可以选择不同形状的预制的程序化网格形状。


生成Cube

 

生成楼梯Stair

 

预制的程序化网格形状

 

  • New Poly Shape工具:用于生成不规则形状,可以直接在Scene中画出想要的形状,拉伸就可以做出网格。



第二步:添加更多细节 

在完成了基础的模型以后,我们接着可以往上面添加更多的细节。



上图中大家可以看到,我们为关卡添加了卫星天线,城楼,建筑物之间的木板桥,以及更多的房屋细节。

  • 在Scene窗口顶部“模式选择”区,可以选择Object,Vertex,Edge或者Face四种模式。

  • 选择其中的一种模式,左侧“模式操作工具组”的菜单会随之变化,而且会自动灰掉当前条件下无法使用的菜单,防止误操作。

  • Scene窗口的左上角是“ProGrid界面”,用于控制网格的大小,开关状态,以及网格吸附的方向,你可以选择X,Y或者Z轴,或者选择3D也就是三个方向同时选择。

  • 另一个常用的操作是“按住Shift键+拖动移动控件”,可以快速拉伸出一个新的面。

 


第三步:使用Vertex Color做模型分类

当完成部分/大部分模型以后,我们可以使用Vertex Colors功能为场景中的模型进行分组。也可以避免整个场景都是白色,看着眼花。



Vertex Colors功能非常简单易用,如下图所示,打开菜单,选择用哪个界面(Palette或者Painter)来做颜色的挑选。


 

然后选择需要上色的模型,选择进入Object,Vertex,Edge或者Face模式,点击Apply按钮即可应用当前选择的颜色。



第四步:添加碰撞体

建完整个关卡的模型以后,我们可以为其添加隐形的Collider或者Trigger,用于物理碰撞检测之用。



在ProBuilder中创建隐形的Collider或者Trigger非常的简单和直观。如下图所示,你可以在场景中用ProBuilder工具生成简单的Cube,然后在Object模式下使用Set Trigger或者Set Collider直接将其转换成图中的绿色半透明碰撞体(运行时这些绿色的碰撞体不会出现在画面中)。

      


第五步:使用Boolean操作完成门洞切割添加细节

 

Boolean切割操作前


 Boolean切割操作后

 

Boolean操作菜单

 


打开Boolean操作窗口以后,左边拖入“被切割物体”,右边拖入用于切割的物体,比如图中的白色方块,用于在斜坡上切出一个门洞。然后选择Operation为Subtraction,点击Apply即可完成Boolean切割操作。

 

虽然目前此功能还被标记为Experimental,但是只要网格模型的面片数很高,比如几十万个面,正常使用是没有问题的。当然,我们也非常希望广大用户在不同的情况下使用此工具,给我们提供反馈。

 

Boolean操作完成以后,原有的两个物体并不会消失,ProBuilder会生成一个新的带门洞的斜坡模型。原有的模型还可以被用于其他切割操作,或者用于其它地方。


额外功能

 

普通模型网格转换成ProBuilder可编辑网格

未转换成ProBuilder可编辑之前的模型(任何导入Unity中的网格都可以)。


 

转换成ProBuilder可编辑模型以后,ProBuilder相关编辑菜单显示了出来,可以进行全部的ProBuilder操作。


 

使用Unity FBX Exporter与3D软件进行资产迭代

在Unity中使用ProBuilder完成白模建模以后,可以将所有场景中的物体一起通过Unity FBX Exporter导入Maya/3dsmax这样的3D建模软件中,可以让美术人员作为参考把最终版本的精细模型完成。

 

当然,因为ProBuilder生成的纯粹的模型网格,你也可以使用ProBuilder菜单中的Export按钮将整个网格用obj,stl,ply等文件格式进行导出。


小结

ProBuilder套件的功能非常丰富,Unity官方技术团队会安排后续直播课程详细讲解如何使用这些工具,尽请关注!  更多Unity技术相关内容请访问Unity官方中文论坛(Unitychina.cn) !


推荐阅读



点击“阅读原文”访问Unity官方中文论坛

 
Unity官方平台 更多文章 OctaneRender for Unity重大更新说明 Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(下) Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(上) Unity资源包管理器-全新项目管理方式 Unite 2018 | 育碧-《Eagle Flight》背后的研发
猜您喜欢 一周阅读推荐 #3 【第3章第355回】11个让你HTML代码整洁的原则 奥巴马开通Twitter帐号 用的是iPhone手机 Java I\/O模型从BIO到NIO和Reactor模式 Python | 获取Android设备信息的轻量级框架