Unreal Engine 4游戏开发入门经典

978-7-115-46760-7
作者: [美]Aram Cookson 库克森 [加]Ryan DowlingSoka 道林索卡 [加]Clinton Crumpler 克鲁普勒
译者: 刘强
编辑: 胡俊英武晓燕
分类: Unreal

图书目录:

详情

本书讲解了如何使用Unreal引擎开发更加酷炫的游戏。书中采用直观、循序渐进的方式,同时还结合大量实例讲解了各类开发技巧,由浅入深地将Unreal引擎介绍给读者。每一章都包含一定数量的练习内容,帮助读者更好地巩固所学的知识点。

图书摘要

版权信息

书名:Unreal Engine 4游戏开发入门经典

ISBN:978-7-115-46760-7

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

    [美]阿拉姆·库克森(Aram Cookson) 

     [加]瑞安·道林索卡(Ryan DowlingSoka)  

     [加]克林顿·克鲁普勒(Clinton Crumpler)

    刘 强

责任编辑 胡俊英

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


Aram Cookson, Ryan DowlingSoka, Clinton Crumpler: Sams Teach Yourself Unreal Engine 4 Game Development in 24 Hours

ISBN: 978-0672337628

Copyright © 2016 by Pearson Education, Inc.

Authorized translation from the English languages edition published by Pearson Education, Inc.

All rights reserved.

本书中文简体字版由美国Pearson公司授权人民邮电出版社出版。未经出版者书面许可,对本书任何部分不得以任何方式复制或抄袭。

版权所有,侵权必究。


虚幻引擎(Unreal Engine)是目前世界知名度高、应用广泛的游戏引擎之一,全新版本的虚幻引擎4(Unreal Engine 4,UE4)非常强大且灵活,为设计人员提供了一款高效的设计工具。

本书全面介绍了有关UE4的游戏开发技巧。全书从基本的安装和配置讲起,陆续介绍了Gameplay框架、相关的单位、静态网络Actor、光照和渲染、音频系统元素、游戏世界的搭建、蓝图系统以及一系列典型的游戏案例等。读者将从本书了解到关于UE4的各类使用技巧和开发案例。

本书内容全面,讲解细致,非常适合想要学习游戏设计与开发的读者阅读。无论是游戏开发领域的新手,还是普通的游戏爱好者,又或者是想成为游戏开发高手的读者,都能从本书获益。


Aram Cookson是萨凡纳艺术与设计学院(Savannah College of Art and Design,SCAD)交互设计与游戏开发(Interactive Design and Game Development,IDGD)专业的教授。他拥有雕塑绘画艺术学士学位和计算机艺术硕士学位,在完成了硕士学位后,协助启动了IDGD专业项目,并担任了9年研究生协调员。在过去的15年里,Aram开发并教授了一系列利用虚幻引擎技术的线下和线上游戏艺术和游戏设计课程。

Ryan DowlingSoka是加拿大温哥华市的微软工作室联盟的战争机器工作室的一名技术美工。他主要负责团队中的内容功能,在虚幻引擎4中制作破坏物体、植被、视觉效果、后期处理和用户界面。之前,他曾在微软公司工作,用Unity 5为Microsoft HoloLens开发应用。Ryan在各种娱乐软件创作方面是专家,包括Maya、Houdini、Substance Designer、Photoshop、Nuke和After Effects。Ryan拥有萨凡纳艺术与设计学院的视觉特效艺术学士学位。他对互动故事的激情源于20世纪90年代游戏机角色扮演游戏(《博德之门2》和《异域镇魂曲》)。Ryan专注于应用交互式技术来解决现代游戏中的难题。在制作视频游戏之外的业余时间,Ryan喜欢在休闲的夜晚和妻子共舞。

Clinton Crumpler 目前是加拿大温哥华市的微软工作室联盟的一位高级环境美术师,之前是Bethesda的战神工作室KIXEYE、Army Game Studio和各种其他独立工作室的一名美术师。Clinton主要关注的领域是环境美术、着色器开发和艺术指导。Clinton与Digital Tutors合作发布了许多视频教程,主要关注虚幻引擎的游戏美术制作。他在佐治亚州萨凡纳市的萨凡纳艺术与设计学院获得了交互与游戏设计硕士学位和动画艺术学士学位。在到萨凡纳艺术与设计学院前,他已经获得了位于弗吉尼亚州法姆维尔市的朗沃德大学的平面设计艺术学士学位。关于他和他的美术作品的更多信息可以在某个人网站上找到。


致我的家人:感谢你们的理解和耐心,让我有时间写完本书。

致妈妈和爸爸:感谢你们为我买了第一台电脑。

致Luis:感谢你对我的支持,你是一个超棒的部门主管。

致Laura、Sheri、Olivia及所有审稿人:谢谢你们的努力。

致Epic Games:感谢你们持续开发了这么令人惊叹的技术和游戏。

——Aram

非常感谢Samantha容忍我把周末时间完全用在写作上,在这个过程中你的耐心和支持是无价的。

——Ryan

非常感谢我的好朋友Brian帮助我成为更好的作家,并协助我编辑作品,兄弟的支持让我信心倍增。

感谢Amanda和她的家人支持我们在跨国旅行中进行写作。我一直非常感激你们的理解与帮助。

——Clinton


致Tricia、Naia和Elle:我爱你们。——Aram

致Bob爷爷:感谢您对我的教育和职业生涯的不断支持。没有您的鼓励,就不会成就今天的我,我永远感激您。——Ryan

致Amanda:感谢你在我写作本书期间,带我穿越沙漠。——Clinton


