Unreal Engine 5 C++游戏开发完全学习教程

Unreal Engine 5 C++游戏开发完全学习教程
作者: [英] 贡萨洛·马克斯,[英]德文·谢里,[英]大卫·佩雷拉,[
出版社: 中国青年
原售价: 168.00
折扣价: 104.20
折扣购买: Unreal Engine 5 C++游戏开发完全学习教程
ISBN: 9787515373461

作者简介

[英]贡萨洛·马克斯(Gon?alo Marques)从6岁起就是一名活跃的游戏玩家。自2016年以 来,他一直在使用虚幻引擎,并使用虚幻引擎从事自由职业和咨询工作。贡萨洛还发布了一个 名为UI Navigation的免费开源的插件,该插件获得了极高的评价,下载量超过10万次,并且仍 在不断地更新和修复。正是这个插件的开发,使他成为Epic MegaGrant的获得者。他目前在里斯本(葡萄牙的首都)的游戏工作室Funcom ZPX工作,该工作室参于了《流放者柯南》(Conan Exiles)、《突变元年:伊甸园之路》(Mutant Year Zero)和《疯狂之月》(Moons of Madness)等游戏的开发。目前,贡萨洛正在开发一款基于《沙丘》(Dune)宇宙的新游戏。 德文·谢里(Devin Sherry)是波兰People Can Fly公司的首席技术设计师,曾使用虚幻 引擎4开发《先驱者》(Outriders)和《先驱者:世界杀手》(Outriders: Worldslayer)。在此之前,他在塞尔维亚的Digital Arrow工作室担任技术设计师,专注于《未来水世界:深度侵袭》( Aquanox: Deep Descent)的开发。德文拥有从虚幻开发者工具包到最新发布的虚幻引擎5十年的使用经验,他致力于为玩家创造难忘的游戏体验,并将游戏机制变得栩栩如生。 [英]大卫·佩雷拉(Da v i d P e r e i r a )从1998年开始制作游戏,当时他学会了如何使用Clickteam(游戏制作工具的公司名称)的游戏工厂(The Games Factory)(Clickteam的一款产品,用于制作游戏的工具)。他毕业于FCT-UNL的计算机科学专业,在那里他学习了C++、 OpenGL和DirectX,这让他能够制作出更复杂的游戏。在IT咨询行业工作了几年后,他加入了葡 萄牙的Miniclip游戏公司,参与开发了多款流行的移动游戏,如《8球台球》(8 Ball Pool)、《重力小子1》(Gravity Guy 1)、《重力小子2》(Gravity Guy 2)、《极限滑板》(Extreme Skater)、《 特技滑雪2》(iStunt 2)和《英雄哈勃》(Hambo)以及许多其他游戏。从那时起,他担任MPC的首席开发人员,参与开发了约翰·路易斯圣诞虚拟现实(John Lewis Christmas VR)体验。他还参与了《致命躯壳》(Mortal Shell)早期版本的开发。大卫积极从事志愿者工作,教授患有阿斯伯格综合征的人使用虚幻引擎4制作游戏。现在,他正在开发自己的游戏,这是一款即将公布的第一人称动作角色扮演游戏。 [英]哈马德·福齐(Hammad Fozi)具有深厚的游戏开发背景,自2017年以来一直使用虚 幻引擎进行工作。他参与了一些非常成功的AAA项目,如Virtua FanCave(元宇宙)、未命名 的AAA级科幻DJ体验、《英雄与将军》(Heroes and Generals)和《VR拳击游戏》(Creed: Rise to Glory VR)。哈马德与曾在育碧娱乐软件公司(Ubisof)、华纳兄弟游戏公司(Warner Bros. Games)、2K Games(一家游戏制作公司)等公司工作过的团队合作!在短暂而令人印象深刻的 职业生涯中,他成功地帮助由10—30人组成的团队扩大到150余人的规模。目前,哈马德是一名 高级C++游戏开发工程师,在虚拟现实(VR)和增强现实、PC/PS5/Xbox/Android/iOS/macOS游 戏开发和Web3/Metaverse/NFT系统(在虚幻引擎内)方面拥有丰富的工作经验。

内容简介

第13章 创建和添加敌人人工智能 在上一章中,我们为玩家角色添加了分层动画,其中使用动画混合结合动画插槽、动画蓝图,以及Layered blend per bone等混合函数。有了这些知识,我们就能够顺利地将投掷动画蒙太奇与基本运动状态机平滑混合,为角色创建分层动画。在本章中,我们将讨论以下内容。 如何使用导航网格体(Navigation Mesh)在游戏世界中创建敌人可以移动的导航空间。如何使用虚幻引擎5中提供的包括黑板和行为树等的人工智能工具组合,创建一个可以在游戏世界中巡逻点位置之间导航的敌人。如何使用变换向量将局部变换转换为世界变换。如何在C++中创建一个玩家投射类,以及如何实现OnHit()碰撞事件函数来识别和记录投射在游戏世界中击中对象的情况。 13.1 技术要求 本章主要采用在“第12章 动画混合和蒙太奇”中创建的C++敌人类,并与人工智能相结合, 使这个敌人“活”起来。虚幻引擎5使用许多不同的工具来实现人工智能,例如AI控制器(AI Controllers)、黑板(Blackboards)和行为树(Behavior Trees)等,我们将在本章中学习和使用这些功能。 在本章结束时,我们能够创建一个敌人可以移动的空间。我们还能够创建一个敌人人工智能 pawn,并使用黑板和行为树在不同的位置之间导航。最后,我们能够创建和实现一个玩家抛射 类,并添加视觉元素。在研究这些系统之前,让我们先花点时间了解近年来人工智能在游戏中 的发展。自从《超级马里奥兄弟》(Super Mario Bros)问世以来,人工智能无疑已经发生了巨大变化。 学习本章,技术要求如下: 安装虚幻引擎5。 安装Visual Studio 2022。 本章的完整代码可从本书的GitHub存储库下载,链接:https://github.com/PacktPublishing/ Elevating-Game-Experiences-with-Unreal-Engine-5-Second-Edition。 13.2 敌人人工智能 什么是人工智能(AI)?根据使用它的领域和背景,这个术语可以有很多含义,我们以一种 与视频游戏主题相关的方式来定义它。 人工智能是一种能够感知到其周围的环境并选择最优实现预定目标的实体。人工智能使用所 谓的有限状态机(finite state machines),根据从用户或环境接收到的输入在多个状态之间切换。例如,视频游戏人工智能可以根据其当前的生命值在进攻状态和防御状态之间切换。 在使用虚幻引擎4开发的《你好邻居》(Hello Neighbor)和《异形:隔离》(Alien: Isolation) 等游戏中,人工智能的目标是尽可能高效地找到玩家,但也要遵循开发者定义的一些预先确定的模式,以确保玩家能够比人工智能聪明。其中,《你好邻居》为人工智能添加了一个非常有创意的元素,即让人工智能从玩家过去的行为中学习,并尝试基于所学到的知识去战胜玩家。 我们可以在游戏发行商TinyBuild Games提供的视频中找到人工智能如何工作的详细信介绍, 链接:https://www.youtube.com/watch?v=Hu7Z52RaBGk。 有趣且富有挑战性的人工智能对于任何游戏都至关重要,而人工智能的复杂程度则取决于所 创造的游戏类型。我们将为超级横版动作游戏创造的人工智能不会像之前提到的那样复杂,但它将满足我们想要创造的游戏的需求。 让我们来分析一下敌人的行为。 敌人是一个非常简单的角色。他们有一个基本的来回移动模式,不具有任何攻击的动作, 只有通过与玩家角色发生碰撞才能造成伤害。 为敌人人工智能设置移动的位置。 接下来,我们必须决定人工智能是否应该改变位置、是否应该在位置之间不断移动,或者是否应该在选择移动到新位置之间暂停。 幸运的是,虚幻引擎5提供了大量的工具,我们可以使用这些工具开发如此复杂的人工智能。 在项目中,我们将使用这些工具来创建一个简单的敌人类型。下面让我们从讨论虚幻引擎5中的AI控制器开始。 虽然Unreal Engine 4时代推出的蓝图功能使得虚幻引擎变得更加新手友好,但是如果想要全面探索虚幻引擎的强大功能,学会使用C++语言是无法绕开的关键部分。利用C++语言,可以制作出更加精美的游戏作品,为你打开新世界的大门。 通过教读者构建几个功能完备的可执行游戏,全面讲解UE5 C++游戏开发方法,步骤都有图片参考和详细参数标注,即使是新手也能轻松掌握游戏开发的诀窍!