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

第4步 使用BSP创建地图

精通Unreal游戏引擎
首先,前往Modes(模式)窗口(通常在项目主窗口的左上角),如图19所示。

注意:
该工具栏会根据您屏幕的分辨率隐藏一些选项。拖拉工具栏的底部和侧面边框扩展它,就可以看到所有选项!

下面使用BSP刷子创建一些几何体。在此之前,让我来解释一下什么是BSP,使用BSP的好处和注意事项。

BSP是可编辑的几何体,可以用来充实项目的场景。想一下,您在使用可定制的乐高玩具创建关卡时,可以很快得到雏形,但是乐高玩具并不适用于制作最终产品。为什么呢?因为BSP非常占用资源。BSP的主要功能是帮助您勾勒出一个关卡的轮廓,和正常的静态网格相比,它们在渲染的时候会消耗更多的内存和资源。

读到这里,您肯定要问“为什么一开始还要使用BSP呢?”因为BSP可以在Unreal Engine 4中快速简单地创建一个游戏关卡。在30秒之内,您就能创建一个可以自由行动的房间。

此外,您可以将任意的BSP(或者一些BSP的集合)转换为一个静态网格,然后将这个静态网格导出到您喜欢的3D建模程序中,进而以它们为基础创建最终的游戏关卡。一旦创建完毕,还能将该网格导回Engine来代替BSP,给您节省了大量的时间和不必要的努力。

关于BSP的更多信息,推荐您到Unreal Engine网站上或者在Unreal Engine 4的窗口中单击F1查看相关文档。

现在我们在场景中创建两面墙,把大块空间分割成几个小块,让我们的地图显得更有深度,也更有趣。

前往Mode(模式)工具箱(记得调整窗口大小以看到所有选项),选择类别BSP,如图20所示,单击Box(盒子)并拖拽它到项目场景视图中。

现在场景中在您放置BSP的地方已经有了一个大小合适的盒子。需要注意的是,如果您的盒子有一半陷在了地板里,或者有一半嵌入了墙中,可以使用Transform(平移)工具(由3个箭头组成,分别是蓝色、红色和绿色)移动盒子让它刚好坐落在地面上。如果您没有看到平移工具,在场景中直接单击盒子即可,如图21所示。

注意:
为了让您看清图像中的盒子,这里对地面添加了材质。如果书中图像的分辨率不高,可以从http://content.kitatusstudios.co.uk网站上下载本书中所有图像的高清版本。

这个盒子看起来不错,但是我们需要的是在当前场景中建一面墙。类似前面的操作,可以很容易地把盒子变成一面墙(记住:直接单击盒子,平移工具就出现了),先把盒子移动到地图中间,如图22所示。

注意:
当移动盒子的时候,您可能不经意地把它放在了场景中某个物体的上面,这个物体看起来像一个操控杆或者一面旗,且会从中出来一个蓝色的箭头。其中,这个操控杆是玩家的初始位置, 箭头是玩家面朝的方向。如果操纵杆在盒子内部,情况会很糟糕,因为玩家将出现在盒子内部,所以在移动盒子的时候请注意这一点。

您可以单击它,使用平移工具将操纵杆移出去,或者在Scene Outliner(场景大纲视图,通常在工作区的右上方)中找到Player Start,单击Player Start并用平移工具将其移出去。

现在,盒子已经在地图中间了,但是它看起来并不像一面墙。再次前往Modes(模式)工具箱(我们创建盒子的地方),您会发现Modes(模式)窗口的上方有5个按钮,如图23所示。

图 #1 Place (放置)—图标是一个立方体,前面放着一个灯泡。该工具可以实现把光照、BSP、触发器等对象放置到场景中。
图 #2 Paint (描画)—图标是一个画刷。该工具可以实现在静态网格上绘制顶点信息,例如在岩石上添加苔藓(您需要有带有苔藓的岩石材质,这是后续的内容,这里不再赘述)。
图 #3 Landscape (地貌)—图标是被雪覆盖的群山。该工具可以生成地貌(类似Far Cry编辑器)或者通过heightmaps(高度图工具)将事先创建好的地貌导入进来。
图 #4 Foliage (植被)—图标是几片忧郁的叶子。该工具可以实现同时放置许多网格,如草和树木。
图 #5 Geometry Edit (几何体编辑)—图标是被削去了四分之一的盒子。该工具可以实现编辑BSP对象的顶点。例如,您可以让盒子的一面变大或者变小;让盒子的两个顶角汇合等。
我们要把立方体变成一面墙,所以使用第五个工具—Geometry Edit(几何体编辑)。直接单击该工具按钮,Modes(模式)工具箱内的选项会发生变化。该工具会自动加载默认设置—Edit(编辑)模式,如图24所示。在这5个按钮下方有一些单选框,直接单击来实现模式的切换。