虚幻引擎4是被许多专业游戏开发者和独立游戏开发者使用的一个强大的游戏引擎。当你首次使用像虚幻引擎这样的工具时,弄清楚该从哪里开始可能是一项艰巨的任务。本书为你提供了一个起点,介绍虚幻引擎4的界面、工作流以及许多编辑器和工具。本书将帮助你建立一个强大的基础,并且激发你进一步研究虚幻引擎和游戏设计的兴趣。每个章节都是为了让你快速掌握关键部分而设计的。

如果你想学习制作游戏、应用程序或交互体验,但是不知道从哪里开始,本书正好适合你。本书适合任何对虚幻引擎基础感兴趣的人。无论你在游戏开发领域是一个新手,或是一个爱好者,还是一个想要成为专家的人,都可以在这些章节中找到有用的内容。

根据Sams的自学方法,本书共24章,学习每章大约需要1小时。

我们希望你喜欢本书并从中获益。祝你在使用虚幻引擎的路上一路顺风!

项目文件:若想要获得项目文件,请到异步社区网站与本书对应的页面下载。


你在这一章内能学到如下内容。

欢迎使用虚幻引擎(Unreal Engine)!虚幻引擎4(Unreal Engine 4,UE4)是由Epic Games开发的一个游戏引擎和编辑器,可以用来制作游戏和应用,涉及顶级的AAA级大作乃至独立移动游戏开发。虚幻引擎运行在Windows和Mac操作系统下,可以发布到Windows、Mac、PlayStation 4、Xbox One、iOS、Android、HTML和Linux环境下。简单地说,虚幻引擎是一个可以用于开发任何游戏或应用程序产品的编辑器集合体。

在这一章内,你将学习下载和安装虚幻引擎,新建自己的第一个项目,并且开始熟悉编辑器界面。你将从注册一个账号、下载和安装Epic Games Launcher开始。从那里,你可以下载UE4。一旦这些步骤完成后,你将新建第一个项目,学习浏览编辑器界面,在关卡中移动,试玩默认地图。

 注意:虚幻引擎是免费的!  

没错,虚幻引擎4完全免费使用!你可以免费访问所有东西!为什么Epic Games允许它免费呢?因为你永远不知道下一个伟大的游戏或应用程序是从哪里冒出来的,所以直到你发布了游戏,开始赚钱了,才需要给Epic支付5%的版税。当然,这些授权的细节是可以在Epic的官网上找到的。Epic还有一个资源商城可以让你为自己的项目购买和下载内容。尽管你有能力从零开始,但是不必“重新发明轮子”,这样可以加速项目的产品化。

安装虚幻引擎可以分为简单的3步。

1.注册一个账号。

2.下载和安装Epic Games Launcher。

3.下载虚幻引擎。

 注意:操作系统和硬件要求  

为了有效地使用虚幻引擎,你需要拥有一个满足下列条件的Windows或Mac电脑。

启动器(Launcher)可以帮助你追踪已经安装的不同版本的虚幻引擎。通过它,你可以管理项目,访问免费案例项目,进入资源商城,并可以在资源商城购买用于项目的内容;它还可以为你更新社区新闻和在线学习资源及文档的链接。

根据下列步骤下载和安装Epic Games Launcher。

1.进入Unreal Engine官网,如图1.1所示。

图1.1 Unreal Engine官网

2.单击“获得虚幻引擎”按钮。

3.根据提示,注册一个账号。

4.根据你的操作系统选择Windows或Mac下载,下载安装文件到自己的下载文件夹(Windows是.msi,Mac是.dmg)。

5.运行安装文件,选择一个安装位置,根据提示操作。

  提示:硬盘空间

游戏引擎会占用大量硬盘空间。当下载一个新版UE4时,它会被自动安装到和Launcher相同的位置。选择Launcher的安装位置要保证至少还剩余20GB的存储空间。当然第一次安装并不需要这么大的空间,随着下载案例内容或从资源商城购买的内容不断增加,空间的需求就会不断增加。幸运的是,你可以创建自己的项目,放到想放的位置去。

一旦Launcher安装完成,你就可以通过Launcher下载和安装UE4。UE4比Launcher大多了,需要花点时间下载。因为Epic一直在改进这个软件,所以你会发现有很多个UE4版本。当你开始学习时,最好是下载最新版。

 警告:预览版

Epic经常发布最新版本的预览版进行bug测试。如果你是刚开始接触UE4,最好下载最近的正式版本,而不是预览版。一旦发布了正式版,就可以将你的项目升级到最新版。

下面的步骤带你通过Epic Games Launcher下载和安装UE4。

1.打开Launcher,单击“工作”,如图1.2所示。

图1.2 Launcher 工作标签页

2.进入引擎版本部分,单击“添加版本”添加一个新的版本槽。

3.到刚刚新建的版本槽,单击下拉箭头,选择想要的版本。

4.单击“安装”,Launcher开始下载和安装UE4。UE4非常大,需要一些时间进行下载。

一旦UE4下载完成,就可以开始创建你的第一个项目了。当你第一次启动UE4时,它会打开项目浏览器。项目浏览器有一个项目标签页,为你展示所有正在做的项目和一个新建项目标签页,用于根据已有的通用游戏模式模板创建新项目。

进入第2章,读者可以进一步了解项目原型更深入的信息。

当你从项目浏览器开始一个项目时,必须设置一些选项。首先你可以创建一个基于蓝图的项目或一个基于C++的项目。本书内容仅仅关注基于蓝图的项目。你还需要选择目标硬件:桌面、游戏机或移动设备、平板电脑。同时你还可以为目标图像选择最高质量或者可缩放的3D或2D类型。这些选项更改了项目的默认设置。最终,你需要决定是否需要带有面向初学者的内容。如果你选择了面向初学者的内容,你就有了一些可以使用的初始资源。

 注意:蓝图和C++项目 

