作者:(印度)萨提斯·PV(Satheesh PV )
出版社:人民邮电出版社
格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT
Unreal Engine 4 游戏开发指南试读:
前言
本书面向对虚幻引擎感兴趣的读者,旨在讲述如何制作电子游戏。本书会介绍什么是Unreal Engine、如何下载和使用它。本书将讲解Unreal Engine 4提供的一系列工具,包括材质、蓝图、Matinee、UMG、C++等。本书内容
第1章是本书的基础。该章介绍如何和在哪里下载Unreal Engine,了解源代码版本和启动器版本之间的区别。Unreal Engine安装(如果是源代码版本,则是编译)之后,展示Unreal Engine的用户界面。该章还讲述浏览器、BSP以及如何更改游戏的启动画面和图标。
第2章讲述在启动并运行Unreal Engine后如何将自定义的FBX资源导入Unreal Engine。该章还介绍碰撞、材质和细节级别(Level Of Detail,LOD)。
第3章讨论材质编辑器以及用于为资源创建着色器的一些常用节点。 在学习材质的基础知识后,将创建一个可以改变法线贴图强度的示例材质函数。
第4章讨论如何进行后期处理。该章将介绍如何重写默认的后期处理设置。接着,将讲述如何添加自己的后期处理体积(Post Process Volume),并展示一个简单但非常强大的功能——查找表。之后,我们将创建一个可以与后期处理一起使用的特殊材质,该材质能够突出显示世界场景中的用户自定义对象。
第5章是本书中承前启后的一章,介绍光照系统。首先,介绍基础知识,例如,如何放置光源和常规设置。然后,讨论有关Lightmass全局光照系统的更多信息,包括如何为资源正确设置UV通道,如何与Lightmass一起使用。最后,讲述如何使用Lightmass并设置Lightmass来构建场景。
第6章将阐述蓝图是什么以及Unreal Engine提供的各种类型的蓝图。蓝图是Unreal Engine的重要工具,允许艺术家和设计师快速地制作游戏原型(甚至制作游戏)。该章还将介绍不同的图表类型(如事件图表、函数图表、宏图表等),以及如何在运行时动态生成蓝图。
第7章重点介绍Unreal Engine 4在电影方面的用途以及与之相关的工具——Matinee。该章讨论什么是Matinee,如何创建Matinee资源以及如何使用用户界面。在介绍基础知识之后,该章将讨论如何操作Matinee中的对象,以及创建一个基本的过场动画,后面将使用蓝图来触发它。
第8章讲述如何创建基本的平视显示器(Head Up Display,HUD)以显示玩家的生命值。虚幻动态图形(Unreal Motion Graphics,UMG)是虚幻引擎中的UI创作工具。UMG用于创建玩家HUD、主菜单、暂停菜单等。该章还介绍如何创建3D小部件,这些小部件可以放置在世界场景中或附加到Actor类中。
第9章介绍一个非常强大和鲁棒的工具——级联粒子编辑器,并讲述如何创建粒子系统,因为没有良好的视觉效果就没有好的游戏。该章还展示如何将级联粒子编辑器与简单的蓝图脚本结合起来,以生成随机爆发的粒子。
第10章介绍C++。通过查看第三人称模板角色类,该章首先介绍如何获取Visual Studio 2015社区版以及C++的基础知识。然后,该章讨论如何扩展此角色类以增加对生命和生命恢复系统的支持,以及如何为蓝图编辑器提供变量和函数。
第11章是本书最后一章,该章将汇总本书的所有内容,包括一些技巧。最后,该章讨论如何创建游戏的发布版本。阅读本书的准备
在计算机上安装Unreal Engine 4.9或更高版本。本书读者对象
本书面向所有对使用Unreal Engine 4开发游戏感兴趣的人。如果你热衷于开发游戏并想了解Unreal Engine 4的基础知识及其工具,那么本书将帮助你快速开启这一旅程。Unreal Engine 4是为所有平台(包括移动设备和控制台)创建下一代视频游戏的开始。本书约定
本书采用一些样式来区分不同类型的信息。以下是这些样式的一些示例以及说明。
代码块格式如下。void APACKT_CPPCharacter::RegenerateHealth(){ if (Health >= GetClass()->GetDefaultObject
新术语和重要词汇以粗体显示。在屏幕上(例如,在菜单或对话框中)看到的词汇会在本书中的显示方式如下。“登录后,可以通过单击Get Unreal Engine(获取虚幻引擎)下的按钮Download(下载)来下载启动器。” 用于显示警告信息或重要说明。
用于显示提示信息和技巧。读者反馈
欢迎读者的反馈。让我们知道你对本书的看法——喜欢什么或者不喜欢什么。读者反馈对我们很重要,它可以帮助我们出版优质的图书。
要向我们发送一般的反馈,只须发送电子邮件至feedback@packtpub.com,并在邮件主题中提及本书的书名即可。
如果你对某一方面有专业的见解,有兴趣撰写图书或为图书贡献内容,请参阅packtpub网站上的作者指南。客户支持
既然你购买了Packt图书,那么在你购买的同时可以获取配套资源。下载示例代码
可以登录packtpub网站并下载本书的示例代码文件。如果你在其他地方购买了本书,则可以访问packtpub网站并进行注册,文件将直接通过电子邮件发送给你。
请按照如下步骤下载代码文件。(1)使用你的电子邮件地址和密码登录或注册packtpub网站。(2)将鼠标指针悬停在顶部的SUPPORT选项卡上。(3)单击Code Downloads&Errata。(4)在Search框中输入图书的名称。(5)选择要下载代码文件的图书。(6)从本书的购买来源的下拉菜单中进行选择。(7)单击Code Download按钮。
下载文件后,确保使用以下最新版软件解压缩文件夹:● Windows版WinRAR/7-Zip;● Mac版Zipeg/iZip/UnRarX;● Linux版7-Zip/PeaZip。下载本书的彩色图像
我们还为你提供了一个PDF文件,其中包含本书使用的屏幕截图/图的彩色图像。彩色图像将帮助你更好地了解输出的变化。可以从packtpub网站下载此文件。勘误表
虽然我们已经尽力确保内容的准确性,但确实也会发生错误。如果你在某本书中发现错误(可能是文本或代码的错误),请告诉我们,我们将不胜感激。这可让其他读者少走弯路,并帮助我们改进本书的后续版本。如果需要勘误,请通过访问packtpub网站,选择本书,单击Errata Submission Form链接,并输入勘误表的详细信息。一旦勘误得到验证,你的提交将被接受,勘误表将上传到我们的网站,或将它添加到现有勘误表中。
要查看以前提交的勘误表,请访问packtpub网站并在搜索字段中输入该书的名称。所需信息将显示在Errata部分。盗版问题
互联网上的盗版书是所有媒体一直面临的问题。Packt非常重视保护版权。如果你在互联网上发现盗版的Packt图书,请立即向我们提供地址或网站名称,以便我们采取补救措施。
请通过copyright@packtpub.com与我们联系,并提供可疑盗版资料的链接。
感谢你帮助保护作者并为我们提供有价值的内容。问题
如果有关于本书的任何问题,可以发邮件至questions@packtpub.com,我们会尽力解决你的问题。致谢
我借此机会感谢我的家人,他们是我真正的灵感来源。感谢他们在我撰写本书时给予的指导和持续的支持。感谢Epic Games向世界免费开放这样一款惊人的引擎!Epic Games团队是最棒的!
向我的未婚妻Gale Fernandes表示由衷的感谢,没有她的支持和建设性的意见,就没有本书。
还要感谢我的兄弟Rakesh PV指引我走进游戏世界和游戏技术的殿堂。通过他,我学到了与游戏相关的一切,我很自豪地说他是我的第一个导师。
向我的好朋友Alexander Paschall(Epic Games)、Chance Ivey(Epic Games)和Reni Dev表示深深的谢意,我与他们共同开发了我的第一款游戏。
我还要感谢良师益友Nathan Iyer(Rama)在C++编程方面的大力支持。他通过有关C++的精彩文章和例子,在Unreal Engine社区中教过很多人(其中也包括我)。他审阅了本书第10章,指出了技术错误并给出了修改建议。
最后,感谢Vasundhara Devi和Lucy Fernandes给我的欢乐时光。资源与支持
本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。配套资源
本书配套资源包括相关示例的源代码。
要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意,为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。
如果您是教师,希望获得教学配套资源,请在社区的本书页面中直接联系本书的责任编辑。提交勘误
作者和编辑会尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助提升图书的质量。
当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。与我们联系
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。
如果您所在学校、培训机构或企业想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。关于异步社区和异步图书“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。异步社区微信服务号推荐课程
异步社区提供了 “虚幻引擎基础视频课程”,旨在通过视频帮助读者快速掌握使用Unreal Engine 4开发虚幻游戏的方法和技巧。本课程由知名的Unreal Engine 培训机构开发和制作,通过详细的操作演示和经典的案例指导读者了解Unreal Engine 4的使用技巧。整个课程内容丰富、循序渐进,非常适合作为游戏开发人员、计算机专业的学生、游戏设计或美术相关专业的学生的配套学习资源。
购买本书的读者可以获得50元优惠券,在购买本视频课程时可以直接减免50元。
优惠券兑换码是QjCGKSJp(区分大小写)。
• 优惠券的使用方式:访问异步社区官网www.epubit.com,搜索 “虚幻引擎基础视频课程”,进入课程详情页,单击“立刻购买”按钮后,在订单结算页中单击“兑换优惠码”选项,输入优惠券兑换码,即可减免50元。
• 观看视频课程的方式:购买后,在“个人中心”页面的“内容中心”中,单击“我的订单”,可以看到已购买的课程。
注意,优惠券对于每个用户限用一次,优惠券在兑换后100天内下单购买有效。第1章 Unreal Engine 4简介
欢迎阅读本书。本章首先讲述如何下载虚幻引擎的源代码版本和启动器版本,然后介绍Unreal Engine 4的用户界面和内容浏览器。1.1 下载Unreal Engine 4
Unreal Engine 4是免费(包括之后所有的更新)下载和使用的。可以获得Unreal Engine 4的所有工具、免费示例内容、完整的C++源代码,包括整个编辑器的代码及其所有工具;还可以访问官方文档(包含教程和资源),以及UE4商店(它提供了大量免费和收费的内容)。
有两个不同的Unreal Engine 4版本可供下载。一个是启动器(二进制)版本,另一个是GitHub(源代码)版本。启动器版本和GitHub版本的区别如下。● 启动器版本:由Epic编译,通过启动器获得。可获得启动器版本
的所有源文件(*.cpp),但由于启动器版本不生成解决方案文
件,因此无法对Unreal Engine进行任何修改。● GitHub版本:没有任何二进制文件,因此必须自己编译引擎。可
以获得整个源代码,并且可以在Unreal Engine中修改任何内容。
可以添加新的功能,修改现有功能或删除它们(没有人会这样
做),并在GitHub上创建合并请求(pull request),因此如果Epic
喜欢它,则会将它正式集成到Unreal Engine中。
下面介绍如何下载这两个版本。1.1.1 下载启动器版本
要下载Unreal Engine 4的启动器版本,肯定需要启动器。下载启动器的步骤如下。(1)访问unrealengine网站,使用你的账号登录。(2)登录后,单击Get Unreal Engine(获取虚幻引擎)下的[1]Download(下载)按钮下载启动器版本(见下图)。
安装后第一次打开启动器时,会自动下载最新版本的Unreal [2]Engine 4。如果没有,那么选择Library(库)选项卡并单击Add Versions(安装新版虚幻引擎),如下图所示。这时出现一个新的引擎插槽,在这里选择虚幻引擎的版本并进行安装。1.1.2 下载GitHub版本
下载Unreal Engine 4的GitHub版本的步骤如下。(1)创建一个GitHub账号(免费)。(2)访问unrealengine网站,更新GitHub账号并单击Save(保存)按钮(见下图)。1.复刻Unreal Engine项目
将GitHub账号与Unreal Engine账号成功链接后,登录GitHub并找到Unreal Engine项目。 确保已将你的GitHub账号与Unreal Engine账号相关联。否则,无法看到Unreal Engine项目。
在项目页面上,执行以下操作。(1)单击页面右上角的Fork。(2)选择你的用户名,将Unreal Engine项目复制到你的GitHub库中。(3)下载适用于Windows的GitHub(如果是Windows系统)或适用于Mac的GitHub(如果是Mac系统)并安装。
需要这个Git客户端来复制(下载)已经复刻的项目,对Unreal Engine 4按自己的要求进行更改,将更改作为合并请求提交给Epic以将它们集成到编辑器中。
要复制已经复刻的项目,步骤如下。(1)启动GitHub并登录。(2)如下图所示,单击Git客户端左上角的加号(+)。(3)单击Clone(复制)选项卡并选择你的用户名(现在应该可以看到UnrealEngine)。(4)勾选Clone UnrealEngine(复制虚幻引擎)并选择要保存虚幻引擎项目的文件夹。(5)单击OK(确定)按钮。(6)现在应该可以看到GitHub将Unreal Engine复制到你的硬盘上了。
复制完成后,找到该目录并运行Setup.bat文件。(1)这将下载编译Unreal Engine 4所需的所有必要文件,并且安装Unreal Engine 4的所有必需文件。(2)这可能需要一些时间,取决于你的网速,因为要下载超过2GB的文件。2.编译虚幻引擎
Setup.bat运行完后,运行GenerateProjectFiles.bat,将生成Visual Studio解决方案文件。打开UE4.sln文件,现在已准备好编译自己的Unreal Engine 4的副本了。在Solution Explorer(解决方案资源管理器)中右击UE4,然后单击Build(构建),如下图所示。
根据系统硬件配置,这将需要15~60min的时间。所以坐下来,喝一杯咖啡,等Unreal Engine 4完成编译。1.2 了解Unreal Engine 4
一旦Unreal Engine 4完成编译(或下载,如果使用的是启动器版本),则可以启动它。● 启动自定义构建:在Visual Studio中按F5键开始调试Unreal
Engine 4或导航到下载目录,进入Engine\Binaries\Win64文件夹,
双击UE4Editor.exe。● 启动启动器构建:只要单击Launch(启动)按钮,就可以开始
了。 编译引擎后的第一次启动可能会经历很长的加载时间。这是因为Unreal Engine 4将为平台优化内容以获得数据缓存。这是一次性过程。
出现启动画面后可以看到虚幻项目浏览器。执行以下步骤。(1)选择New Project(新建项目)选项卡,这是创建新项目的位置(见下图)。(2)在本书中,建议使用Blank Blueprint Project(空白蓝图项目)。因此,在Blueprint(蓝图)选项卡中,选择Blank(空白)项目。(3)选择项目所需的平台。有Desktop/Console(桌面/游戏机)和Mobile/Tablet(移动设备/平板电脑)两个平台可用。可以任意更改这个设置,第二个设置是平台的图形设置。如果选择Desktop/Console(桌面/游戏机),最好使用Maximum Quality(最高质量)。如果项目是面向Mobile/Tablet(移动设备/平板电脑)的,应该选择Scalable 3Dor 2D(可缩放的3D或2D),这是针对低端GPU的。最后一个设置是从Epic添加一些Starter Content(初学者内容),它包含一些基本的网格、材质和纹理。也可以选择不包含Starter Content(初学者内容),因此该项目将仅包含所选项目的基本元素。(4)请注意,在为Mobile/Tablet平台创建项目时,建议不要包含Starter Content(初学者内容),这将明显增加项目的包大小。(5)设置项目名称,选择项目的保存位置。(6)单击Create Project(创建项目)按钮启动UE4项目(见下图)。[3]
下图是Unreal Engine 4的用户界面。
Unreal Engine 4启动后,可以看到类似于前面屏幕截图的画面。如果选择了Starter Content(初学者内容),则默认显示此画面。如果跳过Starter Content(初学者内容),那么启动画面将会有所不同。1.2.1 视口工具栏
视口工具栏包含在整个关卡设计中使用的各种工具(见下图)。快速浏览一下它们。● Transform Tools(变换工具):其中包含的3个工具分别是平移
工具、旋转工具和缩放工具。● Coordinate System(坐标系):让你在世界轴(世界场景)或
自己的本地轴(局部空间)上移动、旋转或缩放Actor。默认情
况下,在世界轴上启动虚幻编辑器,单击图标可进行切换。地球
图标表示世界场景,立方体图标表示本地空间。● Snapping and Move Grid(捕捉和移动网格):捕捉允许将一个
Actor与另一个Actor的表面对齐,移动网格允许与场景中的三维
隐式网格对齐。● Rotation Grid(旋转网格):提供增量旋转捕捉。● Scale Grid(比例网格):捕捉添加的增量。 可以在Editor Preferences(编辑器偏好设置)中调整平移、旋转和缩放工具的捕捉偏好设置。选择Edit(编辑)→Editor Preferences(编辑器偏好设置)→Viewport(视口),滚动到Grid Snapping。● Camera Speed(相机速度):控制相机在视口中移动的速度。 可以通过按住鼠标右键(在使用W键、A键、S键和D键进行控制时)并向上或向下滚动鼠标滚轮来微调相机速度,以加快或减慢相机的移动速度。● Maximize Viewport(最大化视口):在单一视口和分屏4视图样
式之间切换。 可以通过更改Layouts(布局)选项来调整视口的布局,如下图所示。
本章后面将讨论如何使用二进制空间划分(Binary Space Partitioning,BSP)更改一些项目设置,如启动画面、游戏图标等。1.2.2 Modes选项卡
Modes(模式)选项卡包含编辑器的5种模式(见下图),具体如下。● 放置(Place)模式(快捷键为Shift + 1):可以快速放置最近放
置的对象以及引擎基本元素,如光源、几何体、触发器、体积等。● 描画(Paint)模式(快捷键为Shift + 2):也称为Mesh
Paint(网格绘制),可以在Level Viewport(关卡视口)中以
Static Mesh(静态网格)交互式地绘制顶点颜色。● 地貌(Landscape)模式(快捷键为Shift + 3):可以在虚幻编辑
器中创建新景观,或从外部程序(如World Machine、
TerreSculptor等)中导入高度图并对它进行修改。● 植被(Foliage)模式(快捷键为Shift + 4):可以在
Landscapes(地貌)、其他静态网格物体等对象上绘制或擦除
多个静态网格物体。典型的工作流程是大面积绘制草、树等。● 几何体编辑(Geometry Editing)模式(快捷键为Shift + 5):允
许编辑BSP画笔。1.2.3 Content Browser
Content Browser(内容浏览器)是项目的核心,在此处创建、导入、查看、编辑、组织和修改游戏的所有资源。可以在Content Browser中重命名、删除、复制资源,在不同文件夹之间移动资源,就像在Windows资源管理器中一样。此外,在Content Browser中可以根据关键字或资源类型搜索特定资源,还可以通过添加“-”(连字符)作为前缀从搜索中去掉某些资源。
可以创建Collections(集合)组织常用的资源以便进行快速访问。 集合只是对资源的引用,而不会将资源移动到集合中。这意味着单个资源可以存在于多个集合中,可以创建无数个集合。
有3种类型的集合。● 共享集合(Shared Collection):这些集合对你和其他用户都可
见。仅当启用Source Control(源代码管理,如Perforce、
Subversion等)时,此选项才处于可用状态。● 私有集合(Private Collection):仅对受邀可见的人才可见。仅
当启用Source Control(源代码管理,如Perforce、Subversion等)
时,此选项才处于可用状态。● 本地集合(Local Collection):只有你自己可用,这意味着它们
只存在于本地计算机上。
如果要将资源从一个项目移到另一个项目,则应右击该资源并选择Migrate(迁移),将该资源及其所有依赖项复制到新项目中。
通过按Ctrl + Shift + F快捷键或从菜单栏上的Windows(窗口)菜单打开Content Browser。可以同时拥有4个Content Browser实例。
当要将资源移动到不同文件夹或浏览不同文件夹中的各种资源时,以下窗口非常有用。Content Browser中的View Options(视图选项)
使用View Options可以执行以下操作。● 更改缩略图大小。● 更改视图样式。● 修改3D缩略图等。
可以从内容浏览器的右下角访问View Options(见下图)。1.2.4 World Outliner视图
World Outliner(世界大纲)视图以树视图显示关卡中的所有Actor(见下图)。可以在World Outliner视图中选择和修改Actor。右击World Outliner视图中的Actor,将显示与Viewport(视口)中一样的上下文菜单,因此无须在Viewport(视口)中找到它们,也可对其进行修改。还可以将一个Actor拖动到另一个Actor并合并它们。
World Outliner视图可以搜索特定的Actor。在搜索词之前添加“-”(连字符)可以去掉特定的Actor,还可以通过在搜索词之前添加“+”强制完全匹配。
试读结束[说明:试读内容隐藏了图片]