这里我们需要Edit(编辑)模式,所以不改变任何设置,但是有必要了解这些模式选项,方便以后使用。

小提示:
直接单击Geometry Edit(几何体编辑)按钮来激活该工具。Unreal Engine 4的大部分工具,会有一个明显的激活提示,通常工具按钮会变成橘黄色。Modes(模式)工具栏有一点不同,这里为什么要介绍这个呢?因为很多时候,当您想把一个BSP从位置A移动到位置B时,有可能不经意的选中了盒子的一面然后把盒子变大了。如何阻止这种情况发生呢?很简单!时不时地查看Modes(模式)窗口,以确定当前选中的是Place(放置)工具,而不是其他工具。

现在已经选中了Geometry Edit(几何体编辑)工具,下面单击选中场景视图中待编辑的BSP。因为我们想编辑之前创建的盒子,所以单击盒子。这时盒子的边缘被黄色和蓝色高亮显示(盒子的顶角上出现蓝色方块),如图25所示,表示盒子已经被选中,就可以进行编辑了。

注意:
单击盒子,Gizmo(小工具,选中对象中央的红绿蓝箭头组合)变成了椭圆形状?还是箭头变成了立方体?一旦出现了这两种情况,表示当前处于错误的Gizmo mode(编辑模式)。我们可以在Gizmo Selector(编辑模式选择器)中选择正确的编辑模式。Gizmo Selector(编辑模式选择器)在主场景视图中,位于屏幕的中间或者是右上方(这取决于您屏幕的大小),如图26所示。

黄色底的选项表示当前选中的编辑模式。一共有3个选项:左边的表示Transform(平移),可以在XYZ平面上移动对象;中间的表示Rotator(旋转),可以沿着XYZ坐标旋转对象;右边的表示Scale(缩放),可以使对象变大或者变小。

为了借助Geometry Edit(几何体编辑)工具将盒子变成一面墙的形状,我们使用最左边的Transform(平移)模式。如果该模式当前没有被选中,直接单击Gizmo Selector(编辑模式选择器)左边的按钮将编辑模式切换为Transform(平移)。

现在我们可以编辑盒子的大小了,但是如何精确地控制呢?一旦盒子被选中,可以选择盒子的一个面来编辑。所以首先要确定盒子处于选中状态,然后单击任意一面。正处于编辑状态的面会被黄色高亮显示,您可以准确定位它,如图27所示。

对于这个面,我们需要把墙变得窄一点。虽然厚墙也可以,但是窄墙看起来更加美观!在Transform(平移)编辑模式下,单击绿箭头,按住鼠标左键拖拽箭头直到盒子的厚度是原来的一半,如图28所示。

下面就使用上述方法创建一面墙。选中您刚刚编辑的那个面左边的面,拖拽其直至与外墙(首次创建项目时自动生成的)重合,如图29所示。

墙的一侧已经编辑完毕,单击这面墙的另一侧,拖拽其直至与另一面外墙重合,这时游戏场地被分割成了两部分,如图30所示。

如何让墙变得高一点?选中最上面的面,拖拽其与外墙的高度一致即可,如图31所示。

我们已经有了一面墙,把场景分割成了两部分。但是在完成之前,还有一些操作。退出Geometry Edit(几何体编辑)工具,前往Modes(模式)窗口,单击Place(放置)按钮(Modes窗口的最上面,其图标是一个立方体,前面放着一个灯泡),如图32所示。

然后单击选中刚刚创建好的墙,如图33所示。

同时按Ctrl+C组合键复制这面墙,然后同时按Ctrl+V组合键粘贴得到墙的一个副本。也可以右键单击这面墙(Mac上是Ctrl键+鼠标左键),在下拉菜单中选择Edit(编辑),在弹出的二级菜单中选择Duplicate(复制)。

此时您可能看不到复制得到的墙。到场景视图的中间或者中间偏右的位置找到Gizmo Selector(编辑模式选择器),选择中间的Rotator(旋转)模式。将这面墙向左或向右(使用出现的标示符中的蓝色区域)旋转90°,这时在地图中间出现了一个大大的X或+号,如图34所示。

如何使得新建的墙与外墙恰好吻合呢?使用之前学过的方法调整墙的长度,即使用Geometry Edit(几何体编辑)工具进行缩放得到合适的尺寸。

现在场景中已经有4个完美分割好的房间让我们来创建一个很酷的项目。但是您有没有注意到哪里有些不对劲,好像忽略了很重要的东西?

由于这两面墙的缘故,这些房间之间不能穿梭。如何解决这一问题呢?下面我们将学习Subtraction Volume(减法体)。