蓝图是为游戏项目添加脚本功能的可视化编程环境。基于C++的项目让用户可以通过传统的方式编写功能代码。基于C++的项目需要你安装一个编译器,例如Visual Studio 2015。如果你从来都没有做过编程工作或者从来都没有用过UE4,最好是在制作基于C++的项目前熟悉一下编辑器和工作流。

 警告:项目大小

当首次创建项目时,项目不会特别大,但是项目文件大小是根据内容数量和质量(如模型细节和贴图分辨率)逐渐增大的。UE4会在你工作的时候生成自动保存文件和备份文件,这些文件也占据了存储空间,当出错时它们可以用于解决错误。

▼自我尝试

 

新建一个项目

你可以在具有足够硬盘空间的任何位置新建项目,而找到一个至少具有2GB剩余空间的位置很容易。图1.3展示了你的第一个项目需做的基本设置,根据下列步骤进行设置。

在Launcher中,单击“启动”。

1.选择“新建项目”标签页。

2.选择“蓝图”标签页。

3.选择“FirstPerson”模板。

4.选择目标硬件为“桌面/游戏机”。

5.选择目标图形质量为“可缩放的3D或2D”类型。

6.选择“具有初学者”内容。

7.找到一个至少还有2GB剩余空间的位置。

8.为项目命名。

9.单击“创建项目”。

图1.3 用于创建你的第一个项目的设置

 注意:修改项目设置 

在创建项目后,可以修改项目设置,例如目标硬件和目标图像。项目设置完成后,这些内容可以在主菜单的编辑菜单下找到。

现在你已经安装了UE4,并且创建了自己的第一个项目,是时候开始学习了。正如之前提到的,UE4是一个可以用于游戏制作的不同种类的编辑器的集合。现在开始了解主界面的关键区域和如何在关卡中移动。主界面指的是关卡编辑器,主要用于游戏世界和关卡搭建以及资源放置。

编辑器主界面包含你需要熟悉的7个关键面板:菜单栏、模式面板、世界大纲面板、细节面板、内容浏览器面板、关卡编辑器工具栏和视口面板,如图1.4所示。接下来将展示每个面板并对它们进行说明。

图1.4 UE4编辑器默认主界面

 注意:界面布局 

编辑器界面布局是可修改的。你可以重新安排面板和窗口的位置改进工作流。在本书中,为了方便,所有界面元素都保留在它们的默认位置,但是当你成为一个熟练的用户后,你可能更想重排它们的位置以便高效地工作。

菜单栏和许多其他软件一样,由文件、编辑、窗口和帮助菜单组成。文件菜单包含加载和保存项目及关卡的操作。编辑菜单包括标准的复制粘贴操作,以及编辑器设置和项目设置。窗口菜单用于打开视口和其他面板。如果关闭了一个窗口或面板,可以到窗口菜单中再次打开。帮助菜单包含外部资源的链接,如在线文档和教程。

模式面板显示关卡编辑器的各种编辑模式,如图1.5所示。通过它可以使用某些Actor和几何体类型的编辑界面。

  提示:什么是Actor

学习任何软件的关键是学习它的界面、工作流和术语。虚幻引擎中有大量术语需要学习,你将在本书中看到它们。术语Actor指的是任何被放进关卡的资源。例如,在内容浏览器面板中的一个3D模型是一个Static Mesh(静态网格体)资源。但是一旦这个Static Mesh资源的一个实例被放入一个关卡中,这个实例指的将是一个Static Mesh Actor。

图1.5 模式面板

模式面板由用于关卡编辑器的不同工具模式组成,用于改变编辑器的主要功能。在这里,你可以进行一些特定的操作,如放置新资源到虚拟世界、雕刻地景、创建几何体画刷和Volume、生成植被或在模型网格上绘制。表1.1列出了编辑器模式及相关效果。

表1.1  编辑模式

操  作

效  果

放置模式

用于在场景中放置Actor

绘制模式

用于在Static Mesh Actor上绘制顶点颜色数据

地景模式

用于编辑地景地形Actor

植被模式

用于在关卡中绘制实例化植被Actor

几何体编辑模式

用于在点线面级别编辑Geometry画刷Actor

世界大纲面板以树状视图显示所有放置在当前关卡中的Actor,如图1.6所示。你可以通过在世界大纲面板中单击Actor的名称来选中它,它的属性就会显示在细节面板中。如果你双击一个Actor的名称,视口将聚焦到这个资源上。

图1.6 世界大纲面板

 注意:选择Actor  

选中一个Actor,在视口中或在世界大纲面板中单击该Actor,这个Actor将高亮显示,它的基本属性会出现在细节面板中。可以同时一次选中多个Actor。

细节面板是你在UE4中经常使用的区域之一。几乎每个子编辑器都有一个细节面板。细节面板显示视口中选中的Actor的所有可编辑属性。属性出现的内容取决于所选中的Actor的类型,但是对于大多数Actor都可以找到一些通用属性,如图1.7所示。典型的属性包括Actor的名称,用于平移、旋转和缩放Actor的变换编辑框,以及渲染显示属性。

图1.7 主编辑器细节面板

内容浏览器面板是用于在项目中管理资源的主要区域,如图1.8所示。你可以使用这个浏览器进行与内容相关的常规任务,如创建、查看、修改、导入和组织资源。内容浏览器还可以管理文件夹和在资源上执行基本操作,如查看引用、移动、复制和重命名。内容浏览器面板还有一个搜索栏和筛选标签可以快速定位资源。

