UE4蓝图系统反射系统编译系统(UE4编辑器开发进阶)

30 篇文章 2 订阅
22 篇文章 11 订阅

哈喽,大家好,我叫人宅,今天和大家介绍一下本套教程,个人是极力推荐本套教程,因为本套教程将会让您对UE4引擎有更深刻的理解,最重要我们不仅会讲解理论还会实践,让知识和例子相结合。

如果您彻底搞定了这一块知识,将会给您带来多个福利,第一个福利您的水平将进入UE4高手行列。如果您对高手这个字眼不感兴趣,这套教程还会给您带来第二个福利,会让您的薪资有巨大的提升,注意不是小幅度提升,是巨大的提升。


教程地址:UE4编辑器开发进阶(UE4编译原理反射原理蓝图系统原理)

 

UE4编辑器开发进阶反射与蓝图

UE4编辑器进阶演示

我们先大概介绍一下这套教程里面会有什么内容

 

第一个内容是开发蓝图编辑器,比如蓝图节点开发蓝图逻辑开发,虚拟机开发,最重要的是理解字节码是如何被生成和使用的,还有我们的UBT和UHT的开发,我们可以不依赖UE4直接生成反射代码,我们对这块会有丰富的案例进行实战,不用担心自己学不会。

 

第二个内容是对UE4反射数据理解更加深刻,我们会详细讲解UE4反射数据,并且教会大家如何使用这些反射数据在我们的编辑器开发中。

 

第三个内容我们会讲解引擎初始化,我们会对着UE4引擎代码讲解,从Winmain开始,一点点讲解,这一块代码有上万行左右,我们会带着大家过一遍,知道UE4在加载百分之几是代表着处理什么内容。这一块掌握对我们以后排查问题有着巨大的作用,我们完全不需要看源码就能锁定问题可能是出在了哪里。

 

第四个内容我们会讲解蓝图编译原理,从蓝图开始编译的代码讲起,这块代码保守估计有上万行左右,我们会为大家讲解UE4蓝图编译的十五个阶段,带着大家把蓝图编译原理过一遍。

 

第五个内容我们会讲解如何用蓝图的UMG,开发我们的编辑器。


这个就是我们这套教程主要给大家讲解的内容,如果您掌握这些知识,对面试有着极大益处。

 

我们的一向的原则是在短时间内让您听明白,知道应该怎么做。


说了这么多我们来正式介绍一下本套教程的章节:

第一章 蓝图前端设计开发

这一章我们会教会大家如何设计蓝图编辑器系统框架,比如蓝图节点设计,蓝图连线的设计以及连线的算法,pin的样式设计等,学完这一章您将会自己搭建蓝图编辑器系统框架。


第二章 反射数据系统

这一章我们会讲解UE4类的反射数据,比如继承Actor类的,结构体,枚举,接口,以及蓝图虚拟机原理,蓝图函数执行原理,数据位运算等。了解这一块对我们开发自己的蓝图系统有非常重要的作用。


第三章 蓝图编译原理剖析

这一章的内容比较多,代码量也比较大,也是非常核心的一章节,这一章我们会讲解蓝图编译的十五个阶段,如何编译我们的类以及函数,我们会带着大家一点点理解Ue4是如何将我们的蓝图编译成字节码。我们也整理一套图,这个图里面浓缩着UE4编译的十五个阶段,这个图在我们的工程文件里面。这一章的内容将为我们开发蓝图虚拟机有着巨大指导 作用。


第四章 如何利用反射写代码

这一章我们开始利用反射知识在来 为 我们进行实战,比如我们如何通过地址直接访问成员并且修改成员,这个对我们开发编辑器非常有用,因为可以解耦合。当然我们还会讲解如何用C++调用我们以及编译好的蓝图代码,以及C++代码等


第五章 编辑器综合实战开发之环境搭建

这一章我们开始对蓝图开发进行实战的章节,我们会 在 这一章 节搭建一套完整的蓝图编辑器系统,比如蓝图的Palette列表 Details列表等。


第六章 编辑器综合实战开发之搭建蓝图虚拟机

这一章我们开始实战我们的蓝图编译,这一章节将是我们的核心章节,我们会带着大家一点点写虚拟机编译代码,比如搜索所有蓝图节点,剔除 孤立节点,将这些节点生成对应字节码,编写我们的UBT和UHT工具,收集类信息,生成UE4反射代码。最终由我们的蓝图调用并且执行。除了讲解蓝图编译我们还会讲解如何渲染缩略图,如何拖拽蓝图资源,如何将反射知识在我们的编辑器开发中,以及定义各种自适应的类型pin


第七章 UE4引擎初始化

这一章会讲解UE4引擎是如何初始化的,我们会从WinMain开始讲起,带着大家将UE4引擎初始化代码过一遍,清晰的了解UE4是如何加载模块,如何加载UObject,如何进行静态注册我们的类的,如何利用我们的反射数据等,使我们的知识得到贯通,不仅知道我们的反射数据也知道我们的反射数据如何调用,还知道它是如何注册的等,我们还会讲解UE4在不同百分比下UE4正在干什么,这个对我们以后锁定问题有非常重要的作用。


第八章 用蓝图UMG开发编辑器

