首页 > 代码库 > 关卡中如何使用 Geometry(BSP) 创建障碍物 【UE4】

关卡中如何使用 Geometry(BSP) 创建障碍物 【UE4】



如图,BSP 选项(新版本为Geometry)在左侧的 Mode 面板下,提供了若干基础的 BSP 供我们选择。

技术分享

我们虽然可以通过 Detail 面板下的 Transorm 下的 Scale 来改变它的大小,但是它有个很大的问题——当我们最后将它转换为 “Block Volume”的时候,它的 Scale 会被重置为 1,这显然不是我们想看到的结果。建议的方法是,通过修改 Brush Setting 下的 X, Y, Z 来修改大小

 技术分享

我们除了可以通过 Ctrl+C, Ctrl+V 来复制粘贴 BSP,还可以按住Alt + 鼠标拖动以达到同样目的。

如果我们不满足于 UE4 提供的基础 BSP,我们还可以自定义它的形状,通过选择 Mode 面板下的 Geometry Editing 选项卡,我们可以修改它的 边、面、点(如果选择了 Extrude,还可以增加截面,值得注意的是它的坐标系基于是局部坐标系的,并且得选中面才能奏效)。

技术分享

细心的朋友可能早就注意到了 Brush Setting 下的 Brush Type 有 Additive 和 Subtractive 之分,

我们以 门型BSP 为例,Additive的效果:
技术分享

Subtractive 的效果:
技术分享

当我们将它移到墙壁上,可以看见墙上被镂空出了一个门型的“洞”:

技术分享

我们还可以将 BSP 和 Mesh 相结合
首先我们通过右键点击 Import Asset,导入我们需要的 Mesh 到指定文件夹(既然我们使用了 BSP 作为障碍,那么 就不需要勾选 Auto Generate Collision),

接着我们新建一个 Blueprint,来组织我们刚导入的其中两个 Mesh:
1.新建一个 Blueprint Class,令其继承自 Actor 类;
2.通过 Add Component,依次添加我们需要的两个 Mesh。

技术分享

然后,在场景中,事先放置一个 BSP Box
技术分享

再把之前定义的 Blueprint Class 给拖到场景当中,调整其位置、大小和方向,是它恰好和 BSP Box契合
技术分享

调整完,应该是如下的结果:
技术分享

最后,重要的一步——选中 BSP Box,在 Detal 面板中选择 Convert Actor, 将其转换为 Blocking Volume(如果转换为 Blocking Volume,那么就不能用 Subtractive Brush )。

技术分享

我们就可以看到 BSP Box 消失了(如果没有消失,则点击 ToolBar 上的 Build )

技术分享


最后,补充一点,有时创建的规则 BSP 的碰撞检测不够精确,除了可以通过 Geometry Edit 的 Extrude功能进行补充修正,还可以通过 Staic Mesh Editor,生成近似的碰撞检测包络。

Static Mesh Editor 如图

技术分享

技术分享


Geometry Edit Extruding 如图:

技术分享

(完)


关卡中如何使用 Geometry(BSP) 创建障碍物 【UE4】