我们可以将内容浏览器面板看作一个资源的无限玩具箱。当需要资源的时候,你都可以从玩具箱拉出资源的一个实例(副本),放到一个关卡中。一旦一个实例被放入关卡中,它便指的是一个Actor。一个放置了Actor的初始实例是内容浏览器面板中的原始资源的一个准确的副本。一旦你放置了一个Actor,就可以单独在细节面板中修改它。在内容浏览器左侧是源面板,显示了内容文件夹层次。源面板可以通过单击左侧添加新项按钮下方的图标来展开或合并。在内容浏览器的右侧是资源管理区域,在源面板中显示所选文件夹中的资源。

图1.8 内容浏览器面板,左侧是源视图,右侧是资源管理区域

  提示:文件夹组织

项目复杂性会快速增加,所以文件组织是维持一个有效的工作环境的关键。好的方法是通过类型在不同的文件夹中组织资源内容,你可以通过文件夹嵌套获得更好的组织性和灵活性。

视口是创建虚拟世界的窗口。你可以使用视口面板在当前关卡中移动。视口面板有许多不同的模式、布局和设置,所有这些都可以帮助你创建、编辑和管理关卡,如图1.9所示。

图1.9 视口面板

视口面板布局

默认情况下,视口面板显示一个单面板的透视视图,但是你可以通过单击视口的下拉菜单,选择布局,选择需要的格式,将其改变为双面板、三面板或四面板布局,如图1.10所示。你可以在视口面板中把每个面板改变为不同的视图模式。

视口类型

存在两个基本视口类型:透视和正交,如图1.11所示。透视视口以消失点的形式显示3D世界,正交视口以2D纲要视图形式显示世界。透视视图将是你的主要工作环境,但是正交视图可以完美地在场景中调整Actor。

图1.10 视口面板布局选项

图1.11 视口视图类型设置

视图模式如图 1.12所示,它可以根据视图类型改变视口中虚拟世界的外观效果,它们可以提供关卡状态的重要反馈信息。表1.2列出了常见的视图模式。

图1.12 视图模式

表1.2  常见的视图模式

模  式

效  果

带光照

显示应用了材质和光照的场景的最终结果

不带光照

从场景中移除所有光照,显示来自材质的基础颜色

线框

显示场景中Actor的所有多边形的边

细节光照

在整个场景中显示中性材质,使用法线贴图

仅光照

显示无法线信息且仅被光照影响的中性材质

 注意:可视化  

有超过13种不同的视图模式以及其他可视化工具可以使用,你可以使用它们获得关卡的反馈信息和调试排错。

就像视图模式一样,显示标签打开后会直接在关卡视口中显示相关信息,例如显示Actor的碰撞壳或边界框。

现在已经对主界面的每个关键区域有了基本理解,你需要熟练使用视口在关卡中移动。表1.3和表1.4列出了与视口在关卡中移动相关的控制。

表1.3  视口移动控制

控  制

操  作

透视视口

单击+拖曳

前后移动和左右旋转视口摄像机

右键单击+拖曳

无前后移动,旋转视口摄像机

单击+右键单击+拖曳

上下移动视口摄像机

正交视图(顶、前、侧)

单击+拖曳

创建一个选取框

右键单击+拖曳

左右平移正交视图

单击+右键单击+拖曳

放大和缩小正交视图

 注意:视口导航 

不像在3D建模软件中,总是聚焦和围绕着单个资源旋转,Unreal Engine视口移动控制适用于庞大的游戏关卡,因此能够在很大的区域内快速移动是关键。

表1.4  环绕、缩放和追踪视口控制

控  制

操  作

F

按F键将视口摄像机聚焦到视口中选中的Actor上

Alt+左键+拖曳

围绕单个轴心点或感兴趣的点翻滚视口

Alt+右键单击+拖曳

向单个轴心点或感兴趣的缩放摄像机视图

Alt+中键+拖曳

在光标移动的方向,上下左右移动摄像机

  提示:游戏风格导航

当你在透视视口中时,按下鼠标右键后可以使用W、A、S、D键在关卡中移动,就像在典型的第一人称射击游戏中一样。

关卡编辑器工具栏提供了快速访问常用工具和操作的方法,例如保存当前关卡,为静态Actor构建与计算光照,改变编辑器显示属性,测试当前关卡。图1.13显示了关卡编辑器工具栏。

图1.13 关卡编辑器工具栏

当在创建一个新项目时,已经为你准备好了一个默认关卡,它也是在编辑器中打开项目时看到的第一个东西。试玩关卡时,玩家使用输入系统在游戏中交互。试玩关卡有一些不同的模式,如图1.14所示。现在,可以试一下在关卡编辑器中播放(PIE)模式:选中的视口和新建编辑器窗口。你可以单击播放图标或图标右侧的下拉箭头试玩关卡,选择其中一个播放模式。

图1.14 试玩模式

  提示:试玩关卡

你使用的最后一个试玩模式将自动成为关卡编辑器工具栏上的默认试玩模式。如果你想要使用一个与默认模式不同的模式,单击“播放”下拉菜单,选择另一个试玩模式。

在这一章中,你下载并安装了UE4,熟悉了主界面的关键区域,创建了自己的第一个项目,学习了如何在一个视口中在关卡中移动和试玩关卡。你越熟悉这些任务,你的学习情况将会越好。

问:Epic Games Launcher的作用是什么?

答:Epic Games Launcher让你可以管理项目,访问资源商城购买内容,保持UE4为最新版本。

问:UE4被安装到了哪里?

答:UE4被安装到与Launcher相同的位置。

问:我应该将项目保存到哪里?

