第 1 章? UE5 介绍 ………………… 1
1.1 什么是游戏引擎 ····························1
1.1.1 实时渲染器 ································· 1
1.1.2 物理引擎 ···································· 2
1.1.3 人工智能引擎 ······························ 2
1.1.4 网络引擎 ···································· 3
1.1.5 声音渲染器 ································· 3
1.1.6 脚本引擎 ···································· 4
1.2 UE 的发展历史 ·····························5
1.2.1 第一代 UE ·································· 5
1.2.2 UE2 ~ UE2.5 ······························ 6
1.2.3 UE3 ·········································· 7
1.2.4 UDK ········································· 8
1.2.5 UE4 ·········································· 8
1.2.6 Epic Games Store ·························11
1.2.7 UE5 ·········································11
1.3 UE 在其他领域的应用 ·················· 12
1.3.1 建筑设计、景观设计、室内设计等设计行业 ···············12
1.3.2 影视制作行业 ·····························13
1.3.3 广播行业 ···································13
1.3.4 产品设计和制造领域 ····················14
1.3.5 AI 驾驶、AI 训练等领域 ···············14
1.3.6 AR、VR 领域 ·····························15
1.4 UE5 游戏引擎的功能 ··················· 15
1.4.1 Lumen ······································16
1.4.2 Nanite ·······································16
1.4.3 Virtual Shadow maps ·····················16
1.5 UE5 的特点································ 16
1.5.1 高品质全功能 ·····························16
1.5.2 工作流功能强大,耦合性低 ···········17
1.5.3 顶级的视觉效果,最高端的图形渲染技术 ·········17
1.5.4 友好的社区,良好的文档及技术支持 ·········18
1.5.5 强大的跨平台能力 ·······················18
1.5.6 灵活的授权模式 ··························19
1.6 使用 UE5 的软件和硬件需求 ·········· 19
1.6.1 安装 UE5 的软件需求 ···················19
1.6.2 硬件需求 ···································20
1.6.3 关于用笔记本计算机学习使用 UE5 ···21
总结················································ 22
问答················································ 22
思考················································ 22
练习················································ 22
第 2 章? UE5 的安装与使用 …… 23
2.1 注册 Epic 官方账号 ······················ 23
2.2 下载安装 Epic Game Launcher ········ 25
2.2.1 下载 Epic Game Launcher ··············25
2.2.2 安装 Epic Game Launcher ··············26
2.2.3 登录 Epic Game Launcher ··············26
2.3 安装 UE5··································· 27
2.4 Epic Game Launcher 的主要功能 ····· 29
2.4.1 News ········································29
2.4.2 示例 ·········································29
2.4.3 虚幻商城 ···································30
2.4.4 库 ············································31
2.5 修改 Epic Game Launcher 设置 ········ 31
2.5.1 修改 Epic Game Launcher 语言 ········31
2.5.2 修改 Epic Game Launcher 缓存目录 ··32
总结················································ 32
问答················································ 32
思考················································ 32
练习················································ 32
第 3 章? 第一个 UE5 项目及项目结构分析 ………… 33
3.1 开启 UE5 项目浏览器 ··················· 33
3.2 虚幻项目浏览器界面介绍 ·············· 34
3.2.1 “最近打开的项目” ····················34
3.2.2 “游戏”标签 ·····························36
3.2.3 “影视与现场活动”标签 ··············37
3.2.4 “建筑”标签 ·····························37
3.2.5 “汽车、产品设计和制造”标签 ·····38
3.3 创建项目 ··································· 38
3.3.1 选择模板类型 ·····························38
3.3.2 设置项目默认设置 ·······················39
3.3.3 项目默认配置说明 ·······················39
3.3.4 设置项目名称和项目位置 ··············40
3.4 UE5 项目结构分析 ······················ 42
3.4.1 什么是 UE5 项目 ·························42
3.4.2 项目目录结构 ·····························42
3.5 改变 UE5 项目版本 ······················ 43
3.5.1 查看引擎版本 ·····························43
3.5.2 版本字符串不可用的情况 ··············44
3.5.3 切换引擎版本 ·····························44
3.6 UE5 插件管理····························· 45
3.6.1 打开插件管理器 ··························45
3.6.2 插件分类 ···································45
3.6.3 uproject 文件控制插件功能 ············47
3.7 编辑器设置 ································ 47
3.7.1 改变编辑器默认语言 ····················47
3.7.2 改变编辑器默认自动保存的行为 ·····49
3.7.3 还原编辑器设置 ··························50
总结················································ 50
问答················································ 50
思考················································ 50
练习················································ 50
第 4 章? UE5 引擎界面布局与基础操作 ……… 51
4.1 UE5 界面布局····························· 51
4.1.1 UE5 默认界面布局 ······················51
4.1.2 UE5 自定义界面布局 ···················52
4.1.3 保存已调整好的布局 ····················54
4.1.4 读取保存的布局文件 ····················55
4.1.5 加载默认布局 ·····························55
4.2 菜单 ········································· 55
4.2.1 “文件”菜单 ·····························55
4.2.2 “编辑”菜单 ·····························57
4.2.3 “窗口”菜单 ·····························58
4.2.4 “工具”菜单 ·····························59
4.2.5 “构建”菜单 ·····························59
4.2.6 “选择”菜单 ·····························60
4.2.7 “帮助”菜单 ·····························60
4.3 工具栏 ······································ 60
4.3.1 编辑器模式 ································61
4.3.2 快速添加到项目按钮 ····················61
4.3.3 蓝图按钮菜单 ·····························62
4.3.4 过场动画按钮菜单 ·······················62
4.3.5 播放控制按钮 ·····························62
4.3.6 平台按钮菜单 ·····························63
4.4 视口面板 ··································· 63
4.4.1 视口操作 ···································63
4.4.2 视口的视图类型 ··························65
4.4.3 视口布局 ···································65
4.4.4 快速切换视图类型 ·······················66
4.4.5 视口显示模式 ·····························66
4.4.6 视图中 Actor 的操作 ····················66
4.5 大纲面板 ··································· 68
4.5.1 对 Actor 进行重命名 ····················68
4.5.2 通过名称搜索物体 ·······················68
4.5.3 通过文件夹管理项目结构 ··············68
4.5.4 创建父子关系 ·····························69
4.6 内容浏览器 ································ 69
4.6.1 显示内容浏览器 ··························70
4.6.2 内容资源管理 ·····························70
4.6.3 保存新建或修改过的资产 ··············70
总结················································ 71
问答················································ 71
思考················································ 71
练习················································ 72
第 5 章? UE5 引擎 Paper2D 插件 ………… 73
5.1 为什么用 UE5 开发 2D 游戏 ··········· 73
5.1.1 2D 游戏的发展 ···························73
5.1.2 2D 游戏的优点 ···························74
5.1.3 学习 2D 游戏开发的优点 ··············76
5.1.4 使用 UE5 开发 2D 游戏的优点 ·······76
5.2 Paper2D 插件介绍························ 77
5.2.1 打开 Paper2D 插件 ·······················77
5.2.2 Paper2D 插件提供的内容 ··············78
5.2.3 Paper2D 插件提供的基础材质 ········79
5.3 Sprite ········································ 80
5.3.1 UE5 中的 Sprite ··························80
5.3.2 图片与纹理 ································80
5.3.3 创建 Sprite ·································82
5.4 Sprite 设置 ································· 83
5.4.1 Sprite 大小 ·································83
5.4.2 自定义 Sprite 渲染形状 ·················84
5.4.3 自定义 Sprite 碰撞 ·······················85
5.5 使用单张纹理创建多个 Sprite ········· 88
5.6 图像序列 ··································· 90
5.7 瓦片与瓦片集 ····························· 93
5.7.1 创建瓦片集 ································93
5.7.2 设置瓦片碰撞区域 ·······················94
5.7.3 使用瓦片集创建瓦片贴图 ··············94
总结················································ 96
问答················································ 96
思考················································ 96
练习················································ 96
第 6 章? UE5 2D 开发初始设置 ………97
6.1 Sprite 模糊 ································· 97
6.2 后处理自动曝光 ·························100
6.2.1 通过后处理体角色关闭自动曝光 ··· 100
6.2.2 通过视口工具菜单关闭自动曝光 ··· 102
6.2.3 使用项目设置的自动曝光控制亮度 103
6.3 导入 UE5 后的 Sprite 变色 ············103
6.3.1 UE5 颜色矫正工具 ···················· 103
6.3.2 颜色产生变化的原因 ·················· 106
6.3.3 解决色彩改变 ··························· 106
6.4 UE5 2D 摄影机设置 ····················109
6.5 UE5 瓦片贴图缝隙处理 ···············112
6.6 Sprite 透明排序 ··························113
6.6.1 2D 层捕捉 ······························· 113
6.6.2 透明渲染顺序 ··························· 114
总结···············································115
问答···············································115
思考···············································115
练习···············································115
第 7 章? 用 UE5 开发《俄罗斯方块》休闲游戏 ……116
7.1 游戏玩法分析 ····························116
7.1.1 简单描述《俄罗斯方块》玩法 ······ 117
7.1.2 详细总结《俄罗斯方块》玩法 ······ 117
7.2 创建项目 ··································117
7.2.1 项目设置 ································· 117
7.2.2 创建 2D 空关卡 ························ 118
7.2.3 创建关键游戏蓝图 ····················· 118
7.2.4 设置 UE5 使用新创建的玩法类 ····· 120
7.2.5 创建游戏相关类 ························ 122
7.2.6 导入资源 ································· 122
7.3 装饰场景 ··································124
7.3.1 设置后处理自动曝光 ·················· 124
7.3.2 设置色调映射器 ························ 124
7.3.3 其他后处理设置 ························ 125
7.3.4 添加背景音乐 ··························· 125
7.4 设置摄影机 ·······························126
7.4.1 设置玩家使用的 Pawn 角色 ········· 126
7.4.2 添加玩家 Pawn 的摄影机组件 ····· 126
7.4.3 设置摄影机组件参数 ·················· 127
7.5 创建背景网格 ····························128
7.5.1 添加网格到关卡 ························ 128
7.5.2 为背景网格添加的长度和宽度 ······ 128
7.5.3 创建背景方块 ··························· 129
7.6 BP_Grid 创建方块 ······················135
7.7 添加 BP_Tetris 自动下落功能 ········136
7.7.1 添加预览模型 ··························· 136
7.7.2 让 BP_Tetris 向下移动 ················ 137
7.8 完成 BP_Tile 功能 ······················139
7.8.1 设置 BP_Tile 的基础组件和属性 ··· 139
7.8.2 BP_Tetris 的不同类型 ················· 139
7.8.3 使用枚举区分类型 ····················· 139
7.8.4 为 BP_Tile 添加类型变量 ············ 140
7.8.5 根据类型设置颜色 ····················· 140
7.9 随机生成不同类型的 BP_Tetris ······143
7.9.1 添加 SetTetrisType 事件函数 ········· 143
7.9.2 添加子角色组件 ························ 144
7.9.3 根据类型设置 BP_Tile 颜色 ········· 145
7.9.4 转换图表为函数 ························ 147
7.9.5 根据类型设置 BP_Tile 位置 ········· 148
7.9.6 BP_Grid 创建随机类型的BP_Tetris ······· 150
7.10 输入设置 ································154
7.10.1 设置“输入” ························· 154
7.10.2 蓝图响应“输入”事件 ············· 154
7.10.3 通过 BP_Tetris_PlayerPawn 控制BP_Tetris ··············· 156
7.11 控制 Tetris 移动旋转和加速 ·········160
7.11.1 控制 Tetris 加速下落 ················· 160
7.11.2 判断 Tetris 是否结束 ················· 161
7.11.3 BP_Tetris 降落到底部················ 163
7.11.4 控制 BP_Tetris 左右移动 ············ 167
7.11.5 控制 BP_Tetris 旋转 ·················· 168
7.12 BP_Tetris 落地后的相关逻辑········169
7.12.1 管理 BP_Grid 中的 BP_Tile ········ 169
7.12.2 往 BP_Grid 中添加 BP_Tile ········ 170
7.12.3 检查游戏是否结束 ··················· 170
7.12.4 查找 BP_Grid 中 BP_Tile 满了的行 ············ 171
7.12.5 移除满行的行中所有 BP_Tile ····· 172
7.12.6 把删除行之上的 Tile 顺序下移 ···· 174
7.12.7 实现方块落下之后的所有逻辑 ···· 175
7.12.8 完善方块移动旋转 ··················· 178
7.13 细化完成游戏 ··························180
7.13.1 添加得分记录 ························· 180
7.13.2 添加 UI ································· 184
7.13.3 添加音效 ······························· 196
7.14 打包为 Windows 平台可执行文件 ············197
7.14.1 设置 Windows 平台打包环境 ······ 197
7.14.2 Windows 平台打包 ··················· 200
总结···············································202
问答···············································202
思考···············································202
练习···············································202
第 8 章? 用 UE5 开发 2D 平台游戏 …………203
8.1 2D 平台游戏介绍 ·······················203
8.1.1 2D 平台类游戏的优点 ················ 203
8.1.2 2D 平台类游戏代表作品 ············· 203
8.2 创建 2D 平台游戏项目 ·················204
8.2.1 创建项目 ································· 205
8.2.2 项目配置 ································· 205
8.2.3 创建基础游戏玩法类 ·················· 205
8.3 实现 2D 平台游戏角色 ·················207
8.3.1 导入资源 ································· 207
8.3.2 创建 Flipbooks 动画 ··················· 209
8.3.3 设置玩家图像序列 ····················· 210
8.3.4 添加玩家摄影机 ························ 210
8.3.5 添加玩家基础移动 ····················· 211
8.4 使用精灵创建关卡 ······················217
8.4.1 自定义捕捉间距 ························ 217
8.4.2 设置精灵碰撞形状 ····················· 218
8.4.3 创建完整关卡 ··························· 220
8.4.4 添加背景 ································· 221
8.4.5 设置跳跃高度 ··························· 222
8.5 使用瓦片地图创建关卡 ················223
8.5.1 使用瓦片制作地图的优点 ············ 223
8.5.2 创建瓦片集 ······························ 223
8.5.3 创建瓦片贴图 ··························· 224
8.5.4 编辑瓦片贴图 ··························· 224
8.5.5 在关卡中使用瓦片贴图 ··············· 226
8.5.6 设置瓦片碰撞 ··························· 226
8.5.7 设置背景方法 2 ························ 227
8.6 创建可拾取金币 ·························228
8.6.1 创建金币蓝图 ··························· 228
8.6.2 准备精灵资源 ··························· 228
8.6.3 设置金币蓝图 ··························· 229
8.6.4 创建金币逻辑 ··························· 230
8.7 设置蓝图类图标 ·························232
8.7.1 自定义蓝图 Icon ························ 232
8.7.2 自定义关卡文件图标 ·················· 232
8.8 添加陷阱 ··································233
8.8.1 创建设置陷阱蓝图 ····················· 233
8.8.2 添加玩家受伤逻辑 ····················· 233
8.8.3 陷阱触发玩家受伤 ····················· 234
8.8.4 处理玩家角色死亡 ····················· 235
8.8.5 实现玩家受伤效果 ····················· 236
8.9 添加移动平台 ····························238
8.9.1 创建设置平台蓝图 ····················· 238
8.9.2 设置移动目标 ··························· 240
8.9.3 移动平台 ································· 240
8.9.4 设置 TimeLine 播放时间 ············· 242
8.10 添加不可见死亡触发器 ··············244
8.10.1 添加设置死亡触发器蓝图 ·········· 244
8.10.2 设置角色死亡事件 ··················· 245
8.10.3 在关卡中配置死亡触发角色 ······· 245
8.11 添加过关蓝图 ··························247
8.11.1 创建过关蓝图 ························· 247
8.11.2 准备过关蓝图图像序列 ············· 247
8.11.3 设置过关蓝图 ························· 248
8.12 Game HUD ······························250
8.12.1 创建 UI 蓝图 ·························· 250
8.12.2 创建生命栏 ···························· 250
8.12.3 完成生命栏逻辑 ······················ 253
8.12.4 显示游戏 UI ··························· 255
8.12.5 添加金币 UI ··························· 255
8.12.6 完成金币显示 ························· 257
8.13 移动平台输入 ··························260
8.13.1 添加布局输入控制器 UI ············ 260
8.13.2 添加控制器 UI 到视口 ·············· 263
8.13.3 准备动作事件 ························· 264
8.13.4 UI 触发事件 ··························· 265
8.14 Android 平台游戏打包 ················269
8.14.1 安装 Android Studio ·················· 269
8.14.2 安装 Android SDK ···················· 271
8.14.3 UE5 更新 Android SDK 版本 ······· 274
8.14.4 项目打包配置 ························· 276
8.14.5 处理打包错误 ························· 278
8.14.6 安装到真机 ···························· 280
总结···············································282
问答···············································282
思考···············································282
练习···············································282
第 9 章? 在 UE5 中用 2D 骨骼动画技术制作塔防游戏 …283
9.1 2D 骨骼动画简介及制作方法 ········283
9.2 SpineUnrealEngine 插件 ···············287
9.2.1 下载 Spine Runtime 源代码 ·········· 287
9.2.2 编译 Spine UE 插件 ···················· 288
9.2.3 安装 spineUE4 插件 ··················· 290
9.3 准备项目资产 ····························291
9.3.1 Spine 动画介绍 ························· 291
9.3.2 导入 spine 资产 ························· 291
9.3.3 播放 Spine 动画 ························ 293
9.3.4 准备游戏资源并搭建背景关卡 ······ 300
9.3.5 关闭流式纹理解决纹理模糊问题 ··· 302
9.4 创建角色类 ·······························302
9.4.1 创建玩家摄影机角色 ·················· 302
9.4.2 设置角色基类 ··························· 303
9.4.3 创建设置玩家英雄类 ·················· 304
9.4.4 创建设置敌人类 ························ 306
9.4.5 敌人向前移动 ··························· 307
9.5 实现游戏攻击逻辑 ······················308
9.5.1 敌人攻击玩家英雄 ····················· 308
9.5.2 玩家英雄攻击敌人 ····················· 312
9.5.3 Enemy 生成器 ·························· 314
9.6 添加金币系统 ····························317
9.6.1 在 BP_Player 中添加金币 ············ 317
9.6.2 创建 BP_Coin 金币蓝图类 ··········· 317
9.6.3 设置金币响应单击事件 ··············· 318
9.6.4 设置金币掉落 ··························· 319
9.6.5 金币生成器 ······························ 321
9.7 购买放置英雄 ····························323
9.7.1 HUD 显示金币 ························· 323
9.7.2 创建购买英雄图标 ····················· 325
9.7.3 英雄角色生成点 ························ 329
9.7.4 购买后显示英雄图标 ·················· 331
9.7.5 管理角色生成点 ························ 333
9.8 添加守护入口 ····························337
总结···············································340
问答···············································341
思考···············································341
练习···············································341
第 10 章? 基于 UE5 的数字二维交互艺术设计 ………342
10.1 数字二维交互艺术设计的概念 ·····342
10.2 当代常见的交互艺术形式 ···········343
10.3 UE5 如何制作交互艺术 ··············345
10.4 基于 UE5 的数字二维交互艺术设计案例 ···········347
总结···············································355
思考···············································355
练习···············································355
