党的二十大指出推动战略性新兴产业融合集群发展,构建新一代信息技术、人工智能、生物技术、新能源、新材料、高端装备、绿色环保等一批新的增长引擎。虚拟现实是新一代信息技术的重要前沿方向,是数字经济的重大前瞻领域。虚幻引擎作为虚拟现实重要的开发技术,在虚拟现实产业发展中起着举足轻重的作用。
虚幻引擎(Unreal Engine,UE)是由Epic Game公司开发的一款开源、商业收费、学习免费的游戏引擎。虚幻引擎功能强大、上手简单、易用性高,尤其侧重于数据生成和程序编写。虚幻引擎还为程序员提供了一个具有先进功能、可扩展性的应用程序框架,用于建立、测试和发布各种类型的游戏。
基于蓝图模式,设计师只需要程序员很少量的协助,就能够在完全可视化环境中尽可能多地开发游戏的数据资源,实际操作非常便利。这方面的书籍已经出版了很多,本书主要是从程序员角度进行编写。
本书面向计算机、虚拟现实(Virtual Reality, VR)技术等学科,主要介绍代码编程模式,着重C 编程开发。本书的第1~4章,主要介绍虚幻引擎入门和虚幻引擎的C 开发;第5~13章,主要介绍虚幻引擎中常用功能。其中,第1~4章会带领读者逐步上手虚幻引擎,
通过各种小案例,让读者能够做出简单可运行的项目;在C 开发介绍部分包含C 基础和C 进阶,即使是C 基础不好的读者也能很容易了解UE C 。在第5~13章中,编者挑选了游戏制作中常用到的功能进行介绍,如图形用户界面、天空盒、笔刷、雾效、音频和光影效果等。读者有了这些基础,结合手柄组件,就可以进行VR方面的程序设计和游戏开发。最后,本书讲解了一个完整的VR游戏案例,以便读者学以致用。
此外,本书主基于UE 5.0进行讲解,为了避免出现教学过程中由于版本不一致导致的错误,读者使用UE时最好能采用与教材相同版本。本书旨在带领读者学习并使用虚幻引擎,建议读者在学习过程中多加练习,跟随书中操作使用虚幻引擎,希望读者在学习完本书之
后能够较为熟练地使用虚幻引擎开发项目,能够开启自己的游戏开发之旅,实现自己进入虚拟现实产业之理想。
本书在编写过程中得到了厦门雅基的王哲、苏琳,厦门触控未来的林钇地、白耀辉、汪翠芳以及清华大学出版社编辑的大力支持和帮助。学生张钱成、徐凯、唐巧兴等参与了本书第2章、第3章、第7章以及部分案例的编写,特此感谢。
由于编者时间有限,书中不足之处在所难免,欢迎广大读者批评、指正,并提出宝贵的建议,在此一并表示感谢。
编者
2023年1月
第1章 Unreal Engine基础1
1.1 环境搭建 .1
1.2 项目创建 .4
1.3 编辑器基础 .10
1.4 工具和编辑器 .12
1.5 本章小结 15
第2章 蓝图16
2.1 基础知识:蓝图 16
2.2 实战练习:控制场景中门的
开启和关闭 19
2.3 本章小结 26
第3章 C 基础27
3.1 基础知识:现代C 基础 27
3.2 基础知识:UE的C 类层级结构 48
3.3 基础知识:UE中的宏定义 50
3.4 基础知识:UE中的字符串 58
3.5 本章小结 59
第4章 C 进阶60
4.1 基础知识:UE中的容器 60
4.2 基础知识:UE中的智能指针库 69
4.3 实战练习:创建和删除C 类 77
4.4 本章小结 .81
第5章 UE脚本程序基础知识82
5.1 Unreal Engine脚本概述 82
5.2 Unreal Engine中C 脚本的注意事项 .82
5.3 Unreal Engine脚本的基础语法 83
5.4 本章小结 113
第6章 Gameplay框架114
6.1 Gameplay简介 114
6.2 基础类 .116
6.3 GameInstance和Engine类 .119
6.4 Pawn和Character 120
6.5 Controller 121
6.6 GameMode和GameState 126
6.7 GameInstance .128
6.8 Gameplay框架总结 .130
6.9 本章小结 133
第7章 图形用户界面基础134
7.1 基础知识:基本概念 134
7.2 基础知识:基本控件类型参考 134
7.3 UMG与C 交互案例 149
7.4 本章小结 154
第8章 3D游戏开发常用技术155
8.1 天空盒及其应用 .155
8.2 几何体笔刷Actor 159
8.3 雾效 .165
8.4 虚拟摇杆 170
8.5 音频文件 172
8.6 UE中的Sound Cue 172
8.7 C 播放音频 .175
8.8 本章小结 176
第9章 材质编辑器177
9.1 材质基础 177
9.2 材质表达式 181
9.3 常用材质运算节点 .182
9.4 材质输入 183
9.5 本章小结 185
第10章 光影效果186
10.1 光源类型 .186
10.2 光照贴图UV196
10.3 反射环境 .200
10.4 环境法线贴图 216
10.5 本章小结 .218
第11章 地形与寻路技术219
11.1 地形的创建 219
11.2 托痕渲染器Trail Renderer 231
11.3 寻路系统 .246
11.4 本章小结 .260
第12章 网络开发基础261
12.1 网络概述 261
12.2 Unreal Engine网络开发案例 262
12.3 本章小结 269
第13章 ARPG游戏项目实战270
13.1 游戏菜单、账号注册、登录等页面的制作 270
13.2 账号注册和登录 275
13.3 角色显示 .280
13.4 角色动画制作 284
13.5 动画事件处理 292
13.6 角色动作控制 296
13.7 玩家攻击逻辑处理 300
13.8 敌人及敌人创建 303
13.9 敌人AI及Boss的AI .308
13.10 本章小结 315
参考文献316