答:你应该将项目保持到有足够剩余空间而且容易找到的一个硬盘位置。

现在,我们完成了这一章的学习,检查一下你是否能回答下列问题。

1.真或假:模式面板让你可以在不同编辑模式之间切换。

2.如果你想要将视口聚焦到一个选中的Actor上,你应该使用哪个按键或按键组合?

3.真或假:任何被放入关卡中的资源被看作是一个Actor。

4.你使用    进行管理项目和创建新项目。

5.真或假:主界面布局是完全可修改的。

6.真或假:PIE是Play in Editor的缩写。

1.真。模式面板让你可以在放置Actor、创建地形和创建植被之间切换。

2.F键被用于聚焦视口到当前选中的Actor上。

3.真。无论是什么类型,一旦一个资源被放入了关卡中,它就是源资源的一个实例,被看作是一个Actor。

4.项目浏览器。你可以同一时间在许多项目中工作。项目浏览器让你可以在项目之间切换。

5.真。如果你单击并拖曳一个面板的标题栏,就可以移动这个面板到界面中的不同位置。

6.真。PIE是Play in Editor的缩写。你可以在一个独立的窗口或选中的窗口中预览关卡。

你需要独立完成,花点时间熟悉UE4的界面。练习创建一个新关卡,在这个关卡中放置Actor,然后保存这个关卡。这些非常简单,但是属于基本技能,你对这些基础越适应,当你进一步使用虚幻引擎工作时就越成功。

1.通过单击“文件>新建关卡”或按Ctrl+N组合键来新建一个默认关卡。

2.为了放置一个点光源Actor,在模式面板中进入放置标签页。

3.在关卡中放置一个静态网格物体。你可以在内容浏览器的StarterContent文件夹中找到这类资源。

4.为了保存你的关卡,在内容浏览器中右键单击Content文件夹,选择新建文件夹,并命名刚刚新建的文件夹为Maps。

5.通过选择“文件>保存”在刚刚新建的Maps文件夹中保存你的关卡。


你在这一章内能学到如下内容。

UE4是一个深度而且丰富的应用程序,它可以用于制作从2D独立游戏到AAA大作乃至交互应用程序、建筑可视化和VR体验的任何内容。UE4可以为PC、游戏机、移动设备以及基于网络的HTML等平台制作内容。UE4编辑器背后有许多复杂的开发过程并将这些过程包装进一个易用的开发环境中。和其他应用程序一样,UE4存在一个学习曲线。这一章将为你介绍一些术语,对一个具体的项目进行剖析,并介绍UE4的基本Gameplay框架。

Epic Games做的最伟大的事情之一就是发布了UE4,它的编辑器提供了高质量的在线文档和项目案例。在Epic Games Launcher中有一个社区部分提供了新闻、亮点的项目以及论坛、博客和引擎开发路线图的链接。学习部分还提供了在线文档、视频教程和说明各种功能的案例项目的链接。对于项目部分有一些分类,如引擎亮点功能示范、常见Gameplay概念、完整游戏项目案例和由Unreal社区及Epic合作伙伴贡献的案例项目。一旦熟悉了UE4的界面和工作流程,学习的最佳方法之一就是解构已有的项目。

▼自我尝试

 

下载内容示例项目

为了能快速了解UE4强大的功能,开始进入Epic Games Launcher的学习部分。在引擎功能示范分类中找到内容示例项目,使用案例内容下载并设置一个项目。

1.在Epic Games Launcher中,进入学习标签页。

2.在引擎功能示例中找到内容示例项目,单击打开它。

3.在“下载”按钮旁边,确认版本号是否对应你安装的引擎版本号,确认后单击“下载”,开始下载这个大约2GB的项目。一旦内容示例项目被安装了,它会被显示在Launcher中的工作标签页的保管库中。

4.在Launcher中,到工作标签页找到保管库。然后单击ContentExamples下的创建工程。

5.给这个项目命名或保持默认。

6.选择你的硬盘上的一个位置或保持默认位置。

7.验证/选择与你下载的引擎版本匹配的版本。

8.单击“创建”。经过几秒,Launcher就创建了一个包含这个功能内容示例的新项目。

9.在编辑器中打开这个项目。在我的项目下方,双击刚刚创建的项目。

10.一旦这个项目在编辑器中加载完成,选择文件>打开关卡。

11.选择任何要打开的关卡,然后双击它,或选中它并单击打开。

12.一旦打开了这个关卡,通过单击主编辑器工具栏上的播放按钮即可预览这个关卡。

13.继续打开和预览更多你想看的关卡,并与这个项目所演示的所有功能进行交互。

在编辑器中播放(Play in Editor,PIE)指的是一系列不用编译或打包内容就可以试玩关卡的选项。PIE预览选项可以在关卡编辑器的主工具栏的播放按钮下找到,如图2.1所示。如果你单击了关卡编辑器工具栏中播放按钮右侧的下拉三角,就可以看到许多用来预览关卡的选项。默认情况下,UE4使用选中的视口选项,当你测试功能时就很方便在有些时候,可能需要在目标平台的分辨率或屏幕纵横比下预览关卡。

选择新建编辑器窗口选项改变预览播放图标,在一个新的窗口中加载关卡的预览。在预览选项的底部是高级设置,你可以通过它打开编辑器偏好设置。然后在屏幕的右侧Play in New Window下方的下拉列表设置窗口的分辨率,还可以设置窗口的位置,默认情况下被设置为(0,0),表示显示器的左上角。如果你想让新的编辑器预览窗口被显示在显示器的中心位置,可以启用总把窗口放置于屏幕的中心选项框。

图2.1 在编辑器偏好设置中的Play in Editor(PIE)选项

 提示:为你的项目创建一个原始资源文件夹

