UE4游戏客户端开发进阶学习指南

前言

两年多前写过一篇入门指南,教大家在短时间内快速入门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各个控件使用讲解

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里面使用的插件,根据个人需要去看吧。


优秀个人博客


关于作者:

  • 水曜日鸡,喜欢ACG的游戏程序员。曾参与索尼中国之星项目《硬核机甲》的开发。 目前在某大厂做UE4项目。

CSDN博客:https://blog.csdn.net/j756915370

知乎专栏:https://zhuanlan.zhihu.com/c_1241442143220363264

相关推荐
程序员小王꧔ꦿ29 分钟前
python植物大战僵尸项目源码【免费】
python·游戏
ZBzibing4 小时前
[游戏技术]L4D服务器报错解决
服务器·游戏
UTwelve6 小时前
【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第一篇-原理】
ue5·ue4·虚幻·虚幻引擎·着色器
琪智科技8 小时前
秦时明月6.2魔改版+GM工具+虚拟机一键端
游戏
dangoxiba9 小时前
【Unity学习心得】如何使用Unity制作“饥荒”风格的俯视角2.5D游戏
游戏·unity·c#·游戏引擎
qq 17780362211 小时前
智能新时代,游戏盾守护顺畅体验
运维·服务器·网络·游戏·云计算·ddos·ip
cyr___11 小时前
Unity教程(十六)敌人攻击状态的实现
学习·游戏·unity·游戏引擎
nbsaas-boot12 小时前
架构卡牌游戏:通过互动与挑战学习系统设计的创新玩法
学习·游戏·架构
FairGuard手游加固12 小时前
游戏如何应对云手机刷量问题
游戏
哆木12 小时前
部署在线GBA游戏,并通过docker安装启动
游戏·html·gba