本
文
摘
要
大家好,我叫人宅,目前工作上比较忙,更新内容会很不及时。
在这里简单的介绍一下关于UE4C++既基础又比较核心的技术,方便大家在开发游戏或者项目的时候有一丝借鉴。
UE4引擎是一个庞大,复杂,又井然有序的系统,如果你是一位游戏软件开发爱好者,在开发中有对某个模块,功能,架构无从下手,这款引擎绝对是一本非常优秀的教科书,当然,它并不是什么内容都包含了。既然要学习这款引擎,必备一颗敬畏的心。
在很多年前,人宅自己入门UE4的时候迫切的希望有一部能讲解比较全面的基础教程,最好是涉及到UE4游戏开发方方面面的教程,但很可惜,当年并没有这类型的教程和书籍,讲解的也是比较单一,除了蓝图,几个变量和函数,射线等,再没有类似的比较全面的内容,都是需要自己摸索,当年的官网,这方面内容十分缺少!
这个时间也过去很久。到现在很多模块都在摸索。这些基础应该在初学的时候就掌握的基础技能,学习了很多年的UE4程序员有的地方也不太了解,这也是极其正常的情况。这在开发中会十分阻碍,往往就陷入到了闭门造轮子的地步,等造出来发现UE4有这个功能。白白加班。
以下的内容适合转行过来想系统了解UE4的或者毕业生想从事UE4行业等新人;一.常用的变量:
这个是基础,没什么好解释,C和C++基础,必须搞懂这些基础东西,否则数据都不知道该怎么处理;
在这一章我们会讲解基础变量,bool,int等基础变量,同时会关联C++变量相对应的内容。
字符串的处理,也会在这一章讲解。同时会系统讲解FName ,FText,FString.所暴露给蓝图的函数节点。
字符串操作,切割字符串,(这个很重要,在做序列化和反序列化的时候知道应该怎么切割,知晓UE4蓝图字符串处理,使我们事半功倍,而不至于重新造轮子)。
还有基本的变化。
二.流程控制:
这个也是基础,比如for(;;) ,if() ,while ,do {}while()等基础内容,UE4蓝图由扩展了几个,比如DoOnce,阀门等;我们会用C++和蓝图结合的方式讲解这方面的内容,在学习蓝图的基本的同时可以了解C++里面对这些基本流程的控制。
三.容器:
C++标准模板库STL,里面拥有各种各样的容器,有C++基础的人基本上都清楚这些容器,不管怎么样还是要解释一下容器,容器是具有动态的数组,可以将变量存储在里面,用户不需要直接分配一块内存,只需要添加即可,完全可以当做黑盒使用,里面的细节都是由容器自己完成,等下次需要的时候取出;由于存储方式不同,存储内部原理不同,出现了各种容器,这是STL容器。UE4容器取其精华去其糟粕,将STL里面的容器总结为常用的三种容器它们分别是 TArray<>;TMap<>;TSet(当然还有很多容器,比如链表和队列等,目前的UE4版本暂时不支持蓝图版本的队列和链表);这些必须都要掌握.什么时候用TMap,什么时候用TArray,什么时候TSet;别看这些很简单,用不好,效率会变得很低。基础扎实的有经验的看看官网文档就能解决,但是基础薄弱的或者转行到计算机这个行业的新人,知识储备和经验没有到那个程度,官网很多技术内容 看不懂的,这个非常理解。
四.蓝图接口:
这一章我们主要讲解蓝图接口,什么是蓝图接口,就是我们的基础类暴露给上层蓝图使用的函数,事件函数,事件。比如GameMode,在多人游戏当中,它充当着服务端,里面有关于登陆,登出,开服和闭服,加入和T人的接口。了解这些接口,对我们架构UE4服务器非常有利。
同样Actor也有,Controller,UMG也有,它们都不同,而这一章我们就系统的聊聊这些接口的使用方式。
五.蓝图间的访问
这一章主要讲解关于蓝图间的通讯方式,如果你是新人,这章非常重要。
六.UE4组件
这一章节主要讲解UE4常用组件,在设计与架构里,有一种架构,装饰模式,UE4组件模式就是基于此,比如一个角色,它可以成为任何东西,一旦被分配了组件,它的意义就具体。
那我们形象一点,一个玩家控制的角色,它没有技能,所有的技能都是组件,我们给它安装了几个技能组件,它就有了这些组件的技能,去掉后就没有了。
基于此的架构下角色非常灵活,这就是UE4组件的威力。
我们了解了组件的架构,但是不清楚UE4自带的那些组件具体的意义,很容易导致自造轮子。这章节的目的就是为此而设立的,我们会讲解常用到的组件,帮您解决这方面疑惑,避免自造轮子,造成不必要的时间成本;
详细可以参考下面的目录。
七.数据库
UE4也有数据库.本地数据库,如果不考虑多并发,当然也可以作为线上数据库。
在我们架构服务器常常用到的数据库MySql,MySql主要提供了这几个功能 增删查改 ,我们可以基于UE4的序列化结构,实现一套自己的增删查改,以及多表联查,索引等;不仅如此,我们可以让它做的更多,比如支持Json,CSV,使策划修改这些表的属性后,我们能及时更新到这些基础属性。
这个章节我们会讲解这方面的内容,方便入门的同学尽快了解这些概念。
八.UE4服务端和客户端
这一章我们会像讲解UE4服务端和客户端相关架构下的基础内容。比如UE4提供的RPC,游戏中的开房的概念。
我们还会讨论UE4下服务端和客户端通信原理,帮助学员理解什么是同步,复制,多播,所有权,房间概念,如何进行简单的网络游戏思路。
这一章都会讲解。
九.Session
这一章我们会讲解基于UE4网络架构下的Session的通讯原理,并且使用Session演示如何制作一款简单的多人联机游戏,最终目的是一定要让学员把概念吃透。
十.UMG
这一章我们会讲解UE4UMG,主要讲解常常使用到的UMG控件,知己知彼 方能百战不殆,这一节的讲解内容会对我们后面学习编辑器slate UI有很大帮助。
以下是 UE4游戏开发核心技术基础 --- 目录:第一章 变量
1-1第三人称模板介绍
1-2Blueprint和C++基础变量讲解
1-3Name与Text
1-4String操作
1-5字符串切割
1-6坐标转换与万象锁
第二章 流程控制
2-1C++和蓝图循环
2-2C++和蓝图的结构体枚举和switch
2-3Gate和DoOnceDelayFlipFlop
2-4SequenceDoOneceMutiInputMultiGate
2-5用C++实现蓝图节点流程控制
第三章UE4容器和C++Stl容器
3-1Array和vector容器
3-2蓝图Set和stl里面的set
3-3蓝图Map和stlMap
3-4容器之间的优缺点
第四章 事件接口
4-1封装逻辑与UE4蓝图代理使用
4-2Actor事件接口
4-3Character事件接口
4-4服务端事件接口上
4-5服务端事件接口下
4-6UMG接口坐标转换
4-7UMG接口绘制图形和鼠标响应
4-8UMG接口动画和键盘按键响应
4-9UMG接口图标的拖拽
第五章 蓝图间的访问
5-1通过实例访问
5-2管理模式访问
5-3蓝图接口访问
5-4UMG访问的正确方式
第六章 组件
6-1基础组件
6-2渲染组件自定义UE4模型
6-3渲染组件系列
6-4AI组件和A星算法
第七章 数据库搭建
7-1基于Save增删查改
7-2SCV和Json
7-3动态更新本地数据
第八章 UE4服务端客户端
8-1网络游戏通信原理
8-2网络复制变量
8-3网络复制事件
第九章 Session
9-1基于Socket原理的Session讲解
9-2部署多人网络游戏简单案例上
9-3部署多人网络游戏简单案例下
第十章 UMG控件
10-1UMG_Board
10-2UMG_Button
10-3UMG_ImageCheckBoxText
10-4MultiTextEditableText
10-5RichTextBlock
10-6SpinSliderProgressBarAreaCombo
10-7Panel这套教程你能学会什么?
熟悉UE4为开发者提供的基础蓝图功能,基础的逻辑操作能力,了解UE4蓝图的网络编程原理,数据库概念,常用的UI控件,和常用的组件。
比如,渲染组件,模型生成组件,AI组件等;
这套教程能帮助不了解UE4的新人快速上手UE4开发项目,不仅能开发单机项目也能开发网络多人游戏项目,本教程的特点是没有多余的废话,只讲解干货。
如果您不会安装UE4,在文章的最后有关于如何安装UE4的内容;
宣传视频:
UE4游戏开发核心技术基础一
教程网址:UE4游戏开发核心技术基础教程第一部 | ABOUTCG视频教程www.aboutcg.org/course/tut_ue4101_181130/其他教程网址:
人宅:人宅系列教程122 赞同 · 38 评论文章专栏:
Game Developmentzhuanlan.zhihu.com/RenZhaiUE4 独立游戏制作知识体系zhuanlan.zhihu.com/c_1018877834139348992