当你在一个大团队大项目上工作时,需要使用一些项目管理软件来保持组织性。当你第一次着手做的时候,在项目的根目录添加一个文件夹来保持追踪原始文件,可以保证很长时间内在编辑器外的外部内容的组织性。

下面是在导入内容到项目前,常见外部资源具有组织性的案例目录结构。

 

 

如果你是第一次通过Epic Games Launcher从零开始创建一个基于蓝图的项目,需要为这个项目指定一个存储位置并命名。然后编辑器会复制一系列默认文件夹和文件到你的项目文件夹中。在复制完成后,查看项目文件夹,你会找到Config、Content、Intermediate和Saved文件夹,以及一个.uproject文件。

随着你在一个项目上的工作不断地进行,更多文件和文件夹会加入进来。

▼自我尝试

 

创建一个不带初学者内容的空项目

为了熟悉一个典型的项目目录结构,自己可以尝试创建一个不带初学者内容的空项目。

1.在Launcher中的工作标签下,打开第1章中安装的引擎,单击版本号下面的启动按钮。

2.在Unreal项目浏览器中,选择新建项目标签页。

3.在蓝图下面,选择空白模板。

4.确保选中桌面/游戏机选项。

5.确保图像级别被设置为你的硬件所支持的质量级别。

6.确保没有初学者内容被选中。

7.为这个项目选择一个存储位置。

8.为这个项目命名为MyHour02。当命名一个项目时,不要在名称中使用空格。

9.单击创建项目。一旦这个项目完成创建,它会自动打开。

10.保存到硬盘并最小化这个项目。

如果你查看了所有的文件夹,就会看到一些文件已经被创建了,例如配置文件。任何后缀名为.ini的文件都是配置文件——一个存储编辑器、引擎和游戏偏好设置的文本文件。无论何时你在编辑器中对项目或编辑器的偏好设置作出了修改,这些文件都会被修改和更新。

 注意:编辑器偏好设置和项目设置

你可以在关卡编辑器菜单栏的编辑菜单中找到编辑器设置和项目设置。

Content文件夹

Content文件夹是编辑器存储所有导入的资源以及为项目合并内容的地方,如图2.2所示。在这个文件夹中,你可以找到两种文件类型:.uasset和.umap。一旦你导入了一个外部资源,它将会被保存为一个.uasset文件,并存储在项目中的Content文件夹下。每次创建一个地图并保存时,UE4会创建一个.umap文件,并存储在Content文件夹中。当你在编辑器中使用内容浏览器时,可以看到Content文件夹的目录结构。

图2.2 左侧是项目的Content文件夹,右侧是内容浏览器的源面板

导入内容

UE4为了导入内容,支持各种文件类型。表2.1展示了其中一些常见文件类型及它们关联的是哪种资源类型。

表2.1 可以被导入编辑器的常见外部文件类型

资 源 类 型

文件扩展名

3D模型、带绑定的骨架网格物体、动画数据

.fbx,.obj

纹理和图像

.bmp,.jpeg,.pcx,.png,.psd,.tga,.hdr

字体

.otf,.ttf

音频

.wav

视频和多媒体

.wmv

PhysX

.apb,.apx

其他

.csv

 提示:识别文件类型

操作系统默认情况下会隐藏文件扩展名。当你在一个包含大量内容的项目中工作时,很难明确哪个文件是什么类型的。在操作系统上,开启显示文件扩展名的选项可以帮助你快速识别要查找的文件类型。

存在几种将内容带入引擎的方法。例如,你可以导入在一个外部编辑器中制作的内容,例如3ds Max或Maya中制作的模型、Photoshop中制作的贴图、Audacity中制作的音频。

有两种方法可以将外部应用程序中制作的新内容导入。一种方法是就像下面的TRY IT YOURSELF中介绍的使用内容浏览器。另一种方法是到你的操作系统的文件管理器中,选中想要导入的文件,拖曳到内容浏览器的资源管理区域,如图2.3所示。

图2.3 左侧是内容浏览器的源面板,右侧是资源管理区域

▼自我尝试

 

在内容浏览器中创建一个文件夹并导入外部资源

导入资源是最频繁使用的操作之一。在这个自我尝试中,你将学会导入一个资源到一个项目中的常见方法。

1.打开你在前面自我尝试中创建的MyHour02项目。

2.单击绿色的“添加新项”按钮下方的显示或隐藏源码面板图标,在内容浏览器中显示源面板。

3.在内容浏览器的源面板中,右键单击Content文件夹,选择新建文件夹,命名新建的文件夹为MyAssets。

4.在内容浏览器的源面板中选中MyAssets文件夹,在资源管理区域右键单击,选择“导入资源>导入到”,之后资源对话框弹出。

5.在资源对话框中,找到本书官网,下载Hour_02文件夹,在其中的Raw Assets文件夹中选择其中一个文件,然后单击打开。这个文件将被添加到Content文件夹中。

6.右键单击这个资源的缩略图,单击“保存”,将这个刚刚导入的资源保存好。

 

 提示:资源图标

在内容浏览器中的资源图标让你可以预览大部分资源,所以就不需要打开它们了。如果你将光标悬停到一个图标上,可以看到关于这个资源的一些信息。例如,在一个资源的图标的左下角的一个小星号告诉你这个资源有没有被保存。当第一次导入一个资源或以一些方式修改资源时,这个星号都会出现。让你知道有需要保存的更改,如果你管理了编辑器而没有保存导入的或修改过的资源,你将丢失那个资源或者所作的修改。按Ctrl+S组合键保存所有资源,或右键单击一个资源选择保存。