《精通Unreal游戏引擎》一第4步 使用BSP创建地图相关推荐

  1. Unity3d游戏引擎Windy系列教程:地形的创建

    各位读者老爷们,小的在这里说声对不起,因为临近月考,所以上周停更了,明天就是考试的日子了,本来打算今天也不更新了,但是考虑到大家对我的支持,和我那颗想要进步的心,我扔掉了手里的五年中考三年模拟,坐在了 ...

  2. 3D游戏引擎剖析【较全面】

    转自:http://blog.csdn.net/is01sjjj/article/details/430125 第1部分: 游戏引擎介绍, 渲染和构造3D世界 介绍 自Doom游戏时代以来我们已经走了 ...

  3. 转:3D游戏引擎技术剖析

     转自 http://blog.csdn.net/jbjwpzyl3611421/article/details/12681047 3D游戏引擎技术剖析 分类: Unity3D2013-10-13 1 ...

  4. 游戏引擎全剖析(二)

    第6部分:  声音系统,音频APIs 声音系统 由于人们玩的游戏在种类和技术上的进步,声音和音乐近几年来在游戏中正逐渐变得重要起来(声音是一个实际游戏的可玩特点,比如在Thief和其它同类游戏中的听觉 ...

  5. 第1部分: 游戏引擎介绍, 渲染和构造3D世界

    原文作者:Jake Simpson 译者: 向海 Email:GameWorldChina@myway.com  ------------------------------------------- ...

  6. raspberry pi_如何在Raspberry Pi上使用LÖVE游戏引擎对游戏进行编程

    raspberry pi Raspberry Pi以向孩子介绍开源软件和编程而闻名. Pi是负担得起的,实用的专业级计算入门,伪装成可破解的乐趣. Mitch Resnick's Scratch (最 ...

  7. 如何制作自己的C++游戏引擎

    你想了解更多关于游戏引擎的知识.并自己来写一个吗? 这可是非常牛皮的一件事.为了帮助你学习,这里有一些C++库和依赖项的推荐,可以帮助你快速上手. 游戏开发一直是我的学生学习更高级计算机科学主题的好帮 ...

  8. Hazel游戏引擎(001-003)

    文章目录 前言 001.游戏引擎介绍 002.什么是游戏引擎 003设计我们的游戏引擎 本人菜鸟,文中若有代码.术语等错误,欢迎指正 前言 我写的项目地址 https://github.com/liu ...

  9. Blender Game Engine (BGE) 是 Blender 3D内置游戏引擎

    Blender Game Engine (BGE) 是 Blender 3D 建模和动画软件的一个内置游戏引擎.它可以创建游戏,模拟和交互式内容. 安装: Blender Game Engine 已经 ...

最新文章

  1. Web前端开发人员和设计师必读文章推荐【系列九】
  2. php Pthread 多线程 (一) 基本介绍
  3. U盘安装Ubuntu14.04
  4. SpringBatch适配器详解
  5. MyFaces Tree2控件使用 -----From http://blog.163.com/net_wood/blog
  6. jboss ejb_使用JBoss AS 7进行SSL加密的EJB调用
  7. PC机中各类存储器的逻辑连接情况
  8. Linux下C语言编程入门-8关于计时器
  9. [Java] 使用HttpClient实现文件下载
  10. 桌面虚拟化正处于导入期
  11. 云闪付华为P9指纹_超强指纹识别体验:华为P9指纹还能这么玩
  12. 预测分析:R语言实现2.4 评估线性回归模型
  13. 如果一个女人喜欢你,又不跟你在一起,而且只跟你很暧昧,那代表什么
  14. 联想笔记本打开野兽模式
  15. Ubuntu系统 --火狐浏览器-- 安装 flash播放器--百度翻译发不出声音
  16. CStdioFile总结
  17. 字体大宝库:2012年最新发布的26款高质量免费英文字体
  18. 头条算法题:产品经理,程序员任务调度、用户喜好值算法等等
  19. Network Connections
  20. WPF学习日记(二)——XAML语法

热门文章

  1. antd tree搜索并定位_自动驾驶定位思考
  2. 子程序与中断程序的异同_专业解读PLC编程中断的原理和用法
  3. yolov配置之:cuda、 cudnn安装
  4. 图像降噪算法——维纳滤波
  5. 【行业进展】哪些公司在搞“新零售”了
  6. 中国碳酸氢钠干粉灭火剂市场产销分析与盈利前景策略报告2022年
  7. 2022年跨境电商的风口还在吗?
  8. 全球与中国立式胶体磨市场发展现状调研及前景需求分析报告2022-2027年版
  9. html5 文件转byte[],JS 文件base64、File、Blob、ArrayBuffer互转
  10. Java IO流之字符缓冲流