本节书摘来异步社区《精通Unreal游戏引擎》一书中的第5步,作者: 【英】Ryan Shah(沙哈)译者: 王晓慧 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。
第5步 使用减法BSP继续创建地图
精通Unreal游戏引擎
什么是Subtraction Volume(减法体)?Subtraction Volume(减法体)和BSP网格配合使用,可以从场景中删除BSP块。例如使用BSP创建一面墙,墙中有一扇门。首先新建一面墙,然后使用减法BSP从墙中凿出一扇门。下面我们就来学习如何实现。
创建减法BSP的过程和上一节我们创建墙的过程没有太大区别。事实上,这两个过程几乎一样。首先创建另一个立方体。如同前面的操作,前往Modes(模式)窗口(通常在项目主窗口的左上角),如图36所示。
注意:
该工具栏会根据您屏幕的分辨率隐藏一些选项。拖拉工具栏的底部和侧面边框来扩展它,就可以看到所有选项!
选择BSP,如图37所示,单击Box(盒子)并拖拽它到项目场景视图中。
现在场景中在您放置BSP的地方已经有了一个大小合适的盒子。需要注意的是,如果您的盒子有一半陷在了地板里,或者有一半嵌入了墙中,可以使用Transform(平移)工具(由3个箭头组成,分别是蓝色、红色和绿色)移动盒子让它刚好坐落在地面上。如果您没有看到平移工具,在场景中直接单击盒子即可。
下面使用Geometry Edit(几何体编辑)模式将盒子编辑成门框的形状。参考Unreal Engine 4提供的模板,盒子的高度是190cm左右。即使使用Geometry Edit(几何体编辑)工具也很难精确地测量,所以尝试做到门的高度至少在200cm左右,这样游戏角色才能轻松地穿过。一个测试的好方法是单击Alt+P运行关卡,确认立方体与角色对齐(单击ESC键退出Play-in-editor模式)。
但是当使用Play-in-editor模式时,您可能会发现游戏角色在场景中地板的下面,好像跌入了深渊,或者角色和新建的立方体不在同一个区域(因为此刻的地图被分成了4个区域)。
为解决这一问题,前往Scene Outliner(场景大纲视图,在Unreal Engine 4窗口的右上角),如图38所示。
在Scene Outliner(场景大纲视图)窗口中向下滚动找到Player Start,单击它。现在场景视图中,游戏角色已经在被选中,您可以使用Transform(平移)工具将其移动到新建的立方体附近。
然后将立方体编辑成门的形状,下面该把它变成减法BSP了。在此之前,为了进行后面的操作,我们将这扇门复制4次。具体方式是右键(Mac上是Ctrl键+鼠标左键)单击它,在弹出的菜单中选择Edit(编辑)>Copy(复制),如图39所示。这是因为减法BSP虽然可以复制,但是它们在场景中并不明显(只有红色的线框提示),这样很难展示我们的操作。
4扇门已经创建好,下面把它们放到合适的位置。我将以其中一扇门为例示范如何操作,剩下的就很简单了。单击场景中的任意一面墙,使用平移工具移动选中的这扇门嵌入到这面墙中间,如图40所示。
注意:
为了更好地看清楚该屏幕截图,这里对门使用了草坪材质。
在移动门将其嵌入墙的过程中,您可能会发现用作门的这个立方体的厚度不及墙的厚度。为了成功地从墙中凿开一扇门,门的两个面都需要漏在墙的外面,虽然不需要很精确,但至少门的厚度要比墙的厚度大。
如何调整门的厚度呢?还记得Modes(模式)窗口的Geometry Edit(几何体编辑)工具吗?使用该工具调整门的两个面之间的厚度,使得门的前面和后面都漏在墙外面,如图41所示。
注意:
地板设置为透明,为了展示墙的内部,显示门嵌入墙中,并且门的前后都漏在墙外。'
将立方体编辑为门的形状,并确定好位置之后,下面就准备将立方体变成一扇门。选中该立方体,Details(细节)面板中显示其属性,如图42所示。Details(细节)面板的默认位置是主窗口的右边,Scene Outliner(场景大纲视图)窗口的下面。
在Details(细节)面板的属性设置中,有一个Brush Settings部分位于面板上方、Search(搜索框)下面。其中第一个选项是Brush Type(画刷类型),默认值是Additive,意思是将BSP添加到场景中。我们想要的是从场景中删除BSP,单击下拉框,在弹出的下拉菜单中选择Subtractive。这时您会看到,之前我们创建的BSP不可见了。与添加BSP不同,Subtractive是指从场景中减去BSP,即删除墙里面的几何体,如图43所示。
注意:
“减法”BSP只对BSP有效,不适用于静态网格!
此刻您会发现地板被减去的门吞噬了一部分,我们将在设置好所有门之后解决这个问题。下面对现在的关卡进行一个快速的测试(Alt键+P键测试,ESC键退出),以保证游戏角色能够穿过这扇门,如图44所示。
下面对余下的这3扇门进行同样的设置操作。为了让角色能够在地图中自由地穿行,为游戏场地中的每一面内墙上都凿出一扇门,如图45所示。创建好之后进行测试,让游戏角色从一个房间开始,穿过所有房间,最后回到起始房间。一旦完成上述操作,就可以继续下面的内容了。