从一个已有的项目合并内容

另一种添加内容到项目中的方法是从一个已有的项目合并。每个项目都有它自己的Content文件夹,存储这个项目的所有资源。合并让你可以从一个项目向另外一个项目移动资源。当合并资源时,你还需要移动,同时保持文件夹结构。

▼自我尝试

 

合并内容

根据下列步骤从一个项目向另外一个项目合并内容。

1.打开你在这一章开头使用的Content Examples项目。

2.在内容浏览器的源面板中,选择“Content”(在目录的顶部)。

3.在资源管理区域的搜索栏左侧,单击过滤器,勾选粒子系统。你现在可以在资源管理区域看到这个项目中的所有粒子系统。

4.Ctrl+单击选择你想要合并到项目中的一些粒子系统。

5.在你选中3个或4个粒子系统后,右键单击其中一个高亮的粒子系统,选择“资源操作>合并”,如图2.4所示。

图2.4 内容浏览器合并操作

6.在资源报告窗口中,不仅显示了这些粒子系统,还包含了它们的依赖,请单击“确定”。

7.为了找到你想要复制资源进去的项目的Content文件夹,在浏览文件夹窗口中,找到MyHour02项目的Content文件夹,并选中这个文件夹,单击“确定”。

 注意:内容浏览器筛选器

在项目中的内容越多,你就越难找到自己想要找的东西,这就是文件夹组织和命名规则很重要的原因。在内容浏览器的资源视图顶部有一个搜索栏和筛选器工具,这些工具都与源面板中选中的文件夹关联——也就是说,只会显示当前选中的文件夹及其子文件夹中的内容。例如你在顶部选中Content文件夹,搜索栏和筛选器工具将应用到Content文件夹及其所有子文件夹上。

其他资源类型

许多资源并不是被导入的,而是直接在编辑器中创建的(例如蓝图类、粒子系统和摄像机动画数据)。通过接下来22章的学习,你将学会如何添加和创建这些资源类型。

你可能想要手动移动.uasset文件或者从一个项目向另外一个项目复制。尽管这样的操作在技术上可行,但是由于依赖性问题,不推荐这样做。你应该在内容浏览器中更改位置和文件夹结构,这样编辑器会自动更新依赖。

引用查看器可以显示一个资源的依赖,如图2.5所示。例如,如果在静态网格物体编辑器中给一个静态网格物体分配了材质,这个静态网格物体就需要知道这个材质在内容浏览器中的位置。反过来,这个材质需要知道它依赖的贴图所在的位置。如果在内容浏览器中将这个材质移动到一个新文件夹中,编辑器会自动更新静态网格物体的资源引用。为了查看一个资源的资源引用,在内容浏览器中右键单击它,选择“引用>引用查看器”。

图2.5 引用查看器,显示M_Chair材质资源的依赖

Saved文件夹包含了4个子文件夹:AutoSaves、Backup、Config和Logs。编辑器使用AutoSaves和Backup文件夹为你打开或修改的任何东西创建备份文件和临时工作文件。如果编辑器崩溃了,你可以使用这些文件转危为安。但是它们还会随着你的工作增加项目的大小,所以可能需要定期清空这些文件夹来减小项目大小。Config文件夹包含用于存储项目设置的.ini文件。

Gameplay框架是一个C++或蓝图类集,它们管理着每个项目中游戏的规则、用户的输入和化身、摄像机、以及玩家的HUD。

 注意:不仅仅是游戏

不要让术语愚弄了你。UE4最初是用来做游戏的,就有了许多与游戏相关的术语,后来也被用来制作许多不同类型的应用程序。例如,一个3D美工可以制作一个在专辑网站上显示3D模型的模型查看器。

在Gameplay框架中,GameMode类用于设置游戏的规则和存储所有其他用来定义游戏核心功能的类。例如,GameMode是一个用来编写第一人称射击游戏的重生系统或赛车游戏计时器的好东西。下面是在Gameplay框架中被分配到GameMode的一些类。

在一个GameMode及其依赖被创建后,你可以将这个GameMode分配给这个项目或项目中的每个独立关卡。许多项目包含两个或3个GameMode,但是当然只有1个可以被分配为默认GameMode。你可以在项目设置的“地图&模式>Default Modes”下设置默认GameMode。一旦某个GameMode被设置为默认的,它将会是游戏中每个关卡使用的GameMode,除非这个关卡在编辑器的“世界设置”中的Game Mode Override属性中覆盖了默认的GameMode。

一个Controller类在游戏中控制一个pawn。PlayerController类利用玩家的输入来命令玩家的Pawn。有两种基本Controller类型:PlayerController和AIController。PlayerController管理玩家的输入,通过占有游戏中的pawn来控制这个pawn。玩家输入可以是从键盘和鼠标或游戏控制器到触摸屏,又或是一个Xbox Kinect等任何东西。PlayerController类也是开启光标,显示和设置游戏如何响应鼠标单击时间的地方。游戏中的每个人类玩家可以被分配一个PlayerController类。例如,每当一个玩家加入一个多人游戏,一个PlayerController类的实例会被创建在GameMode类中,成为游戏会话的其他部分,并被分配给这个玩家。PlayerController在游戏世界中没有可见的物体表示。

在虚幻引擎中,术语Pawn指的是玩家的化身。Pawn类接收来自PlayerController类的输入,然后使用这些输入来命令玩家在游戏世界中的物理代表。它有时像在关卡中表现玩家的位置一样基础,有时又像使用一个带有碰撞壳的动画骨架网格物体在游戏世界中移动一样复杂。有几个类可以分配在GameMode的DefaultPawn属性上,例如Pawn类、Character类和Vehicle类。Pawn类是用于创建各种Pawn类型的通用类,而Character类和Vehicle类可以用于处理特殊情况,但也是大多数游戏中能发现的常见类。因为Pawn采用来自Controller类的指令,所以Pawn可以被PlayerController或AIController控制。

