内容简介
本书通过 3D游戏案例,讲解使用UnrealEngine5进行游戏开发的技术要点。从搭建3D游戏世界、用Blueprint编写游戏程序、用UserInterface Widget搭建玩家控制界面,到给游戏添加一个会动的主角、添加粒子特效、设置一个竞技对手,以及游戏制作完成后打包成独立游戏等,引导读者体验游戏开发实际全流程。本书适合游戏开发者,游戏设计相关专业的教师、学生,游戏相关培训机构人员,以及所有对3D游戏制作感兴趣的人士阅读。
目录
第 1 章 初步了解 Unreal Engine 5 1
1.1 看看 Unreal Engine 5 适合用来做什么 2
1.1.1 Unreal Engine 5 的软件特色. 2
1.1.2 学习 Unreal Engine 5 的准备 3
1.2 下载和安装 Unreal Engine 5 4
1.2.1 使用官方客户端 Epic Games Launcher 4
1.2.2 下载 Unreal Engine 5 的不同版本. 5
1.2.3 修改保管库中下载资产的备份路径. 6
1.3 新建游戏工程. 7
1.3.1 使用适合自己的游戏模板 7
1.3.2 了解新建项目的默认设置 8
1.4 熟悉软件界面. 9
1.4.1 顶部菜单栏10
1.4.2 关卡窗口10
1.4.3 主工具栏10
1.4.4 内容浏览器10
1.4.5 大纲 / 放置 Actors.12
1.4.6 细节面板 / 场景设置12
1.5 在关卡中改变视角和挪动 Actor.13
1.5.1 编辑关卡时如何改变视角.13
1.5.2 移动、旋转和缩放 Actor.13
第 2 章 像搭积木一样建造游戏世界.16
2.1 查看网格体模型17
2.2 使用 PBR 材质“包装”网格体19
2.3 进一步“美化”网格体的材质24
2.3.1 改变材质颜色24
2.3.2 调整纹理图的尺寸和位置.25
2.3.3 混合多种颜色来增加层次感.26
2.3.4 让材质在场景的不同位置产生变化26
2.4 简化材质的编写与使用过程.27
2.4.1 将材质节点“打包”.28
2.4.2 将除了参数以外的整个材质“打包”30
2.5 活用网格体的 LOD 优化场景31
2.5.1 启用网格体 LOD32
2.5.2 启用 Nanite 网格体.33
2.6 用光照来点亮世界.34
2.6.1 灵活使用眼部适应功能.34
2.6.2 让太阳光照亮整个关卡.35
2.6.3 用天空光为暗处增加亮度.36
2.6.4 添加局部光源37
2.6.5 为动态间接光照提供支持的 Lumen 系统37
2.6.6 烘焙静态光源、固定光源的间接光照38
2.6.7 使用 Lumen 计算场景中的反射.39
2.7 为游戏添加白云和蓝天.40
2.7.1 使用云和雾来增加场景的朦胧感40
2.7.2 既是天空也是星球的大气层.41
2.8 为游戏添加山川和平原.42
2.8.1 在关卡中添加地形.42
2.8.2 雕刻地形44
2.8.3 绘制地形材质45
2.9 在陆地上添加大量植物.46
2.9.1 完成植物笔刷的设置.46
2.9.2 将植物绘制到网格体表面.47
第 3 章 绘制游戏的代码蓝图49
3.1 在游戏开始后出现主角.50
3.1.1 新建一个主角蓝图.50
3.1.2 让主角蓝图在游戏开始后生效52
3.2 给网格体添加物理碰撞.53
3.2.1 启用网格体的物理模拟.53
3.2.2 修改网格体的碰撞形态.54
3.2.3 自定义网格体的碰撞逻辑.55
3.3 在屏幕上显示“Hello World!”56
3.3.1 游戏开始在屏幕上显示一行文字56
3.3.2 游戏开始在屏幕上滚动显示文字56
3.3.3 小球下落撞击地面后在屏幕上显示文字58
3.3.4 按【Q】键在屏幕上显示文字.59
3.4 控制小球动起来61
3.4.1 给小球增加一个前进的冲量.61
3.4.2 用 Macro(宏)和自定义事件将节点“打包”.62
3.4.3 使用 Timeline(时间轴)持续施加冲量63
3.5 小球吃金币得分64
3.5.1 放置一些会自动旋转的金币.64
3.5.2 用重叠事件判断金币触碰小球后让金币消失.66
3.5.3 累计分数与结束游戏.68
3.6 达到一定分数后进入下一关.69
3.6.1 在游戏中切换至新建的 Level.69
3.6.2 保持游戏 Level 之间设置的一致性.70
3.6.3 存储关键信息并在下一关开始时读取71
3.6.4 从多个出生点中选择一个进入下一关72
3.7 编辑蓝图在关卡中设置机关.74
3.7.1 自动往复运动的踏板.74
3.7.2 用小球来启动踏板的移动.76
3.7.3 用 Event Dispatcher(事件分发器)改写火盆蓝图77
3.7.4 用 Blueprint Interface(蓝图接口)改写火盆蓝图.79
3.7.5 区别使用类型转换、事件分发器、蓝图接口.82
第 4 章 搭建玩家控制界面84
4.1 制作一个显示当前得分的 UI85
4.1.1 新建一个控件蓝图.85
4.1.2 添加文本控件并调整其位置.86
4.1.3 把半成品的 UI 显示在屏幕上87
4.1.4 修改文本控件的内容让其显示得分87
4.1.5 美化文本控件的显示内容.89
4.2 在 UI 中显示游戏进行时间.90
4.2.1 把所有控件按一定的叠放顺序排列90
4.2.2 编写一个计时器来显示当前用时91
4.2.3 让进度条调用时间变量.93
4.3 制作保存和读取游戏进度的界面94
4.3.1 做一个保存和读取的 UI94
4.3.2 在 UI 弹出时添加一个