从零开始学虚幻4游戏开发系列02

2017-12-30  本文已影响0人  一个做iOS的程序员

对于新手来说,使用虚幻4引擎开发游戏并没有想象中的那么难。特别是虚幻4中引入的蓝图可视化编程系统让游戏开发变得更加容易上手。对于某些类型的游戏,我们甚至可以不写一行代码就创建一款完整的游戏。

在Part 1的教程中,我们主要学习如何使用虚幻4引擎的蓝图系列来开发一款简单的游戏。

Part 1的教程又可以分为以下7个部分:

1.开始前的准备

2.蓝图系统

3.材质

4.UI

5.如何创建一款简单的游戏

6.动画

7.音效

开始前的准备

这个小节的内容主要是为了让大家对虚幻4引擎有个基本的概念,我们将要学习如何安装虚幻4引擎,如何导入游戏资源,如何创建材质,以及如何使用蓝图系统创建具有基本功能的游戏对象。

安装虚幻4引擎

要安装虚幻4引擎,我们需要借助Epic Games Launcher。在浏览器中打开Unreal Engine的官网(https://www.unrealengine.com),然后点击页面右上角的DOWNLOAD按钮。

在下载之前,我们需要创建一个Epic账号,或者也可以使用Facebook和Google的账户来登陆。

在创建账户并登陆后,就可以选择下载Windows或Mac版的Launcher了。

下载并安装完成之后,打开Launcher,可以看到如下的界面。

使用自己的Epic账号登陆即可。

此时会看到类似下面的界面

点击Install Engine开始安装虚幻4引擎,会看到提示选择安装路径,使用默认的就好,

点开Options,会看到更多的安装选项,默认情况的安装选项如下图。

其中Core Components是必选项,也是引擎最核心的部分。

接下来简单介绍了三个默认选项的内容:

(1)Starter Content

其中提供了初学者用来开发自己项目的免费资源,包括一些模型、材质等等。在项目的开发过程中,我们可以临时使用这些资源来代替最终的游戏资源。

(2)Templates and Feature Packs

虚幻4引擎提供了一系列的模板,在开发项目的时候,根据开发者所选的模板类型,项目模板中会提供一些基本的功能特性。比如,当我们选择Slide Scroller模板来创建游戏的时候,系统就会帮我们创建一个基本的横版过关游戏模板,其中包含了一个游戏角色,角色的基本运动,以及一个固定的plane camera。

(3)Engine Source

需要特别强调的是,虚幻4引擎是完全开源的,也就是说只要你愿意,可以阅读和修改引擎的任何一行代码。因此,如果我们需要在编辑器中添加自定义的按钮或其它元素,理论上只要修改相关的源代码就好。

当然,除了这三个默认的选项,虚幻4引擎还提供了其它的一些选项,比如在Engine

Source之下有一个Editor symbols for debugging,而且要占用9.32GB的空间。那么它的作用是什么呢?简单来说,如果你的项目需要用到C++语言,那么勾选该选项后将可以在Visual Studio中为项目的C++代码创建断点,以及其它调试所需要的特性。

另外,如果我们在首次安装时没有勾选该选项也完全不用担心。在Epic

Games Launcher中点击所安装引擎的版本号,会出现一个下拉菜单,我们可以勾选Editor Symbols for Debugging,点击apply就可以安装了。当然,在安装完成后需要重启引擎。

考虑到我们part1的内容将完全使用蓝图系统,所以这里就暂时不需要勾选该选项了。

接下来继续滚动滑动条,可以看到所支持的不同平台。默认情况下系统自动勾选了IOS,Android和HTML5,如果我们确定不会在某个特定的平台开发,比如HTML5,那么可以禁用即可。

这里我们全部保持默认选择 ,点击Apply就可以开始安装了。

此时系统会回到刚才选择安装路径的界面,在该界面中点击Install开始安装。

接下来就是漫长的等待,安装的速度直接取决于网速。这里必须吐槽一下我这个破电信网络,下载速度简直是不忍直视,直接消耗了大量的生命。

顺便说明一下,虽然我这些操作是在Mac系统下进行的,但是跟Win10系统上并没有什么太大的区别。

另外需要特别说明的是,和Unity3d引擎类似,UE4引擎的更新速度也很快,所以如果你在这里看到的版本号不同,并没有太大的关系。

只要你安装的引擎版本是4.18.1及其以上的,那么至少在相当一段时间里面(3-6个月),教程里面的

各种操作不会发生太大的变化。

安装完成之后,会看到下面的界面,点击Launch就可以打开引擎了。

需要特别说明的是,正常情况下,我们都是通过Epic Games Launcher来打开引擎的。

创建新项目

接下来我们将创建自己的第一个虚幻4游戏项目。

在等待引擎打开之后,首先我们会看到以下界面。

点击Blueprint选项卡,这里提供了多个模板可供使用。不过考虑到我们要从零开始学虚幻4,因此这里选择Blank。在界面下面的部分会看到有几个其它选项设置,

这里介绍一下每个选项的意思:

1.最左侧的用来选择目标硬件平台:

如果选择Mobile/Tablet,那么就会禁用一些后期处理特效,同时还会在开发时启用鼠标作为触摸输入。这里我们将其设置为Desktop/Console。

2.中间的用来设置画质。

如果选择Scalable 3D or 2D选项,那么就会禁用一些后期处理特效。这里我们选择默认的Maximum Quality(最佳画质)。

3.是否包含默认提供的游戏资源。

为了简单起见,这里我们将其设置为No Starter Content。

在界面的最下方,我们可以选择项目存放的路径,以及项目的名称,这里将其命名为BananaTurntable。

如果需要更改存放路径,我们可以点击文件路径后的三个点。

需要说明的是,项目名称跟最后游戏的名称不是一回事,所以我们不必担心这一点。

输入完成后,点击Create Project即可。

玩转虚幻4编辑器的用户界面

一旦我们创建完项目,编辑器就会自动打开,可以大致把它分为6个部分:

1.Content Browser:

这个非常类似于Unity3d中的Project视图,里面显示了所有的项目文件。我们可以在这里创建新的文件和文件夹,并管理所有的项目文件。此外,我们也可以使用搜索栏或者过滤器来找到所需的文件。

2.Modes

从这里我们可以选择一些有用的工具,比如Landscape Tool和Foliage Tool。默认情况下这里显示的是Place Tool,我们可以使用它来将多种不同类型的游戏物体放入场景中,比如灯光、摄像机等等。

3.World Outliner

这个比较类似于Unity3d的Hierarchy视图,我们可以在这里看到当前游戏场景中的所有游戏对象。

4. Details

这个有点类似Unity3d中的Inspector面板,这里会显示我们所选择的游戏对象的属性。在这里,我们可以编辑游戏对象的一些属性设置。不过需要注意的是,对游戏对象的属性设置只会改变该对象的实例。例如我们有两个球体,当我们改变了其中一个球体的大小时,只会影响所选择的球体对象,而不会影响另外一个球体。

5.Toolbar

工具栏中提供了一系列的功能,我们最常用到的就是Play。

6.Viewport

这里用可视化的形式显示了当前的游戏场景,我们可以单击右键拖动鼠标查看场景。如果想要在查看的同时移动,那么只需要按住鼠标右键,然后使用键盘上的WASD键就好。

导入所需的游戏资源

如果没有相关的游戏资源,我们的游戏必然是苍白而又乏味的。在这里下载香蕉的模型(链接:https://pan.baidu.com/s/1eR7kVPw密码:nib3 ),其中包含了两个文件,分别是Banana_Model.fbx和Banana_Texture.jpg。当然,如果你本人会3D美术设计,那么完全可以使用自己的游戏模型。

下载完成之后,接下来我们需要将文件导入到虚幻4引擎中。在编辑器中找到Content Browser,然后点击Import。

然后找到刚才所下载的两个文件,选中相关文件,然后点击Open即可。

此时虚幻会提供FBX文件导入的相关选项,确保

这里要取消对Import Materials的勾选,因为我们将创建自己的材质。其它选项保持默认即可。

设置完成后,点击Import即可。此时可以在Content Browser中看到所导入的美术资源文件。

需要注意的是,当我们导入一个文件时,有些时候引擎并不会帮我们自动将其保存到项目中。我们可以右键点击所导入的文件,然后选择Save。

当然,更保险的方法是从菜单栏中选择File-Save All。

另外有一点要注意的是,在虚幻4引擎中,3D模型又被称为meshes。所以现在我们已经有了香蕉的mesh,那么接下来要做的事情就是将其放入到游戏场景之中。

将meshes添加到场景之中

当前关卡中的游戏场景看起来空荡荡的,接下来让我们往里面添加内容。

往关卡里面添加模型比较简单,只需要用鼠标左键选中Content Browser中的Banana_Model文件,然后把它拖曳到Viewport中就好。

放置到游戏场景之中的游戏对象可以移动、旋转和缩放,对应的键盘快捷键分别是W,E和R。当然,我们也可以直接在游戏对象上面使用鼠标进行操作。

关于材质(Materials)

如果我们仔细观察游戏场景中的香蕉,会发现这根本就不是我们日常所熟悉的黄色香蕉好吗?!难道是传说中的暗黑料理?!

什么是材质(Material)

材质定义了某个物体表面的外观。从最基本的层面来看,材质定义了以下几个方面:

(1)Base Color:

物体表面的基本色彩或材质贴图,我们可以用它来添加物体表面的外观细节,或者色彩的变化。

(2)Metallic:

代表了物体表面的“金属化”程度,或者说表面有多像金属。通常来说,纯金属有最高的Metallic数值,而纤维的Metallic值则为0。

(3)Specular:

代表了非金属物体表面的镜面反射程度。例如,陶瓷物体的表面拥有比较高的Specular数值,而粘土的Specular数值则较低。

(4)Roughness:

代表了物体表面的粗糙程度,拥有最大roughness数值的表面完全不会发亮。这个数值通常用于类似岩石或木头的物体表面。

下图显示了三种不同材质的示例。它们有相同的颜色,但是特征不同,每种材质都将其所对应的特征值调至最高,而其它的属性值则被设置为0。

创建材质

为了创建一种材质,在编辑器中切换到Content Browser,然后点击绿色的Add New按钮。此时会弹出一个菜单,其中显示了我们可以创建的游戏资源列表。点击Material即可。

将新创建的材质命名为Banana_Material,然后双击该文件,就可以在材质编辑器中将其打开。

和材质编辑器(Material Editor)的第一次亲密接触

材质编辑器大概可以分为五个大的区域,如下图所示:

1.Graph区:

这个面板中包含了材质中的所有节点,以及Result节点。我们可以点击右键,然后移动鼠标来平移该视图。此外,还可以通过鼠标滚轮来缩放该视图。

2.Details区:

此处显示了所选择的任何节点的详细属性。如果没选中任何节点,那么此处将显示材质的属性。

3.Viewport区:

此处显示了材质的预览效果。我们可以按住鼠标左键,然后移动鼠标来旋转摄像机。同时,我们也可以通过鼠标滚轮来缩放预览效果。

4.Palette区:

此处显示了材质中可用的所有节点清单。

5.工具栏

这里显示了设置材质所用的相关工具。

什么是Node(节点)?

在开始创建我们自己的材质之前,需要了解用于创建材质的对象:nodes(节点)

在虚幻4中,材质主要是由节点组成的,我们可以选择多种不同类型的节点,而这些节点也具备不同的功能。

节点可能有自己的输入和输出,输入在节点的左侧,而输出则在节点的右侧。这些输入和输出点使用带箭头的原点来表示。

下面这个图显示了如何使用Muliply和Constant3Vector节点为某个材质添加黄色。

材质有一个特殊的节点,名为Result节点,在我们这个例子中就是Banana_Material。这个节点也是所有节点的终点。我们在这个节点中所插入的东西将决定材质最终的外观。

添加Texture(材质贴图)

为了给模型添加色彩和外观细节,我们需要texture(材质贴图)。texture本质上是一个2D突破。通常情况下,我们会将材质贴图投射到3D模型的表面,从而让其具备色彩和外观细节。

为了给🍌模型添加材质贴图,我们需要用到之前所添加的Banana_Texture.jpg。在虚幻4中,我们可以使用TextureSample节点来给材质添加贴图。

在材质编辑器右侧的Palette面板中搜索TextureSample,左键单击选中它,并将其拖动到graph区。

接下来让我们选择需要用到的贴图。首先选中刚才的TextureSample节点,然后在Details面板中点击Texture右侧的下拉列表,从中选择Banana_Texture即可。

为了在材质效果预览处看到贴图的效果,我们需要把刚刚设置的贴图连接到Result节点中。左键点击TextureSample节点的

白色输出端口,从那里拖曳出一条线到Banana_Material的Base Color输入端口。

等待一会儿,就会在Viewport中看到材质的预览效果了

。按住鼠标左键不放并拖曳可以旋转预览效果,从而查看其它的细节。

点击工具栏上的Apply按钮来更新材质,然后关闭材质编辑器即可。

使用所创建的材质

接下来我们将把刚刚创建的材质应用到香蕉模型上。回到虚幻4编辑器的Content Browser区,双击Banana_Model,会打开类似下面的编辑器:

在Details面板找到Material部分,点击Element

0右侧的下拉列表,从中选择Banana_Material。

此时会看到预览区的🍌已经非常接近真实了。

关闭模型编辑器,返回虚幻4的主编辑器,并查看Viewport区。此时,你会看到场景中的香蕉已经具备一个贴图了。恭喜你,现在你已经具备了成为一个关卡设计师的所有所需的基本技能~

注意:如果你觉得环境中的光照太暗,那么可以在编辑器中的World Outliner视图中找到Light Source,在Details面板中找到Intensity属性,并将其设置为一个更高的数值即可。

在结束今天的课程之前,让我们先保存并关闭当前的关卡。

点击工具栏上的Save Current,或是从菜单栏中选择File-Save All,

然后在弹出的界面中,在Name处输入FirstMap,或是任何你喜欢的其它名称,点击Save即可。

关闭编辑器,就可以结束今天的学习了。

好了,今天的课程到此结束,先休息一会儿吧~

因本人时间精力有限,无法跟大家一对一解决相关的技术问题,请大家在QQ交流群 594353854 中互帮互助。群里已经几百人了 大家遇到啥问题都会在里面交流!而且免费分享零基础入门资料 iOS开发资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了,欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以我在群里等你们过来一起交流学习呢!

著作侵删

上一篇下一篇

猜你喜欢

热点阅读