天天看点

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

本节书摘来异步社区《精通unreal游戏引擎》一书中的第5步,作者: 【英】ryan shah(沙哈)译者: 王晓慧 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

精通unreal游戏引擎

什么是subtraction volume(减法体)?subtraction volume(减法体)和bsp网格配合使用,可以从场景中删除bsp块。例如使用bsp创建一面墙,墙中有一扇门。首先新建一面墙,然后使用减法bsp从墙中凿出一扇门。下面我们就来学习如何实现。

创建减法bsp的过程和上一节我们创建墙的过程没有太大区别。事实上,这两个过程几乎一样。首先创建另一个立方体。如同前面的操作,前往modes(模式)窗口(通常在项目主窗口的左上角),如图36所示。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图
注意: 该工具栏会根据您屏幕的分辨率隐藏一些选项。拖拉工具栏的底部和侧面边框来扩展它,就可以看到所有选项!

选择bsp,如图37所示,单击box(盒子)并拖拽它到项目场景视图中。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

现在场景中在您放置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所示。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

在scene outliner(场景大纲视图)窗口中向下滚动找到player start,单击它。现在场景视图中,游戏角色已经在被选中,您可以使用transform(平移)工具将其移动到新建的立方体附近。

然后将立方体编辑成门的形状,下面该把它变成减法bsp了。在此之前,为了进行后面的操作,我们将这扇门复制4次。具体方式是右键(mac上是ctrl键+鼠标左键)单击它,在弹出的菜单中选择edit(编辑)>copy(复制),如图39所示。这是因为减法bsp虽然可以复制,但是它们在场景中并不明显(只有红色的线框提示),这样很难展示我们的操作。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

4扇门已经创建好,下面把它们放到合适的位置。我将以其中一扇门为例示范如何操作,剩下的就很简单了。单击场景中的任意一面墙,使用平移工具移动选中的这扇门嵌入到这面墙中间,如图40所示。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图
为了更好地看清楚该屏幕截图,这里对门使用了草坪材质。

在移动门将其嵌入墙的过程中,您可能会发现用作门的这个立方体的厚度不及墙的厚度。为了成功地从墙中凿开一扇门,门的两个面都需要漏在墙的外面,虽然不需要很精确,但至少门的厚度要比墙的厚度大。

如何调整门的厚度呢?还记得modes(模式)窗口的geometry edit(几何体编辑)工具吗?使用该工具调整门的两个面之间的厚度,使得门的前面和后面都漏在墙外面,如图41所示。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图
地板设置为透明,为了展示墙的内部,显示门嵌入墙中,并且门的前后都漏在墙外。'

将立方体编辑为门的形状,并确定好位置之后,下面就准备将立方体变成一扇门。选中该立方体,details(细节)面板中显示其属性,如图42所示。details(细节)面板的默认位置是主窗口的右边,scene outliner(场景大纲视图)窗口的下面。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

在details(细节)面板的属性设置中,有一个brush settings部分位于面板上方、search(搜索框)下面。其中第一个选项是brush type(画刷类型),默认值是additive,意思是将bsp添加到场景中。我们想要的是从场景中删除bsp,单击下拉框,在弹出的下拉菜单中选择subtractive。这时您会看到,之前我们创建的bsp不可见了。与添加bsp不同,subtractive是指从场景中减去bsp,即删除墙里面的几何体,如图43所示。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图
“减法”bsp只对bsp有效,不适用于静态网格!

此刻您会发现地板被减去的门吞噬了一部分,我们将在设置好所有门之后解决这个问题。下面对现在的关卡进行一个快速的测试(alt键+p键测试,esc键退出),以保证游戏角色能够穿过这扇门,如图44所示。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

下面对余下的这3扇门进行同样的设置操作。为了让角色能够在地图中自由地穿行,为游戏场地中的每一面内墙上都凿出一扇门,如图45所示。创建好之后进行测试,让游戏角色从一个房间开始,穿过所有房间,最后回到起始房间。一旦完成上述操作,就可以继续下面的内容了。

《精通Unreal游戏引擎》一第5步 使用减法BSP继续创建地图

继续阅读