HUD类用来绘制2D界面内容到玩家屏幕上并创建游戏内平视显示(Head Up Display,HUD),一个游戏的整个HUD系统可以编写在HUD类中。Epic也提供了一个被称为Unreal Motion Graphics(UMG)的编辑器,它是一个用来制作复杂界面和HUD的工具集和类集(详见“第22章”)。

Epic为常见游戏类型提供了一些已经有GameMode的项目模板。一般来说,每次你创建一个新项目都可以选择一个GameMode模板。

▼自我尝试

 

添加一个GameMode到项目

在这一章开始的时候,你创建了一个空白项目,现在练习将GameMode作为一个额外功能包添加到该项目。根据下列步骤添加一个GameMode到空白的MyHour02项目。

1.打开你在之前的自我尝试中创建的MyHour02项目。

2.在内容浏览器中,单击源面板上方的“添加新项”按钮。

3.在顶部弹出的窗口中,选择添加功能或内容包。这将打开“添加内容到该项目”窗口,如图2.6所示。

图2.6 添加内容到该项目窗口

4.在蓝图功能标签页中,选择“Side Scroller”,单击绿色的“+”按钮,将它添加到你的项目中。

5.在内容包标签页中,选择“StarterContent”,单击绿色的“+”按钮,将它添加到你的项目中。

6.关闭“添加内容到该项目”窗口。

在内容浏览器中,你将看到一些新文件夹被添加到项目中。进入SideScrollerBP/Maps文件夹,双击“SideScrollerExampleMap”关卡,打开它。通过单击关卡编辑器工具栏中的播放按钮预览这个关卡。然而,如果你打开任何随Stater Content添加进来的关卡,它们将使用不同的Game Mode。进入StarterContent/Maps文件夹,打开“Minimal_Default”关卡并预览它,你可以看到Side Scroller Game mode并没有起作用,此时你需要修改这个项目的默认GameMode。

▼自我尝试

 

给项目设置默认GameMode

根据下列步骤为你的项目设置默认GameMode。

1.打开你在之前的自我尝试中创建的MyHour02项目。

2.在内容浏览器中,单击源面板上方的“添加新项”按钮。

3.在关卡编辑器菜单栏选择“编辑>项目设置”。

4.在项目设置窗口的左侧Project下方,选择“地图&模式”,如图2.7所示。

图2.7 项目设置

5.在右侧,从Default GameMode下拉列表中选择“SideScrollerGameMode”。

6.关闭项目设置窗口,并且再次预览Minimal_Default关卡。

你也可以使用编辑器中的“世界设置”标签页中的GameMode Override属性,并选择任何添加到这个项目中的GameMode给个别关卡分配单独的GameMode。

在这一章内,你学习了导入资源,从一个项目到另外一个项目合并内容,以及添加各种功能给一个已有的项目。你还接触到了一些和GameMode相关的概念,并学习了如何为一个项目设置默认GameMode。

问:我是否需要为自己创建的每个关卡分配一个GameMode?

答:不需要。你仅仅需要给项目中的其他需要不同GameMode的关卡分配GameMode。当一个GameMode在项目设置中被设置时,游戏中的所有关卡都将使用那个GameMode。

问:当我合并内容时,编辑器问我是否想要覆盖已有的内容。

答:当你合并内容时,一些资源和其他资源具有相同的依赖,如果它们在不同时间被合并时,编辑器会警告你一些原来的资源将被覆盖,这会破坏第一次合并的资源的依赖。你必须在合并完资源后手动修复这些依赖。

问:什么是.ini文件?

答:一个.ini文件是用来为编辑器和项目存储偏好选项和设置的简单文本文件。.ini文件可以被文本编辑器打开和编辑,但是这是没必要的,因为它们是通过UE4编辑器被管理的。

现在你完成了这一章,检查一下你是否能回答下列问题。

1.真或假:从一个项目向另一个项目移动内容的最佳办法是复制.uasset文件。

2.真或假:当一个资源被导入或修改后,你不需要在内容浏览器中保存它。

3.真或假:引用查看器让你可以看到一个资源对其他资源的依赖。

1.假。从一个项目向另一个项目移动内容的正确方法是合并它。

2.假。当你第一次导入一个资源或修改一个已有的资源时,你需要保存它。

3.真。引用查看器让你可以可视化查看一个资源的依赖。

创建一个空白项目并且导入外部资源。添加两个GameMode模板和Mobile Starter Content,其中一个作为默认GameMode,另一个分配给一个关卡。

1.创建一个空白项目。

2.从内容浏览器中添加Third Person Game Mode。

3.从内容浏览器中添加Flying Game Mode。

4.从内容浏览器中添加Mobile Starter Content。

5.在内容浏览器中,创建一个名为MyContent的文件夹,导入来自本书的Hour_02文件夹中的外部内容。

6.分配Third Person Game Mode作为这个项目的默认GameMode。

7.创建一个新关卡,并且在编辑器的“世界设置”标签的关卡属性中设置GameMode Override为FlyingGameMode。


相关图书

Unreal Engine 4 游戏开发指南
Unreal Engine 4 游戏开发指南
Unreal Engine 虚拟现实开发
Unreal Engine 虚拟现实开发
Unreal Engine 4蓝图可视化编程
Unreal Engine 4蓝图可视化编程
精通Unreal游戏引擎
精通Unreal游戏引擎

相关文章

相关课程