这一章我们会讲解UE4最新功能,用UMG开发编辑器,如何开发,以及分析这套工具能做什么和不能做什么等。


这套教程 您学完后能获得什么?

明白 UE4是如何编译蓝图,理解UE4反射数据具体是啥,并且会定制反射数据,制作UBT和UHT工具帮助我们生成自定义的反射数据代码,理解如何将这些反射数据注册到类里面,可以自由开发蓝图编辑器系统,可以自定义自己的语言脚本,可以为UE4进行扩展,定制各种各样的脚本插件等。


教程使用的版本

我们使用的是UE4引擎4.21和4.22.内容讲解以4.21为准,图表和UMG开发编辑器以4.22为准。VS使用的是2017.


以下是我们的目录

第一章 蓝图前端设计开发

1-1搭建简单的蓝图状态机

1-2实现蓝图节点菜单和蓝图节点连接

1-3自定义蓝图连接代理样式

1-4自定义蓝图Node样式

1-5自定义蓝图Pin样式

1-6编写蓝图pin与pin之间的连接算法

1-7设计排布蓝图Pin

1-8蓝图Node和Pin的扩展

1-9 通过工厂解耦和

1-10蓝图前端总结


第二章 反射数据系统

2-1类反射数据展开

2-2类反射数据注册

2-3蓝图虚拟机原理

2-4构造蓝图函数和以及函数注册

2-5蓝图入口 ProcessEvent

2-6结构体反射数据分析

2-7变量反射信息的注册

2-8枚举反射与数据热更新

2-9接口反射数据与位运算

2-10反射总结

2-11UClassUStructUFieldUObjectBase基础类讲解


第三章 蓝图编译原理剖析

3-1蓝图编译的十五个阶段

3-2UBlueprintUFuntion等基础类讲解

3-3FKismetCompilerAndFunctionContext等基础讲解

3-4UE4 蓝图编译阶段前的准备

3-5UE4 蓝图编译第一阶段到第二阶段

3-6UE4 蓝图编译第三阶段到第七阶段

3-7UE4蓝图编译第八阶段重构函数与变量

3-8UE4 蓝图编译第八阶段重新编译依赖象

3-9蓝图编译第九阶段到第十二阶段

3-10蓝图编译第十二阶段构建蓝图的成员变量

3-11创建函数子列表与函数预编译第一阶段

3-12函数预编译阶段

3-13函数编译第二阶段整合语句

3-14编译蓝图为字节码

3-15第十四到十五阶段编译收尾


第四章 如何利用反射写代码

4-1利用反射捕获特定类型

4-2利用反射捕获类成员

4-3探讨成员变量的内存布局

4-4UE4中利用地址偏移对变量的操作

4-5ObjectHash里面常用函数

4-6利用反射调用无参函数

4-7利用反射调用有参函数

4-8利用反射调用任意参函数

 


第五章 编辑器综合实战开发之环境搭建

5-1 搭建资源编辑器

5-2 搭建编辑器Viewport视口

5-3 编辑器布局

5-4 搭建蓝图Graph

5-5搭建Palette列表和Details列表

5-6添加蓝图节点到Palette列表内

5-7搭建自定义蓝图

5-8蓝图节点信息映射到Details

5-9蓝图节点拷贝与剪切版操作

5-10修复蓝图编辑器常见bug

5-11总结


第六章 编辑器综合实战开发之搭建蓝图虚拟机

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6-1自定义反射元数控制变量

6-2蓝图数据的保存和还原

6-3利用反射读取代码实现自动化蓝图列表

6-4根据C++函数参数实现自适应样式蓝图pin

6-5命令映射映射编译和运行和帮助按钮

6-6蓝图节点修剪与函数编译

6-7序列化字节码和执行原理

6-8如何将函数和数据序列化为字节码

6-9如何执行压缩后的字节码逻辑

6-10搭建代码收集和反射数据生成框架

6-11代码类型收集

6-12代码数据生成

6-13自定义蓝图虚拟机实现HelloWorld打印

6-14实现蓝图取地址符操作

6-15实现蓝图返回值和纯节点操作

6-16实现蓝图函数可复用

6-17变量操作架构

6-18UObject变量赋值操作

6-19实现C++向蓝图通信

6-20通过蓝图代码将模型渲染到视口

6-21蓝图系统多情况测试与解决内存泄漏

6-22带参数的批处理启动UE4独立程序

6-23制作独立程序反射收集与生成

6-24通过批处理完成反射数据的生成和UBT代码刷新

6-25为节点添加渲染的缩略图

6-26向编辑器拖拽我们的资源

6-27实现多节点连接的pin


第七章 UE4引擎初始化

7-1引擎初始化

7-2PreInit_命令行启动相关程序和模块DLL加载

7-3UClass类型收集与延迟注册和线程池创建

7-4初始化UObject哈希表与引擎相关配置

7-5异步渲染Splash和渲染引擎初始化进度文本

7-6主线程向Splash线程通信

7-7ProcessNewlyLoadedUObjects

7-8引擎初始化到百分之八十

7-9引擎的最后初始化


第八章 用蓝图UMG开发编辑器

8-1GlobalBlutilityClassesAndTheBlutilityShelf

8-2ScriptedAction

8-3EditorUtilityWidget

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值