第三章 手把手创建关卡初级教程.docx
《第三章 手把手创建关卡初级教程.docx》由会员分享,可在线阅读,更多相关《第三章 手把手创建关卡初级教程.docx(65页珍藏版)》请在冰豆网上搜索。
![第三章 手把手创建关卡初级教程.docx](https://file1.bdocx.com/fileroot1/2023-3/31/4352ad43-3b57-4dd7-8772-1a149d2570fd/4352ad43-3b57-4dd7-8772-1a149d2570fd1.gif)
第三章手把手创建关卡初级教程
第三章手把手创建关卡初级教程
第三章手把手创建关卡初级教程
第三章:
创建并开动:
手把手创建关卡初级教程
文档摘要:
由于全书正在完善中,故本节内容可能在全书出版的过程中发生变化。
使用UnrealEngine进行游戏设计是振奋人心的,想象力有多丰富,设计就有多精彩。
当您第一次决定使用Unreal技术创建一个游戏时,指尖的能量是无可抗拒的。
游戏设计者的任务,就是抓住这一领域无限的可能性并缩小其范围,从而制作出精彩的游戏;但是正如游戏领域中的任何一位专业人士所言,说出从何下手是很困难的。
要做到“正确”!
,您需要大量的不同领域的技能。
这就是本章中我们设计这个简单的入门级关卡的目的,使您能够尽快掌握UnrealEd使用的各个方面进行关卡创建的技巧。
本章不对每个操作动作进行深入解释,而只是提供一个Unreal编辑器的超级速成课程,让您熟悉本书讲解的所有操作动作。
本章还能帮助UnrealEd的早期版本用户找出UnrealEngine3.0发行后对老版本的改进之处。
强烈推荐您完整地阅读本章内容,而不是断章取义地从中间选取一个指南。
请记住,这是一个入门章节,目的是带您快速浏览UnrealEd,并尽可能多而简单地阐释本书中的所有概念。
注意:
本章指南旨在使读者能够大体识别UnrealEd用户界面的主要区域。
要深入查看UnrealEd用户界面,请查看附录A:
UnrealEd用户手册。
指南3.1——创建您的第一个房间。
1.运行UnrealEd。
可以在可执行文件末端添加标志“editor”来运行UnrealEd。
如果不确定,请参照以下步骤(Windows):
∙右键拖曳安装文件夹中的可执行文件图标至安装文件夹的空白区域并选择关联菜单中的CreateShortcutsHere(在此创建快捷方式)。
∙右击新快捷方式,选择关联菜单中的Properties(属性)。
∙在属性窗口的“目标”一行中,在本行末尾添加一个空格,并键入editor即可。
注意:
最终的“目标”属性应与此相似:
C:
\UE3\UnrealEngine3\Binaries\UTGame.exeeditor
图3.1——UnrealEd用户界面。
2.Genericbrowser可能随UnrealEd一起运行。
若如此,点击右上角的关闭按钮将其关闭,然后在UnrealEd主菜单中选择File>New。
图3.2——主菜单中的“New”(新建)选项。
3.弹出NewLevel(新建关卡)对话框,从中可以选择创建一个添加型或挖空型场景几何体。
选择“Subtractive”(挖空型),然后点击OK。
这样就创建了一个实心世界(如同我们位于山的中央),从中可以抠出我们的关卡。
图3.3——NewLevel(新关卡)对话框。
4.在屏幕左侧(工具箱内),您将看到Cube(立方体)按钮。
右击此按钮。
屏幕中央将出现一个包含各种维度属性的窗口。
图3.4——画刷(brush)构建器——“Cube”(立方体)属性窗口。
5.分别于X(长)与Y(宽)的属性键入值1024,以及值512于Z(高)。
参见下图3.5。
点击“Build”(创建)按钮,然后在完成时点击“Close”(关闭)按钮。
现在你已经设置出了相应造型的红色画刷生成器。
然而,如果您注意到在一些视口中看不到画刷,请不用慌张。
您可能需要在视口中使用相机环绕浏览,直到看的见红色画刷!
图3.5——如图所示在Cube(立方体)属性窗口中键入相应值。
注意:
任何未明确告知需要进行属性设置的保留其默认值即可!
6.从工具箱中(还是位于屏幕左侧),选择CSG:
Subtract按钮
。
这将使用刚才的红色画刷的形状与位置来创建一个挖空型画刷。
创建此挖空型画刷的目的是在我们的实心世界中“抠”出一个房间。
然而,由于目前我们在关卡中没有任何光照,一切还都是漆黑不可见的。
7.点击透视视口顶部工具栏中的Unlit按钮
。
这将以不加入任何光源的形式显示您的关卡。
由于在我们的关卡中没有光源,这是目前为止查看或者开展工作的简便方法!
请随意转动浏览透视视口,以查看您的房间。
提示:
按住鼠标左键拖曳以进行物体的前移、后移及旋转。
按住鼠标右键拖曳以旋转相机。
鼠标左键及右键同时按下拖曳以进行物体的向上、向下、向左及向右滑动。
图3.6——第一个房间的当前进展。
祝贺您已经在一个Unreal关卡中创建了第一个房间!
然而现在它看起来并不怎么样。
在下一篇指南中,我们将现有的房间加点东西并使它变成更加有趣的关卡!
既然您已经知道了如何从关卡中抠出一个房间,那么您尽管可以按照相似的流程十分方便地添加更多的房间。
然而,为使这些房间相互连通且使关卡中的几何体更为简洁与有效,您必须特意关注每个房间的准确位置,并确保每个画刷精确对齐。
指南3.2——向您的关卡添加第二个房间
1.在工具箱中右击“Cylinder”(圆柱体)按钮
。
在Cylinder属性窗口中,为Z键入1024,其它保持默认值,如图3.7所示。
点击“Build”(构建)点击“Close”(关闭)按钮完成。
这样红色画刷就转变为一个高六面体。
图3.7——使用此设置创建圆柱体画刷。
2.在为我们的六面体房间创建一个挖空型画刷之前,我们应当将红色画刷摆放恰当。
所以就要用到平移控件(TranslationWidget)
,可以在UnrealEd的主工具栏中找到平移控件。
您可以把这个控件看作是3dsMax和Maya等很多类似3D制作软件中的平移操纵器。
左键点击红色画刷。
现在您应该注意到不仅画刷是以大红色高亮显示,同时平移控件也在其内部可见。
注意:
确保您不仅选取了平移控件,同时也选取了位于左边的Show/UsetheWidget图标
。
若此键未激活,控件则不可见。
图3.8——平移控件。
3.为了确保在编辑器中的所有移动是精确的,我们需要检验一下拖曳网格设置,因为这控制了当我们移动对象时的对齐(或者说是瞬间跳跃)单位。
这些设置在软件界面底部的控制台栏靠近右下角的地方
可以找到拖曳网格设置。
确认该复选框被选中,且“DragGrid”设置为16。
若您需要更改拖曳网格设置,只需点击邻接拖曳网格设置的小黑箭头,并从菜单中选取16。
图3.9——拖曳网格设置菜单。
注意:
通常将“DragGrid”设置成打开状态是个好习惯。
这能使您在移动画刷时能准确的与网格首尾对齐,以保持关卡中BSP几何体的整洁,这极为重要。
需要BSP的更多信息,参见第六章。
4.在此步骤中,确认你选中了Top(俯)视口(位于界面左上窗口)。
将红色画刷缩小至完整视图。
确保画刷已选取,并且能看见平移控件窗口。
点击并拖曳控件窗口上的红色箭头(X轴),向上移动红色画刷以使其最底部距离立方体的顶部两个网格的位置。
由于您的拖曳网格设置为16,两个网格的间距相当于立方体与六边形之间有32个单位(16x2)的空间。
等会儿这会变得很重要。
图3.10——立方体及六面圆柱体于俯视口中正确的放置状态。
小技巧:
如果您没办法确定立方体与六边形之间到底应该有多少个单位,您可以使用鼠标中键沿网格拖曳,这样就可以看到一个测量工具。
5.接下来,查看Side(侧方)视口(位于界面右上窗口)。
您会注意到圆柱体画刷的底部低于立方体画刷的底部。
需要对此进行调整,否则在关卡中会产生一个非常不平整的地面,导致玩家进入此圆柱体房间时会有一个门户大开的陷坑!
继续查看侧视口,然后使用平移控件中的蓝色箭头柄沿Z轴向上移动圆柱形红色画刷,使其底部与立方体房间的底部相平。
图3.10——注意将两个房间的底部对齐。
6.在确认六边形房间墙壁与立方体房间墙壁之间的距离为32个单位,且两个房间的底部保持水平之后,点击CSG:
Subtract按钮
抠出第二个房间。
7.在俯视口中使用平移控件移开红色画刷,以使您可以更容易地从perspective(透视)视口中查看房间。
请注意,现在两个房间之间没有走廊供玩家通过。
图3.10——在此可以看到当前的两个房间。
但是如果您仔细看,将发现它们没有相互连通的。
8.选择主菜单中的File——选择SaveCurrentLevel,将您的关卡保存为PrimerMap_01。
现在关卡中有两个独立的房间了,但是此刻我们无法从一个房间到达另一个房间。
在下一篇指南中,我们将在两个房间中创建走廊以解决此问题。
指南3.3——连接您的房间
1.如果您已关闭了刚才的文件,请打开在上一指南中保存的PrimerMap_01。
现在我们要在两个房间中创建走廊以连接这两个房间。
2.右击立方体按钮。
在相应属性栏中键入以下值,然后点击“Build”(构建)和“Close”(关闭)按钮。
∙X:
32
∙Y:
256
∙Z:
256
小技巧:
您可以在构建刷属性窗口中使用DownArrow(方向键下)来移动输入区域。
3.在俯视口中,使用平移控件为红色画刷定位,使其精确配合立方体和六棱柱房间。
确认居中红色画刷,使其边缘同时与两个房间都相连,并且水平对齐(还是在俯视图中)从而与立方体画刷的边缘精确配合,如下图所示。
图3.11——本图显示了正确对齐创建走廊的红色画刷。
4.既然红色画刷在顶部视图中已经对齐,您还需要在侧方视图中将它对齐。
否则,您的走廊底部将会悬在空中几英尺的地方!
在Front(前方)视口(右下区域)中,使用平移控件移动红色画刷,使其底部与两个房间的底部相平。
5.一旦确认了红色画刷的位置,点击CSG:
Subtract按钮在两个房间中抠出一个走廊。
但是您可能需要将相机拉入其中一个房间为了可以在透视视口中看到此走廊。
图3.12——现在在我们两个房间中有一个走廊了!
制作我们需要的关卡是一件十分复杂的事情。
然而,如果现在试图播放此关卡,我们会发现一无所有!
这是因为当前在关卡中没有任何光照。
在下一指南中,我们将通过在关卡中添加光源解决此问题。
指南3.4——照亮关卡
1.如果您已关闭了刚才的文件,请打开在上一指南中保存的PrimerMap_01。
2.创建光源的方法很多。
在本例中,我们将使用简单的快捷方法。
在俯视口中,按住L键然后在立方体房间的中心左击。
这将在房间中央添加一个光源。
3.现在,您无法看到光源的效果。
在透视视口工具栏中,点击Lit(点亮)按钮
,这样您就可以看到光源的样子了。
图3.14——现在您可以看到光照的结果。
4.选中该光源,按F4键,打开光源的属性窗口。
该窗口被分为几个可展类别。
首先,点击Light(光源)类别。
在它之下,您将看到叫LightComponent的子类别。
点击此子类别将展开一长列属性,它们会影响到光源的外观与行为。
图3.15——光源属性窗口。
5.在LightComponent子类别的设置列表中,设置以下属性(这些属性所起作用的技术性解释将在第13章中进行叙述):
∙Brightness(亮度):
设置为0.25
∙CastDynamicShadows(投放动态阴影):
选中此框
∙LightingChannels(光照通道):
击名称左侧的黑色箭头展开该子类别,并勾选Dynamic(动态)框
∙LightShadowMode(光源阴影模式):
使用下拉框将其设置为LigthShadow_Modulate(调制光源阴影)
完成属性设置后,关闭属性窗口。
6.现在我们需要此光源的一个副本,用来照亮圆柱体房间。
仍然选中此光源,按住Alt键,并在俯视图中使用平移控件将该光源沿X轴向上移动到圆柱体房间中央。
在您移动时确保按住Alt键以产生选中对象(此光源)的副本。
7.选中新复制的光源,按F4键打开其属性窗口。
如果需要,再次展开光源类别,然后展开LightComponent子类别。
将Radius(半径)属性设置为768。
图3.16——现在两个房间都照亮了。
8.务必进入主菜单栏的File>SaveCurrentLevel,保存您的更改!
现在您的房间已照亮了!
这样,就可以很方便地对其测试并环伺其内部进行观察。
在下一指南中,我们就要进行此操作!
指南3.5——测试关卡
1.如果您已关闭了刚才的文件,请打开在上一指南中保存的PrimerMap_01。
2.在我们真正进入关卡前,我们首先需要编译它。
在编辑Unreal关卡时,编译是您要所做最重要的事情之一。
它允许UnrealEd将您的几何体、光源以及其它项目编译成一个可运行环境。
总而言之,在您测试一个关卡前,您需要将您改变的任何东西重新进行编译。
据此,只要点击BuildAll(编译所有)按钮
(主工具栏中),这样会一次编译所有内容。
对于编译一个如此简单的关卡而言,这应该是一个相对快速的过程。
但请记住在您重新编译之前,您可能无法看到关卡的精确显示!
图3.17——BuildingMap(正在构建地图)对话框显示了您当前构建操作的进度。
3.一旦全部构建完成,就应该测试您的关卡了。
有两种方法来测试关卡。
第一种方法是将一个PlayerStart(玩家启动)actor放置在您所希望玩家进入关卡的位置。
第二种方法是简单地点击关卡某处(最好在地面上)并告诉UnrealEd,希望从此处开始播放关卡。
对于首次测试,我们将使用第二种方法。
右击立方体房间的底部,并从关联菜单中选择PlayFromHere(从此播放)。
InEditorGame(编辑器内运行游戏)窗口将出现,您可以运行关卡,就像您在游戏中播放它。
结束后,按Esc返回编辑器。
注意:
在底部右击后,您在点击PlayFromHere(从此播放)选项时可以按住Ctrl。
这将使您能够以旁观者的身份测试地图,这意味着您的相机可以自由移动,而不是附着于某一角色身上。
4.现在我们将使用PlayerStart(玩家启动)actor测试该关卡。
了解玩家进入该关卡的某个特殊位置,这一点非常重要。
右击关卡的底部开始测试。
从关联菜单中,选择AddActor>AddPlayerStart。
您可以使用平移控件将PlayerStart(玩家启动)定位于您钟爱的位置。
注意到从PlayerStart图标伸出向外的小箭头?
这使您能够控制该玩家进入关卡时的方向。
使用RotationWidget(旋转控件)对其自由旋转,这样玩家将按照您的意愿,面对某个特定方向。
图3.18——PlayerStartactor已置于关卡中。
5.现在进入主工具栏的Build(构建)菜单并选择PlayLevel(播放关卡),您就可以对该关卡进行测试。
如果您在此操作前没有事先添加入一个PlayerStartactor,您将会收到错误信息。
当您完成关卡测试后,按Esc返回编辑器。
务必保存您的关卡!
现在关卡中的几何体已经建立完毕,也已经旋转了一些光源,这样我们可以浏览此关卡了。
但是,当前我们看到都只是默认材质,并不娱人耳目。
在下一指南中,我们将向关卡的墙壁,地面以及天花板添加一些材质,开始真正地改变环境。
指南3.6——向全图几何体添加材质
1.如果您已关闭了刚才的文件,请打开在上一指南中保存的PrimerMap_01。
2.在我们向关卡添加材质之前,我们需要打开一个文件包,该文件包目前包含了在创建关卡过程中所需使用的所有材质及网格物体。
从主菜单栏中选择View>BrowserWindows>Generic。
图3.19——进入View(视图)菜单您就能够找到Genericbrowser。
3.在Genericbrowser内,从菜单栏选择File>Open。
找到PrimerLevel.upk文件,该文件应该已经在运行Unreal安装时从您的DVD复制到Content/Packages文件夹中去了。
如果还没有复制,此文件包在本书配套DVD的本章中的文件包文件夹中。
一旦打开该文件包,它就列在Genericbrowser左下方的文件包列表中。
在它边上是一个小的加号图标。
点击它展开文件包,并选择Materials组。
这将对您的Genericbrowser进行过滤,从而只看到PrimerLevel文件包中的材质。
图3.20——在本图中,您可以看到展开了的Genericbrowser,仅仅显示所选文件包中的材质。
4.在透视视口中,引导相机使其位于立方体房间中。
然后,使用鼠标左键,点击该房间的一面墙。
注意墙已变为蓝色。
这表示该表面已选中。
按住Ctrl键的同时,点击立方体房间的所有墙壁及天花板,就能同时选中它们,以及走廊的所有表面,但请排除地面。
图3.21——立方体房间的墙壁当前已选中。
5.返回GenericBrowser,点击mat_wall_plates材质。
这将会使该材质应用于所有的选中表面上。
如果您现在随便点击其中一面墙壁,就会在透视视口中取消对所有表面的选取,这样就能看到材质应用的效果了。
图3.22——第一个材质现在已应用于立方体房间的墙壁上。
6.选择立方体房间的地面,并在Genericbrowser中点击mat_wall_screws,将其应用于地面。
也将此材料应用于走廊的地面。
7.进入圆柱体房间,并选择所有的墙壁以及天花板。
您可以只选择一面墙壁,然后按下Shift-B作为快捷键选择所有与此画刷一致的表面。
然后,按住Ctrl并点击地面取消选对它的选取,只保留墙壁与天花板的选取。
一旦选中这些表面,进入Genericbrowser并点击mat_stone_mossy材质将其应用于表面之上。
8.使用您学得的技巧,将mat_stone_dark材质应用于圆柱体房间的地面上。
图3.23——已应用材质的圆柱体房间。
9.测试您的关卡,结束时请务必保存!
我们的关卡正在开始真正成型!
有了墙壁,有光源开始发光,而且我们还在墙壁上添加了一些“画”。
然而,总体看上去仍然是乏味的。
我们需要在关卡中放置一些东西,为它添加更多的特性。
在下一指南中,我们将开始用静态网格物体丰富我们的关卡,这些静态网格物体是从外部3D应用程序如3dsMax或者Maya构建的模型。
据此目的,这些网格物体创建完成了。
如果您想获得更多关于创建静态网格物体的知识,请参见DVD中包含的静态网格物体创建教学视频。
关于静态网格物体的技术信息,请查阅第XX章:
静态网格物体。
指南3.7——在关卡中放置静态网格物体
1.如果您已关闭了刚才的文件,请打开在上一指南中保存的PrimerMap_01。
2.选择View>BrowserWindows>Generic。
确保您已经加载PrimerLevel.pkg文件,该文件包含在教材相关DVD中的本章的文件包文件夹中。
从Genericbrowser左边的文件包列表中,确保您已经展开PrimerLevel文件包,这样您就可以看到它内部的Meshes(网格物体)组。
3.点击PrimerLevel文件包中的Meshes(网格物体)组,您将看到该文件包中所有的静态网格物体出现在浏览器中。
现在我们将其中一个网格物体放置于场景中。
点击浏览器中的sm_pipe_straight网格物体。
要将该网格物体放置于关卡中,必须在浏览器中选中。
图3.24——Meshes(网格物体)类别被选中,Genericbrowser将只显示包含在文件包中的静态网格物体。
4.在透视视口中,引导相机进入大的立方体房间。
右击靠近墙壁的地面(具体是哪面墙没有关系,虽然之后可能需要对一些对象进行旋转调整,使其面向房间中心)并从关联菜单中选择以下内容:
AddActor>AddStaticMesh:
StaticMeshPrimerLevel.Meshes.sm_pipe_straight。
放置选中的静态网格物体于鼠标右击的位置。
确保在俯视口中该网格物体距离墙壁大约32个单位(两个网格的距离);如有需要,用平移控件移动该网格物体。
注意:
根据您当前在Genericbrowser中选中的静态网格物体的不同,关联菜单中的AddStaticMesh:
选项将发生改变。
图3.25——第一个静态网格物体已放置,看上去是一根从地面竖起的垂直管道。
5.接下来,在Genericbrowser中选择sm_pipe_jointmesh。
调整您的透视相机位,可以看到刚刚添加的垂直管道的顶部,以便于置放。
右击该网格物体末端的上表面并从关联菜单中选择AddActor>AddStaticMesh:
StaticMeshPrimerLevel.Meshes.sm_pipe_joint。
将一个小的接头网格物体放置在管道的最顶部。
如有需要,在俯视口(左上区域)中移动该接头网格物体,确保它与管道网格物体对齐。
您可能还需要在侧视口或者前方视口中确认该接头网格物体是否正好垂直放置在管道顶端。
图3.26——在此您可以看到接头网格物体已正确放置于垂直管道网格物体的顶端。
6.在Genericbrowser中选择sm_pipe_corner静态网格物体,右击您刚刚添加的静态网格物体的顶部,并从关联菜单中选择AddActor>AddStaticMesh:
StaticMeshPrimerLevel.Meshes.sm_pipe_corner将此静态网格物体添加到地图中。
该网格物体应该正好出现在接头网格物体的顶部,尽管您可能需要旋转使其背朝墙壁。
要进行此操作,选择位于工具栏中的旋转控件
。
然后,只要拖曳蓝色旋转轴(Z轴)旋转该网格物体,直至它指向房间内部。
注意:
按住Ctrl,您能够全选三个网格物体,然后将它们作为一个整体进行旋转。
小技巧:
敲击空格键,可以在平移,旋转及缩放控件之间切换!
7.如果您立刻点击BuildAll(编译所有)按钮
您将注意管道网格物体还没有影子。
这是因为阴影是基于surface-by-surface(面到面)计算的,而网格物体后墙壁表面的阴影分辨率不够锐利。
主要是因为阴影散射过多而无法再将其表现出来。
现在需要进行如下修改:
首先点击网格物体后面的墙壁,使其蓝色高亮显示,然后按下F5键,打开SurfaceProperties(表面属性)对话框。
图3.27——当您按下F5键时,SurfaceProperties(表面属性)对话框就出现了。
8.在SurfaceProperties(表面属性)对话框中,找到Lighting(光照)组,然后从LightmapResolution(光源影射分辨率)下拉框中,选择值8.0。
这将锐化管道网格物体后的阴影,使其可见。
完成后点击“BuildAll”(编译所有)按钮
查看效果。
图3.28——在此您可以看到LightmapResolution(光源影射分辨率)下拉框展开了。
LightmapResolution(光源影射分辨率)属性看上去有反常识,因为您选择的值越小,阴影就越锐利。
思考一下以Unreal单位数值计算的单点阴影的数值。
因此较小的数值将加强阴影。
同时,更少的阴影点要求放置更多的