描述
开 本: 16开纸 张: 胶版纸包 装: 组合包装是否套装: 否国际标准书号ISBN: 29783865
《Unreal Engine、Substance Painter、Maya游戏开发完全学习教程 UE5书籍 SP 虚幻5 3A游戏引擎》
制作一款属于自己的游戏,一直是许多青少年的梦想。越来越多的新手想投身游戏开发行业 ,学着用虚幻引擎制作游戏,而在游戏引擎之外,游戏产业的各个角落都在发生着新的发展,比如像Substance Suite这样的软件以创新的方式解决了纹理的处理过程。学会利用不同的软件和平台制作、开发游戏,可以达到事半功倍的效果。来跟随本书,学会选择和使用不同的工具,制作一款完整的、引人入胜的游戏吧!通过教读者构建完整的可执行游戏,全面讲解利用UE5、Substance、Maya等工具进行游制作方法,步骤都有图片参考和详细参数标注,即使是新手也能轻松掌握执行制作游戏完整流程的诀窍!
《Unreal Engine 5 C 游戏开发完全学习教程》
虽然Unreal Engine 4时代推出的蓝图功能使得虚幻引擎变得更加新手友好,但是如果想要全面探索虚幻引擎的强大功能,学会使用C 语言是无法绕开的关键部分。利用C 语言,可以制作出更加精美的游戏作品,为你打开新世界的大门。
通过教读者构建几个功能完备的可执行游戏,全面讲解UE5 C 游戏开发方法,步骤都有图片参考和详细参数标注,即使是新手也能轻松掌握游戏开发的诀窍!
《Unreal Engine 5 蓝图可视化脚本游戏开发完全学习教程》
“不精通编程语言能做游戏开发吗?”这是很多刚迈入游戏开发大门的“小白”们所担心的问题。答案是“能!”–Unreal Engine 5(虚幻引擎 5)也为非专业编程人员提供了强大的“蓝图”功能。不必理会那些枯燥的命令和函数,“小白”也能轻松做游戏!英国科技类书籍出版专家Packet为读者献上神奇的Unreal Engine 5蓝图游戏开发指南!
Unreal Engine 5“蓝图”功能详解,用通俗易懂的语言带你进入游戏开发的大门。通过教读者构建一个功能完备的可执行游戏,全面讲解蓝图功能,步骤都有图片参考和详细参数标注,告别让人眼花缭乱的命令和函数,即使不懂编程语言,也能轻松掌握游戏开发的诀窍!
《Unreal Engine、Substance Painter、Maya游戏开发完全学习教程 UE5书籍 SP 虚幻5 3A游戏引擎》
本书旨在帮助想要开始游戏开发之旅却不确定起点和方向的初学者。作为读者,本书将带您进入一个条理清晰的学习轨道,引导您全面了解游戏开发的各个方面。本书还能够让您远离干扰,专注于基本原理,从而为您的游戏开发奠定坚实的基础,并且能够在不失去整体把握的情况下深入探究细节。本书涵盖了游戏开发的各个方面,包括但不限于以下内容:环境建模环境建、角色建模、UV映射、贴图、绑定、角色动画、游戏引擎中的光照和烘焙、游戏编程
此外,我们还将对音频和视觉特效的解决方案,以及其他关键细节进行介绍。阅读本书后,
您将全面掌握制作一款出色游戏所需的一切知识。
《Unreal Engine 5 C 游戏开发完全学习教程》
本书可以让我们沉浸在虚幻的游戏项目中,由行业内四位经验丰富的专业人士撰写,他们有着多年的虚幻引擎开发经验。本书将帮助我们亲身体验游戏项目创作,并了解最新版本的虚幻引擎。首先介绍了虚幻编辑器和关键概念,如Actor、蓝图、动画、继承和玩家输入。然后,进入第一个项目:构建躲避球游戏。在此过程中,我们将学习射线检测、碰撞、投射物、用户界面和音效的概念。第二个项目是横版动作游戏,在游戏的制作过程中我们将理解动画混合、敌人人工智能(AI)、生成对象和收集物品等概念。第三个项目是一款第一人称射击游戏,游戏涵盖创建多人游戏的关键概念。学完本书,我们将对如何使用虚幻引擎提供的工具来构建自己的游戏有一个全面的了解。
《Unreal Engine 5 蓝图可视化脚本游戏开发完全学习教程》
虚幻引擎的蓝图可视化脚本系统可以让设计师非常便捷地为游戏编写脚本,同时允许程序员创建可由设计师扩展的基本元素。在这本书中,我们将探索蓝图编辑器的所有功能,并了解相关的专家提示、快捷方式和最佳实践。
本书将指导我们使用变量、宏和函数,并帮助我们学习面向对象编程(OOP)。我们将了解
游戏框架,并深入学习如何通过蓝图通信使一个蓝图访问另一个蓝图的信息。后面的章节将重点介绍如何一步一步地构建一个功能齐全的游戏。我们将从一个基本的第一人称射击游戏模板开始,每一章都以此为基础,创建出越来越复杂和强大的游戏体验。然后,我们将从创建基本的射击机制发展到更复杂的系统,如用户界面元素和智能敌人行为等。本书演示了如何使用数组、映射、枚举和向量运算,并介绍了虚拟现实游戏开发所需的元素。在最后的章节中,我们将学习如何实现过程生成和创建产品配置器。
在本书的结尾,我们将学会如何构建一款功能完备的游戏,并具备为用户开发有趣体验所需的技能。
《Unreal Engine、Substance Painter、Maya游戏开发完全学习教程 UE5书籍 SP 虚幻5 3A游戏引擎》
第1章 Maya 建模
1.1 Maya主界面导览
1.2 渲染
1.3 什么是3D模型?
1.4 变换工具
1.5 模型剖析
1.5.1 边
1.5.2 顶点
1.5.3 面
1.5.4 对象模式
1.5.5 法线
1.6 建模规则
1.6.1 多边形计数
1.6.2 拓扑
1.6.3 尺寸和比例
1.7 建模基础
1.8 教程安全摄像头建模
1.9 其他有用的命令
1.10 扩大和缩小所选内容
1.11 提取面
1.12 结合和分离
1.13 创建电缆或管道
1.14 沿曲线挤出
1.15 复制对象
1.16 特殊复制
1.17 镜像
1.18 中心枢轴
1.19 更改枢轴
1.20 捕捉
1.21 隐藏模式
1.22 视图控制
1.23 示例
1.24 几何误差
1.25 教程模块化组件
1.26 栅格
1.27 创建底板
1.28 总结
第2章 Maya UV集
2.1 UV编辑器
2.2 UV坐标
2.3 UV平铺
2.4 切割UV
2.5 问题
2.6 地板UV
2.7 纹理密度
2.8 选择正确的纹理密度
2.9 UV吊舱
2.10 总结
第3章 纹理集
3.1 PBR
3.2 烘焙
3.3 教程模块化部件的纹理
3.4 Substance Painter主界面
3.5 导航
3.6 光照方向
3.7 环境遮挡
3.8 PBR材质通道
3.9 生成器
3.10 色阶
3.11 任务:对其余模型进行纹理处理
3.12 总结
第4章 创建关卡资产
4.1 游戏引擎
4.2 虚幻引擎
4.3 教程获取虚幻引擎,启动并运行Visual Studio
4.4 Visual Studio
4.5 虚幻编辑器界面
4.6 导航
4.7 教程将资产导入到虚幻引擎并创建材质
4.8 材质编辑器
4.9 R、G、B、A颜色通道
4.10 材质实例
4.11 教程创建走廊模型
4.12 教程为材质设置参数
4.13 Actor
4.14 移动性
4.15 总结
第5章 关卡创建
5.1 教程创建关卡的内部
5.2 任务
5.3 教程创建景观关卡
5.4 Quixel Megascan生态系统
5.5 教程设置Quixel Bridge
5.6 教程创建景观材质
5.7 材质函数
5.8 教程在景观上放置三维资产
5.9 总结
第6章 光照和烘焙
6.1 烘焙
6.2 光照贴图
6.3 光照贴图UV
6.4 光照贴图分辨率
6.5 光照贴图密度
6.6 体积光照贴图
6.7 移动性
6.8 教程光照贴图分辨率
6.9 全局光照重要体积
6.10 降低烘焙质量,实现快速迭代
6.11 教程调整光照
6.12 教程添加后期处理和其他效果
6.13 后期处理盒子
6.14 任务
6.15 总结
第7章 角色建模
7.1 概念设计
7.2 样式表
7.3 工作流程
7.4 多边形计数
7.5 在Maya中设置图像平面
7.6 眼球
7.7 眼睑
7.8 眼窝
7.9 额头和鼻子
7.10 嘴巴
7.11 头部的其余部分
7.12 耳朵
7.13 颈部
7.14 内部结构
7.15 身体
7.16 头发
7.17 武器
7.18 最后的清理操作
7.19 总结
第8章 UV贴图
8.1 UV贴图
8.2 教程角色UV贴图
8.3 网格检查和清理
8.4 角色身体的UV贴图
8.5 眼睛的UV贴图
8.6 头发的UV贴图
8.7 服装的UV贴图
8.8 总结
第9章 角色纹理绘画
9.1 皮肤纹理
9.2 头发
9.3 眼睛
9.4 上半身
9.5 裤子
9.6 带子、皮带、口袋、皮套和靴子
9.7 手套
9.8 手表
9.9 枪
9.10 其他细节
9.11 导出纹理
9.12 总结
第10章 绑定
10.1 关节的作用
10.2 关节创建—髋关节、脊柱、颈部和头部
10.3 教程为角色创建联合链
10.4 世界关节
10.5 关节创建—左臂
10.6 关节创建—右臂
10.7 关节创建—腿部
10.8 脚环绑定
10.9 创建脚的层级结构
10.10 教程绑定并绘制蒙皮权重
10.11 绘制蒙皮权重
10.12 镜像蒙皮权重
10.13 复制蒙皮权重
10.14 教程创建手臂控制器
10.15 约束
10.16 创建IK手臂
10.17 教程手指控制器
10.18 教程锁骨和身体的控制器
10.19 为武器(枪)创建关节
10.20 最终的层级结构
10.21 总结
第11章 Maya中的FPS动画
11.1 FPS动画概述
11.2 引用角色绑定
11.3 保存文件
11.4 显示层
11.5 摄影机配置
11.6 游戏动画
11.7 创建姿势
11.8 简化武器移动
11.9 双手握住武器设置
11.10 帧速率
11.11 空闲动画
11.12 清理奇怪的抖动
11.13 缓入和缓出
11.14 曲线图编辑器
11.15 关键字旁白
11.16 攻击动画
11.17 行走动画
11.18 关于“被抓住”动画
11.19 关键字旁白
11.20 重新加载动画
11.21 考虑因素和总结
第12章 虚幻角色资产创建
12.1 教程导入角色资产
12.2 骨骼网格体、骨架和物理资产
12.3 次表面散射
12.4 教程导出FPS动画
12.5 烘焙动画
12.6 教程动作捕捉数据
12.7 教程动画重定向
12.8 总结
第13章 编程基础
13.1 相关的编程语言(从难到易)C
13.1.1 C#
13.1.2 Python
13.1.3 蓝图
13.2 教程创建用户界面
13.3 事件图表
13.4 执行引脚和执行顺序
13.5 GameMode
13.6 函数
13.7 机器代码、源代码和编译
13.8 教程重构负载关卡机制
13.9 变量
13.10 变量类型
13.11 内置变量类型
13.12 自定义变量类型
13.13 教程制作一个滑动门类
13.14 父类
13.15 角色
13.16 碰撞
13.17 类型转换
13.18 总结
第14章 玩家角色
14.1 教程创建第一人称射击角色
14.2 Pawn和角色
14.3 Roll、Yaw、Pitch
14.4 控制器
14.5 玩家控制器
14.6 AI控制器
14.8 教程设置动画
14.8 动画蓝图
14.8.1 事件图表
14.8.2 动画图表
14.9 向量
14.10 状态机
14.11 游戏模式
14.12 玩家控制器/控制器/AI控制器
14.13 Actor
14.14 Pawn
14.15 角色
14.16 骨骼网格体
14.17 动画蓝图
14.18 控件蓝图
第15章 武器
15.1 教程创建一个基础武器类
15.2 插槽
15.3 Owner
15.4 Instigator
15.5 Persona
15.6 动画蒙太奇
15.7 注释框
15.8 教程武器攻击冷却时间
15.9 枚举
15.10 教程武器伤害
15.11 数组
15.12 循环
15.13 总结
第16章 生命值和伤害值
16.1 教程创建一个生命值组件
16.2 Actor组件
16.3 教程角色的命中和死亡
16.4 教程生命值恢复
16.5 总结
第17章 背包和用户界面
17.1 教程武器拾取
17.2 教程武器切换
17.3 教程创建游戏中武器的用户界面
17.4 控件切换器
17.5 画布面板
17.6 锚点
17.7 对齐
17.8 教程创建生命值状态条
17.9 教程在Ul上创建暂停和结束游戏
17.10 任务
17.11 结论
第18章 安全摄像头
18.1 教程在C 中实现一个AISeer.
18.2 头文件和源文件
18.3 教程通过继承C 版本创建AlSeer的蓝图版本
18.4 教程创建安全摄像头
18.5 教程创建一个BP_Monitor类,用于显示摄像机所看到的内容
18.6 结构
18.7 结论
第19章 巡逻AI
19.1 教程创建巡逻Al角色
19.2 教程为巡逻AI创建AI控制器和行为树
19.3 黑板与行为树
19.4 缓存姿势
19.5 结论
第20章 Boss
20.1 教程创建Boss类
20.2 教程Boss攻击
20.3 教程Boss的死亡与胜利
20.4 结论
第21章 音频和视觉特效
21.1 教程为游戏添加音频
21.2 教程为游戏添加额外的视觉特效
21.3 结论
第22章打包
22.1 教程为Windows打包游戏
22.2 结论
索引
《Unreal Engine 5 C 游戏开发完全学习教程》
第1章 虚幻引擎简介
1.1 技术要求
练习1.01 创建虚幻引擎5项目
1.2 了解虚幻引擎编辑器
1.3 浏览编辑器窗口
1.4 “视口”选项卡
1.5 操作actor
练习1.02 在关卡中添加和删除actor
1.6 理解蓝图actor
练习1.03 创建蓝图actor
1.7 蓝图编辑器
1.8 “事件图表”选项卡
练习1.04 创建蓝图变量
练习1.05 创建蓝图函数
1.9 理解Multiply节点
1.10 探索BeginPlay和Tick事件
练习1.06 在Z 轴上偏移TestActor类
1.11 BP_ThirdPersonCharacter蓝图类
1.12 探索网格体和材质的使用
1.12.1 网格体
1.12.2 材质
1.13 在虚幻引擎5中设置材质
活动1.01 在Z 轴上无限推动TestActor
1.14 本章总结
第2章 使用虚幻引擎
2.1 技术要求
2.2 创建并设置一个空白C 项目
练习2.01 创建一个空的C 项目
2.3 在虚幻引擎中内容文件夹的结构
2.4 使用Visual Studio解决方案
在Visual Studio中调试代码
练习2.02 调试第三人称游戏模板代码
2.5 导入所需资产
练习2.03 导入角色FBX文件
2.6 虚幻引擎游戏模式类
2.6.1 游戏模式的默认类
2.6.2 游戏事件
2.6.3 网络
2.6.4 游戏模式基础与游戏模式
2.6.5 关卡和关卡蓝图
2.6.6 虚幻引擎Pawn类
2.6.7 玩家控制器类
练习2.04 设置游戏模式、玩家控制器和Pawn类
2.7 使用动画
2.7.1 动画蓝图
2.7.2 “事件图表”选项卡
2.7.3 AnimGraph
2.7.4 状态机
2.7.5 过渡规则
2.7.6 混合空间
练习2.05 创建人体模型动画
活动2.01 将动画链接到角色
2.8 本章总结
第3章 角色类组件和蓝图设置
3.1 技术要求
3.2 虚幻引擎角色类
扩展角色类
练习3.01 创建和设置第三人称角色C 类
3.3 用蓝图扩展C 类
练习3.02 使用蓝图扩展C
活动3.01 在动画项目中使用蓝图扩展C 角色类
3.4 本章总结
第4章 玩家输入入门
4.1 技术要求
4.2 理解输入操作和输入映射情境
练习4.01 创建移动和跳跃输入操作
4.3 处理玩家输入 77
练习4.02 监听移动和跳跃输入操作
围绕角色转动摄像机
活动4.01 为角色添加行走逻辑
4.4 本章总结
第5章 射线检测
5.1 技术要求
5.2 碰撞简介
5.3 设置项目
练习5.01 将DodgeballCharacter转换为俯视的视角
5.4 理解射线检测
5.5 创建EnemyCharacter C 类
练习5.02 创建执行射线检测的CanSeeActor函数
5.6 可视化射线检测
练习5.03 创建LookAtActor函数
5.7 创建EnemyCharacter蓝图类
5.8 扫掠检测
练习5.04 执行扫掠检测
5.8.1 更改可见性检测响应
5.8.2 多射线检测
5.8.3 摄像机检测通道
练习5.05 创建一个自定义的EnemySight检测通道
活动5.01 创建SightSource属性
5.9 本章总结 109
第6章 设置碰撞对象
6.1 技术要求 111
6.2 理解虚幻引擎5中的物体碰撞 111
6.2.1 理解碰撞组件
6.2.2 理解碰撞事件
6.2.3 理解碰撞通道
练习6.01 创建Dodgeball类
6.3 创建物理材质
练习6.02 将ProjectleMovementComponent添加到
DodgeballProjectile中
6.3.1 定时器简介
6.3.2 理解如何生成actor
练习6.03 向EnemyCharacter类添加投掷逻辑
6.4 创建Wall类
练习6.04 创建Wall类
6.5 创建VictoryBox actor
练习6.05 创建VictoryBox类
练习6.06 给DodgeballProjectile类中添加ProjectileMovementComponent的
getter函数
活动6.01 将SpawnActor函数替换为EnemyCharacter中引用的
SpawnActorReference函数
6.6 本章总结
第7章 使用虚幻引擎5中的实用工具
7.1 技术要求
7.2 好的实践——松耦合
7.3 蓝图函数库
练习7.01 将CanSeeActor函数移动到蓝图函数库中
7.4 Actor组件
练习7.02 创建HealthComponent的Actor组件
练习7.03 集成HealthComponent Actor组件
7.5 探索接口
7.6 蓝图本地事件
练习7.04 创建HealthInterface类
活动7.01 将LookAtActor逻辑移到Actor组件
7.7 本章总结
第8章 使用UMG创建用户界面
8.1 技术要求
8.2 游戏用户界面
8.3 UMG基础知识
练习8.01 创建控件蓝图
8.3.1 锚点的简介
练习8.02 编辑UMG锚点
练习8.03 创建RestartWidget C 类
练习8.04 创建将RestartWidget类添加到屏幕的逻辑
练习8.05 创建DodgeballPlayerController蓝图类
8.3.2 理解进度条
练习8.06 创建生命值进度条的C 逻辑
活动8.01 改进RestartWidget类
8.4 本章总结
第9章 添加音视频元素
9.1 技术要求
9.2 虚幻引擎5中的音频
练习9.01 导入音频文件
练习9.02 当躲避球从地面反弹时播放声音
音效衰减
练习9.03 将反弹声音转换成3D声音
练习9.04 为游戏添加背景音乐
9.3 理解粒子系统
练习9.05 当躲避球击中玩家时生成粒子系统.
活动9.01 躲避球击中玩家时播放声音
9.4 探索关卡设计
练习9.06 创建关卡框架
9.5 额外的功能
9.6 本章总结
第10章 创建超级横版动作游戏
10.1 技术要求
10.2 项目分解
玩家角色
10.3 将第三人称游戏模板转换为横版动作
练习10.01 创建横版动作项目并使用角色移动组件
活动10.01 让角色跳得更高
10.4 探索横版动作游戏的功能
10.4.1 敌人角色
10.4.2 升级
10.4.3 收集品
练习10.02 探索人物角色编辑器并操作默认的人体模型骨骼权重
活动10.02 骨骼的操作和动画
10.5 理解虚幻引擎5中的动画
10.5.1 骨骼
10.5.2 骨骼网格体
10.5.3 动画序列
练习10.03 导入和设置角色和动画
活动10.03 导入更多自定义动画以预览角色运行
10.6 本章总结
第11章 使用混合空间1D、键绑定和状态机
11.1 技术要求
11.2 创建混合空间
混合空间1D与普通混合空间
练习11.01 创建角色移动混合空间1D
活动11.01 添加Walking和Running动画到混合空间
11.3 主角动画蓝图
动画蓝图
练习11.02 将混合空间添加到角色动画蓝图
11.4 速度向量是什么
练习11.03 将角色的Speed变量传递到混合空间
活动11.02 预览在游戏中运行的动画
11.5 增强型输入系统
练习11.04 为冲刺添加输入
练习11.05 修改角色蓝图
练习11.06 编码角色的冲刺功能
活动11.03 实现投掷输入
11.6 使用动画状态机
练习11.07 玩家角色移动和跳跃状态机
过渡规则
练习11.08 将状态和过渡规则添加到状态机
练习11.09 Time Remaining Ratio函数
活动11.04 完成Movement和Jumping状态机
11.7 本章总结
第12章 动画混合和蒙太奇
12.1 技术要求
12.2 动画混合、动画插槽和动画蒙太奇
练习12.01 设置动画蒙太奇
12.3 动画蒙太奇
练习12.02 在蒙太奇中添加Throw动画
12.4 动画插槽管理器
练习12.03 添加新的动画插槽
12.5 Save Cached Pose节点
练习12.04 移动状态机中应用Save Cached Pose节点
12.6 Layered blend per bone
练习12.05 将动画与上半身动画插槽混合
练习12.06 预览Throw动画
12.7 超级横版动作游戏中的敌人
练习12.07 创建敌人基础C 类
练习12.08 创建和应用敌人动画蓝图
12.8 材质和材质实例
练习12.09 创建并应用敌人材质实例
活动12.01 更新混合权重
12.9 本章总结
第13章 创建和添加敌人人工智能
13.1 技术要求
13.2 敌人人工智能
13.3 AI控制器
自动拥有人工智能
练习13.01 实现AI控制器
13.4 导航网格体
练习13.02 为人工智能敌人实现导航网格体
13.5 重新生成导航网格体
练习13.03 重新生成导航网格体体积参数
活动13.01 创建新关卡
13.6 行为树和黑板
13.6.1 任务
13.6.2 装饰器
13.6.3 服务
练习13.04 创建人工智能行为树和黑板
练习13.05 创建新的行为树任务
练习13.06 创建行为树逻辑
活动13.02 人工智能移动到玩家的位置
练习13.07 创建敌人巡逻点
13.7 向量变换
练习13.08 在数组中选择一个随机点
练习13.09 引用巡逻点actor
练习13.10 更新BTTask_FindLocation任务
13.8 玩家投射物
练习13.11 创建玩家投射物
练习13.12 初始化PlayerProjectile类的设置
活动13.03 创建玩家投射物蓝图
13.9 本章总结
第14章 生成玩家投射物
14.1 技术要求
14.2 动画通知和动画通知状态
练习14.01 创建UAnimNotify类
练习14.02 将新通知添加到Throw动画蒙太奇
14.3 播放动画蒙太奇 322
14.3.1 在蓝图中播放动画蒙太奇
14.3.2 在C 中播放动画蒙太奇
练习14.03 在C 中播放Throw动画
练习14.04 创建投射物生成插槽
练习14.05 准备SpawnProjectile()函数
练习14.06 更新Anim_ProjectleNotify类
14.4 摧毁actor
练习14.07 创建DestroyEnemy()函数
练习14.08 摧毁投射物
活动14.01 允许投射物摧毁敌人
14.5 理解和实现视觉和音频特效
14.5.1 视觉特效(VFX)
14.5.2 音频特效(SFX)
练习14.09 添加敌人被摧毁时的效果
练习14.10 为玩家的投射物添加效果
练习14.11 为投射物添加视觉特效和音频特效
活动14.02 增加投射物被摧毁时的效果..
14.6 本章总结
第15章 探索收集品、能量升级和拾取物
15.1 技术要求 3
15.2 理解URotatingMovementComponent
练习15.01 创建PickableActor_Base类并添加URotatingMovement-Component
活动15.01 在PickableActor_Base中检测玩家重叠和生成效果
练习15.02 创建PickableActor_Collectable类
活动15.02 完成PickableActor_Collectable actor
15.3 使用UE_LOG记录变量
练习15.03 记录玩家金币的数量
15.4 介绍虚幻动态图形UI
理解“文本”控件
练习15.04 创建金币计数器UI HUD元素
15.5 添加和创建UMG用户控件
练习15.05 添加金币计数器UI到玩家屏幕
15.6 使用计时器
练习15.06 为玩家添加药剂的能量升级行为
活动15.03 创建药剂升级actor
练习15.07 创建Brick类
练习15.08 添加Brick类的C 逻辑
15.7 本章总结
15.8 额外的挑战
第16章 多人游戏基础
16.1 技术要求
16.2 多人游戏基础知识
16.3 理解服务器
16.3.1 专用的服务器
16.3.2 监听服务器
16.4 理解客户端394
练习16.01 在多人游戏中测试第三人称游戏模板
16.5 打包项目
16.6 探索连接和所有权
16.7 理解角色
16.7.1 服务器上生成actor
16.7.2 客户端上生成actor
16.7.3 服务器上生成玩家拥有的pawn
16.7.4 客户端上生成玩家拥有的pawn
练习16.02 实现所有权和角色
16.7.5 服务器窗口的输出
16.7.6 服务器角色(Server Character)
16.7.7 客户端1角色(Client 1 Character)
16.7.8 OwnershipTest actor
16.7.9 客户端(Client 1)窗口的输出
16.8 理解变量复制
16.8.1 复制变量
练习16.03 使用Replicated、ReplicatedUsing、DOREPLIFETIME和DOREPLIFETIME_CONDITION复制变量
16.8.2 服务器窗口的输出
16.8.3 客户端1窗口的输出
16.9 探索2D混合空间
练习16.04 创建一个运动的2D混合空间
16.10 Transform (Modify) Bone节点
练习16.05 创建能上下查看的角色
活动16.01 为多人第一人称射击游戏项目创建角色
16.11 本章总结
第17章 使用远程过程调用
17.1 技术要求
17.2 理解远程过程调用
17.2.1 服务器RPC.
17.2.2 多播RPC
17.2.3 客户端RPC
17.2.4 使用RPC时的重要注意事项
练习17.01 使用远程过程调用
17.3 向编辑器公开枚举
17.3.1 TEnumAsByte
17.3.2 UMETA
17.3.3 BlueprintType
练习17.02 在编辑器中使用C 枚举
17.4 使用数组索引包装
练习17.03 使用数组索引包装在枚举之间循环
活动17.01 为多人第一人称射击游戏添加武器和弹药.
17.5 本章总结
第18章 在多人游戏中使用游戏玩法框架类
18.1 技术要求
18.2 在多人游戏中访问游戏玩法框架实例
练习18.01 显示游戏玩法框架实例值
18.2.1 服务器窗口的输出
18.2.2 客户端1窗口的输出
18.3 使用游戏模式、玩家状态和游戏状态
18.3.1 游戏模式
18.3.2 玩家状态
18.3.3 游戏状态.
18.3.4 有用的内置函数
练习18.02 制作一个简单的多人拾取游戏
活动18.01 在多人第一人称射击游戏中添加死亡、重生、计分板、杀戮限制和拾取
18.4 本章总结
《Unreal Engine 5 蓝图可视化脚本游戏开发完全学习教程》
第1部分 蓝图的基本知识
第1章 探索蓝图编辑器
1-1 安装虚幻引擎
1-2 创建新项目和使用模板
1-3 蓝图可视化编程
1.3.1 打开关卡蓝图编辑器
1.3.2 创建蓝图类
1-4 蓝图类编辑器界面
1.4.1 工具栏
1.4.2 “ 组件”面板
1.4.3 “ 我的蓝图”面板
1.4.4 “ 细节”面板
1.4.5 “ 视口”选项卡
1.4.6 “ 事件图表”选项卡
1-5 在蓝图中添加组件
1-6 本章总结
1-7 测试
第2章 使用蓝图编程
2-1 使用变量存储数值
2-2 使用事件和动作定义蓝图的行为
2.2.1 事件
2.2.2 动作
2.2.3 执行路径
2-3 使用运算符创建表达式
2.3.1 算术运算符
2.3.2 关系运算符
2.3.3 逻辑运算符
2-4 用宏和函数组织编程
2.4.1 创建宏
2.4.2 创建函数
2.4.3 分步示例
2.4.4 宏、函数和事件
2-5 本章总结
2-6 测试
第3章 面向对象编程和游戏框架
3-1 熟悉面向对象编程(OOP)
3.1.1 类
3.1.2 实例
3.1.3 继承
3-2 管理Actor类
3.2.1 引用Actor
3.2.2 催生和毁灭Actor
3-3 构造脚本
3-4 探索其他游戏框架类
3.4.1 Pawn类
3.4.2 Character类
3.4.3 玩家控制器
3.4.4 游戏模式基础
3.4.5 游戏实例
3-5 本章总结
3-6 测试
第4章 理解蓝图通信
4-1 直接蓝图通信
4-2 蓝图的继承
4-3 关卡蓝图通信
4-4 事件分发器
4-5 绑定事件
4-6 本章总结
4-7 测试
第2部分 开发游戏
第5章 与蓝图的对象交互
5-1 创建项目和第一个关卡
5-2 在关卡中添加对象
5-3 探索材质
5.3.1 创建材质
5.3.2 材质的属性和节点
5.3.3 为材质添加属性
5-4 创建目标蓝图
5.4.1 检测命中
5.4.2 交换材质
5.4.3 升级蓝图
5-5 让目标圆柱体移动
5.5.1 改变角色的移动和碰撞
5.5.2 分解目标
5.5.3 准备计算方向
5.5.4 使用Delta Seconds获取相对速度
5.5.5 更新位置
5-6 周期性改变目标的方向
5-7 本章总结
5-8 测试
第6章 增强玩家能力
6-1 添加运动功能
6.1.1 分解角色动作
6.1.2 自定义控制输入
6.1.3 添加冲刺功
6-2 设置缩放视图的效果
6-3 增加子弹的速度
6-4 添加声音和粒子效果
6.4.1 用分支改变目标状态
6.4.2 触发声音效果、爆炸和摧毁
6-5 本章总结
6-6 测试
第7章 创建屏幕UI元素
7-1 使用UMG创建简单的UI
7.1.1 使用控件蓝图绘制形状
7.1.2 自定义仪表的外观
7.1.3 创建弹药和目标摧毁计数
7.1.4 显示HUD
7-2 将UI值连接到玩家变量
7.2.1 为生命值和耐力创建绑定
7.2.2 为弹药和目标消除计数器创建文本绑定
7-3 获取子弹和摧毁目标的信息
7.3.1 减少子弹计数
7.3.2 增加摧毁目标的计数
7-4 本章总结
7-5 测试
第8章 创造约束和游戏目标
8-1 限制玩家的行为
8.1.1 消耗和恢复体力
8.1.2 弹药耗尽时禁止开火
8-2 创建可收集物品
8-3 设置游戏获胜条件
8.3.1 在HUD中显示目标
8.3.2 创建获胜菜单屏幕
8.3.3 显示WinMenu
8.3.4 触发胜利
8-4 本章总结
8-5 测试
第3部分 增强游戏
第9章 用人工智能构建智能敌人
9-1 设置敌方角色的导航
9.1.1 从虚幻商城导入资源
9.1.2 扩展游戏区域
9.1.3 使用NavMesh制作导航
9.1.4 创建AI资产
9.1.5 设置BP_EnemyCharacter蓝图
9-2 创建导航行为
9.2.1 设置巡逻点
9.2.2 创建黑板键
9.2.3 创建BP_EnemyCharacter中的变量
9.2.4 更新当前巡逻键
9.2.5 重叠巡逻点
9.2.6 在AI控制器中运行行为树
9.2.7 让AI通过行为树学会行走
9.2.8 选择BP_EnemyCharacter实例中的巡逻点
9-3 让智能敌人追逐玩家 164
9.3.1 赋予敌人视觉感知能力
9.3.2 创建行为树任务
9.3.3 向行为树添加条件
9.3.4 创造追逐行为
9-4 本章总结
9-5 测试
第10章 升级AI敌人
10-1 创建敌人的攻击功能
10.1.1 创建攻击任务
10.1.2 使用行为树中的攻击任务
10.1.3 更新生命值
10-2 让敌人听到声音并识别位置
10.2.1 将听觉添加到行为树
10.2.2 设置调查任务
10.2.3 创建变量和宏来更新黑板.
10.2.4 解释和存储噪声事件数据
10.2.5 为玩家的动作添加噪声
10-3 摧毁敌人
10-4 在游戏过程中生成更多的敌人
10-5 创建敌人的巡逻行为
10.5.1 使用自定义任务识别巡逻点
10.5.2 在行为树中添加巡逻状态
10.5.3 最后的调整和测试
10-6 本章总结
10-7 测试
第11章 游戏状态和收尾工作
11-1 引入玩家死亡机制
11.1.1 设计游戏失败时显示的信息
11.1.2 显示失败时的屏幕
11-2 使用保存的游戏创建回合机制 196
11.2.1 使用SaveGame类存储游戏信息
11.2.2 保存游戏信息
11.2.3 加载游戏信息
11.2.4 增加目标
11.2.5 创建在回合之间显示的过渡画面
11.2.6 当前回合获胜时过渡到新回合
11-3 暂停游戏并重置保存文件
11.3.1 创建暂停菜单
11.3.2 恢复游戏
11.3.3 重置保存文件
11.3.4 触发暂停菜单
11-4 本章总结
11-5 测试
第12章 构建和发行
12-1 优化图形设置
12-2 与他人共享游戏
12-3 打包游戏
12-4 构建配置和打包设置
12-5 本章总结
12-6 测试
第4部分 高级蓝图
第13章 数据结构和流控制
13-1 探索不同类型的容器
13.1.1 数组
13.1.2 数组示例–创建BP_RandomShawer蓝图
13.1.3 测试BP_RandomSpawner
13-2 集
13-3 映射
13-4 探索其他数据结构
13.4.1 枚举
13.4.2 结构
13.4.3 数据表格
13-5 流控制节点
13.5.1 Switch节点
13.5.2 触发器
13.5.3 Sequence节点
13.5.4 For Each Loop节点
13.5.5 Do Once节点
13.5.6 Do N
13.5.7 Gate节点
13.5.8 MultiGate节点
13-6 本章总结
13-7 测试
第14章 检测节点
14-1 世界变换和相对变换 243
14-2 点和向量 245
14.2.1 向量的表示
14.2.2 向量的运算
14-3 检测和检测功能
14.3.1 对象检测
14.3.2 检测通道
14.3.3 形状检测
14.3.4 调试线
14.3.5 向量和检测节点示例
14-4 本章总结
14-5 测试
第15章 蓝图技巧
15-1 蓝图编辑器的快捷方式
15-2 蓝图的最佳实践
15.2.1 蓝图职责
15.2.2 管理蓝图的复杂性
15-3 使用其他蓝图节点
15.3.1 Select节点
15.3.2 Teleport节点
15.3.3 Format Text节点
15.3.4 Math Expression节点
15.3.5 Set View Target with Blend节点
15.3.6 AttachActorToComponent节点
15.3.7 Enable Input和Disable Input节点
15.3.8 Set Input Mode的节点
15-4 本章总结
15-5 测试
第16章 虚拟现实开发
16-1 探索虚拟现实模板
16-2 VRPawn蓝图
16-3 传送
16-4 抓取对象
16-5 蓝图使用接口进行通信
16-6 与菜单交互
16-7 本章总结
16-8 测试
第5部分 其他有用的工具
第17章 动画蓝图
17-1 动画概述
17.1.1 动画编辑器
17.1.2 骨骼和骨骼网格体
17.1.3 动画序列
17.1.4 混合空间
17-2 创建动画蓝图
17.2.1 事件图表
17.2.2 AnimGraph
17-3 探索状态机
17-4 导入动画初学者内容包
17-5 添加动画状态
17.5.1 修改角色蓝图
17.5.2 修改动画蓝图
17.5.3 定义过渡规则
17-6 本章总结
17-7 测试
第18章 创建蓝图库和组件
18-1 蓝图宏和函数库
18.1.1 蓝图函数库示例
18.1.2 创建第3个函数并进行测试
18-2 创建Actor组件
18-3 创建场景组件
18-4 本章总结
18-5 测试
第19章 程序化生成
19-1 使用构造脚本进行程序化生成
19-2 创建蓝图样条曲线
19-3 编辑器工具蓝图
19-4 本章总结
19-5 测试
第20章 使用变体管理器创建产品配置器
20-1 产品配置器模板
20-2 变量管理器和变体集
20-3 BP_Configurator蓝图
20-4 UMG控件蓝图
20-5 本章总结
20-6 测试
20-7 后记
第14章玩家角色
玩家角色是游戏的重要组成部分之一。到目前为止,我们正在使用第一人称射击游戏模板,因此可以在构建场景的同时进行探索。现在是时候创建自己的玩家角色了。毕竟,我们花费了很多时间制作自己的角色。虚幻引擎提供了一组类来帮助快速创建玩家角色。它提供了一个功能强大的框架,允许我们组织类和数据。我们将涵盖该框架的许多方面并在其上构建系统。尽管可以从头开始构建所有内容,但会非常耗时。除非想自己练习,否则这几乎没有任何优点。由于本书篇幅有限,所以这里尽可能选择使用预构建的系统。
14.1 教程 创建第一人称射击角色、
步骤01 为所有角色创建基类。切换到“Character”文件夹,右击选择“蓝图类”。在弹出的
“ 选取父类”对话框中选择“角色”,然后将新角色命名为“BP_Character_Base”。双击将其打开,在“组件”面板中选择“网格体”组件。切换到“细节”面板,在“网格体”折叠按钮下,将“骨骼网格体资产”设置为“Ellen_Skeletal_Mesh”。此时Ellen的身体会出现在视图中。将其向下移动,使她的脚在地面上并旋转“-90°”,使她的脸朝向蓝色箭头的方向,如图14-1所示。然后单击“编译”按钮和“保存”按钮。
步骤02 创建FPS角色。右击“BP_Character_Base”,选择“创建子蓝图类”,将子类命名为“BP_
Ellen_FPS”。双击打开它,在“组件”面板中选择“网格体”。切换到“细节”面板,将“骨骼网格体资产”设置为“Ellen_FPS_Skeletal_Mesh”。然后单击“编译”按钮和“保存”按钮。
步骤03 制作游戏模式。切换到“Blueprints/Gamemodes”文件夹中,右击空白区域,选择
“ 蓝图类”。在弹出的“选取父类”对话框中,选择“游戏模式基础”,将其重命名为“GM_
Ellen_FPS”。双击将其打开,切换到“细节”面板,在“类”折叠按钮中,将“默认pawn类”
设置为“BP_Ellen_FPS”,如图14-2所示。
14.2 Pawn和角色
Pawn是角色的父类。我们在第13章中提到了角色类,角色可以由玩家或Al控制,它有一个
骨骼网格体组件可以直观地表示,而且可以像人一样移动。角色是“FirstPersonCharacter”的父类,即当我们单击播放按钮时,机械手臂会握着枪。
评论
还没有评论。