BSP画刷的概述和使用方法

发布时间 2023-09-13 10:51:31作者: makalo

什么是BSP画刷

BSP(Binary Space Partitioning,二进制空间分区)画刷是UE早期设计关卡的主要工具

后来,随着静态网格体的优点越来越明显,BSP画刷在大型模型创建中的作用已经相对减少。

但由于BSP画刷不需要借助第三方3D建模软件便能独立完成三维模型制作,

因此其快捷、不需引入第三方软件等的优点仍具有一定的实用价值。

用途

尽管现在主要使用StaticMeshes(静态网格物体)来制作关卡,但是BSP画刷在绘制关卡草图等方面仍然有效,现在开发关卡的标准工作流程是:

▲设计出关卡草图及关卡路径。

▲运行关卡测试流程和游戏性。

▲修改布局并反复测试

▲起始的光照环节

▲对碰撞及性能问题的游戏测试。

▲润色。

BSP画刷的模式

UE中BSP画刷共有4种模式:选择、地形、植物和笔刷编辑,如图所示:

img

BSP画刷工具的选择模式

相较于之前的版本,4.27BSP画刷工具将常用的7种几何体放置在“放置actor”的“几何体”目录下

使用时只需要将对应的几何体拖到视口便可以创建相应的模型,如下图所示。

BSP画刷的其他模式放置在“模式”工具栏中,如图所示。

image-20230829094245075

BSP画刷的类型

在UE中,BSP画刷设计了“添加”、“减去(挖空)”两种几何体类型。

拖拽“添加”类型到视口中,可在视口中添加对应的模型; 拖拽“减去(挖空)”类型几何体到视口中,

其他BSP创建模型和“减去”类型相交的部分会补减去(注:减去类型对非BSP画刷创建的类型无效)

添加类型

image-20230829105801490

减去(挖空)

image-20230829110613449

中空,墙壁厚度设置

我们用画刷添加的盒体,默认是没有添加中空的

image-20230829111514374

这样的话,我们进入盒体就什么都没有,也就是没有墙壁,这时候我们勾上中空

image-20230829111624723

可以看到,进入盒体之后,有墙壁了

有墙壁那肯定厚度的调整

image-20230829112405394

几何体

几何体属性面板中有“选择”和“对齐”两个选项。

通过使用选择选项可在对表面进行材质和纹理的处理对相邻或是相同表面进行批处理,可增强工作效率。

对齐是对表面材质或纹理进行对齐。

image-20230829114601607

image-20230829114612812

表面属性

image-20230829115018365

​ 你可以平移、旋转、缩放材质的纹理

画刷设置

笔刷类型

修改模型的类型,可将模型修改为添加型或减去型。

笔刷形状

修改笔刷的形状,从而把模型修改为7种常用模型,如下图所示。

img

X、Y、Z

分别修改模型三个维度的大小。

墙壁厚度、中空

这两个属性不一般配合使用,中空主要用来设置模型内部是的空间属性,

不选默认为实心,勾选后模型内部为空心;墙壁的厚度用来设置中空模型的墙壁厚度。

排序

和PS和PPT中的图片相类似,UE中的模型也有其叠放顺序,如减去型模型只能减去其下层的添加型模型,不能减去其上层的模型,其叠放顺序可使用表面属性中的排序进行调整,如图所示:

img

固体性

固体:画刷是画刷的默认类型,具有以下属性。

▲阻挡游戏中的玩家和射弹;

▲可以是添加型或减去(挖空)型;

▲在周围画刷中创建BSP分割。

半固体:可以放置在关卡中且不会对周围的世界几何体创建BSP分割的碰撞画刷,具有以下属性。

▲阻挡玩家喝射弹,就像固体画刷一样;

▲只可以是添加型,绝对不可以是减去(挖空)型;

▲不会在周围画刷中创建BSP分割。

非固体:在周围时间几何体也不会创建BSP分割的非碰撞画刷。它们具有可视化的效果,但是使用任何方式都无法与它们互动,具有以下属性。

▲不会阻挡玩家或射弹;

▲只可以是添加型,绝对不可以是挖空型;

▲不会再周围画刷中创建BSP分割。

BSP 画刷工具的编辑

image-20230829141126917

img

编辑

直接在视口中选择面、边缘或顶点。使用操纵器来平移、旋转或缩放现有几何体。

image-20230829141502374

在笔刷编辑界面

按住ctrl键的同时复选模型的多个顶点,而后沿最后一个顶点上的坐标轴移动可调整选中顶点所构成的线或面,如下图所示。

另外,视口界面可调出模型的三视图,在不同的视图中可方便框选所要调整的项点,提高模型的修改效率。

image-20230829142609741

分割

创建一系列锚点,以此创建阻挡体积或自由形状几何体。

注意:必须在2D视口中拥有聚焦才能使用笔面工具。

在一个正交视口中创健至少3个锚点,使用空格健确定锚点。

在第一个锚的上方创键一个锚来完放形状。使用带ExtrudeDepth的bAutoExtrude来创建一个3D形状。

选中一条直线,使用分割功能可以以线的中点为项点在模型中创建一个垂直于直线的平面,如下图所示,分别在正方形的两条边上创建一个平面。

image-20230829142838297

分割完后

image-20230829142935885

结合

将选择的所有顶点合并到首个选择的顶点,即选择的第一个顶点就是结合最终的顶点。

image-20230829143251738

优化

合并可形成单个凸面多边形的所有多边形,以此优化选定的几何体。

如上图中,金字塔模型中冗余的面太多,选中金字塔后点击优化后要削除多余的面,如下图所示

优化前

image-20230829144242260

优化后

image-20230829144322521

编辑案例-做一个屋顶

1.选一个好看的材质 ,拉出一个盒体

image-20230829145027613

2.使用编辑里面的切割工具,切割成四份

image-20230829145311894

3.选中中间的点结合旁边的点

选中,结合之前

image-20230829145541716

image-20230829145701623

结合之后

image-20230829145725500

再结合另一边

image-20230829150019943

这样就出现了一个屋顶,

我们再切换一下试图,来进行拉伸,位移

image-20230829150516177

试图切换后

image-20230829150627349

拉伸

image-20230829150729277

移动

image-20230829150852510

切换一下视图,可以看到一个房顶

image-20230829151008696

使用BSP工具搭建场景

上面说了这么多,现在开始搭建一个场景

创建地面和基本盒体

使用几何体 -> 盒体 -> 设置x,y

image-20230829152110098

再拉出一个盒体,并设置x,y,z 为500

image-20230829152332777

添加第三人称工具包

image-20230829152601849

image-20230829152631062

添加完成后,在下面的路径中会有小白人

image-20230829152835122

把这个小白人拖到场景中

image-20230829153120959

设置小白人的控制

上面只是添加了一个第三人称角色,但是还没有设置角色的控制,选中小白人

在搜索详情中输入 poss ,设置自动控制玩家,选择玩家0

image-20230829153624369

运行

在设置完成后,点击运行,即可呈现小白人控制

image-20230829154054713

构建“别墅”雏形

首先在上面基础上面,修改下 盒体

image-20230829162503585

让它看起来像个房子,并且可以设置一下门面的材质

再构建一个挖空型 盒体画刷,制造一个门

image-20230829162657748

看正面效果

image-20230829162815682

制作第二层和地板

选择这个"房子的盒体",复制一个,并进行压扁,这样一个地板就出现了

image-20230829163431756

设置压缩

image-20230829163504252

再次复制一个,成为第二层,这样我们操行有点古怪的房子就出现了

image-20230829163839720

参考资料

https://zhuanlan.zhihu.com/p/576290823