前言
两年多前写过一篇入门指南,教大家在短时间内快速入门UE4的使用,在知乎被很多人收藏了。如今鸡佬使用UE快三年了,是时候更新一下进阶版本的学习指南。本文对于读者的要求:
- 有一定的C++基础
- 已经入门UE,能够用蓝图和C++做一些简单的功能
对于学习资料,首先本文列举的所有学习资料都是鸡佬经过精挑细选的,会综合考虑文章质量、学习难度、重要性等各个维度。其中会分为必修和选修两个部分。必修是很重要且强烈推荐看的学习资料。选修的话,有些学习难度比较大,有些相对来说不是那么重要。推荐的学习顺序是先把必修的全部看完,再根据个人需要学习选修部分的资料。
框架图解
在深入学习UE之前,需要对UE包含哪些东西有一个大概的了解。正好UE官方自己曾出过一个关于UE各个模块的引擎架构图,是非常好的学习资料。如下图是Character模块的部分架构图。全模块完整架构图见Gitub地址。
Programming
必修
官方文档——编程与脚本编写
UProperty关键字全说明
《InsideUE4》UObject类型系统-反射实战
选修
深入蓝图开发——理解蓝图架构
深入蓝图开发——理解异步节点
一文搞懂StaticClass、GetClass和ClassDefaultObject
一文搞懂NativeClass、GeneratedClass、BlueprintClass、ParentClass
《InsideUE4》UObject类型系统系列
这个模块选择了一些C++编程和蓝图开发相关的资料。对于蓝图和UE的UObject整个框架的理解将帮助你更好的开发上层玩法系统。另外还加了一个UProperty关键字的说明文章,方便查阅。
GamePlay
必修
《InsideUE4》GamePlay架构系列
GAS入门
官方文档——GAS
GAS各个模块的介绍和使用
选修
移动组件源码解读
GAS预测机制讲解
这个模块是玩法相关的学习资料。首先要做的肯定是配合前面的框架图来理解UE的GamePlay架构。然后就是学习GAS(Game Ability System)了,即UE的技能系统。虽然GAS叫作技能系统,但是可以使用的地方远远不止角色技能。比如一局pvp游戏阶段的切换也是可以用GAS来做的。可以说满足需要复制、可以用Tag表示状态、有开始和结束时机的一切事情都可以考虑用GAS来实现。
Animation
必修
官方文档——骨骼网格动画
深入浅出学习ALS高级运动系统视频教程
选修
过场动画Sequencer系列教程
UE4/UE5 动画的原理和性能优化
RootMotion原理分析
动画蓝图的初始化和更新流程解析
动画方面还是一样先看官方文档,然后是ALS的视频教程。ALS高级运动系统,是UE的一个动画插件,实现了3A级别水准的走跑跳蹲的各种基础移动姿势,以及换武器、攀爬、八方向移动、IK等各种动画相关的功能,而且是纯蓝图实现的。学习ALS能够对UE的动画蓝图能够做什么功能以及怎么做有一个非常清晰的了解。基本上你跟着第二个视频教程完整学一遍,UE动画蓝图的所有功能你就可以掌握了。选修部分包含了一个制作过场动画的教程(一般客户端涉及这方面的需求比较少有需要再看),还有动画底层的实现细节源码解析(比较难懂,根据个人需要学习)。
UI
必修
UMG各个控件使用讲解
- CanvasPanel、HorizontalBox、Overlay、UniformGrid Panel、GridPanel
- WrapBox、ScrollBox、SizeBox、Switcher、SafeZone
- ListView、TileView、TreeView
- DynamicEntryBox、InvalidationBox、RetainerBox、TextBox、RichTextBlock
- Border、Button、CheckBox、Image、NamedSlot
- ProgressBar、Slider、ExpandableArea、SpinBox、CircularThrobber
- MenuAnchor、Space、BackgroundBlur
ListView踩坑
UMG生命周期
Geometry应用——获得UMG屏幕位置
选修
UI的制作与优化
Slate源码分析——点击事件的触发流程
动态创建UMG的Animation
UI方面先看各种控件的使用细节。熟练之后就是研究Slate,或者是实现一些根据项目定制比较骚的功能。比如说想让一个按钮既可以拖动,又可以点击,又可以在列表里面滑动。或者是双层嵌套LIstview,里面和外面的ListView都可以滚。
AI
必修
官方文档——AI
对行为树几个特性的理解
选修
AI_Perception感知模块的使用和部分源码讲解
AI行为树源码解读
Navmesh底层(Recast基础和寻路算法)
状态树介绍
AI的话先跟官方文档过一遍熟悉行为树。UE的行为树多了Service节点的概念。熟练之后研究行为树源码和寻路底层。值得一提的UE5新增加的状态树也值得了解一下。状态树是一个通用的分层状态机结构,是以状态为维度去设计的。用行为树来做AI有时候会发现状态之间的切换条件不够清晰,以及不容易知道对象处于哪个状态。而且行为树不能挂在非Actor身上。所以UE5引入了状态树解决了前面的问题。但是行为树也有行为树的好处。个人认为行为树和状态树是互相补充的,没有谁可以替代谁。状态树可以用来做一些状态清晰,逻辑相对简单的机制。比如一个门它有锁住、可开门、已开门这几种状态,就比较适合用状态树来做。
Network
必修
官方文档——多人联网
多人游戏的调试技巧
(如何理解属性复制)How to Understand Network Replication
选修
网络同步原理深入
详解ReplicationGraph方案
网络方面的话肯定是研究UE自己的网络架构,包括DS架构以及属性复制、Actor复制这些。用UE做网游如果不用DS而是自己研发一套服务器架构是非常麻烦且低效的,鸡佬所在项目曾经尝试过不用DS,做了一年各种蛋疼,转DS后才发现香的一批。必修第三个链接是一个非常优秀的视频,把属性复制讲的非常清晰,看完之后会觉得打通了任督二脉。选修部分还加了一个ReplicationGraph插件的使用。ReplicationGraph插件是用来解决大世界Actor复制效率低下的问题。如果是做地图比较大的游戏强烈推荐使用这个插件。
Editor
选修
Plugin开发概要
自定义菜单栏
关卡编辑器扩展
ContentBrowser拓展
资源类型扩展
属性面板拓展
创建自定义Filter
创建一个预览视窗
Editor方面主要是编辑器扩展了。UE的编辑器扩展比Unity比起来难搞了不少,你不光要懂Slate还得熟悉反射系统。一般对于客户端来说工具向的需求不多,所以这整个模块的内容我都列为了选修。上面这个文章也只是编辑器扩展的冰山一角,如果要深入学习还是建议看UE它自己的一些编辑器是怎么做的。
Render & Effect
选修
材质编辑器入门Intro to Materials
Cascade粒子系统入门Into to Cascade
Niagara粒子系统官方文档
渲染视觉效果方面我只列了材质编辑器和粒子系统的使用。毕竟我们是客户端路线,不是TA路线,看太多渲染相关的东西有点本末倒置了。
UE5
必修
官方文档——Lyra工程
选修
Lyra解读大纲
UE5 Lyra示例项目解读(输入、移动、属性)
UE5 Lyra示例项目解读(武器射击、资源管理)
Lyra的动画蓝图
GameFeature框架
ControlFlows插件
Lyra是UE5官方做的第三人称多人射击游戏学习项目。包含了基础的3C(Character,Controller,Camera)功能,输入(EnhancedInputSystems),GAS技能,动画,消息转发(GameplayMessageRouter),多人联网等很多可以学习的内容。即使你是使用UE4的开发者也强烈建议学习。GameFeature和ControlFlows都是在Lyra里面使用的插件,根据个人需要去看吧。
优秀个人博客
- vj东
- 南京周润发
- 大钊
- Jerish
- stone
- quabqi
- 查里鹏
- (日)alwei
- (英)Noah zuo
- (英)ben
关于作者:
- 水曜日鸡,喜欢ACG的游戏程序员。曾参与索尼中国之星项目《硬核机甲》的开发。 目前在某大厂做UE4项目。
CSDN博客:https://blog.csdn.net/j756915370
知乎专栏:https://zhuanlan.zhihu.com/c_1241442143220363264