码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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各个控件使用讲解

    • 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

  • 相关阅读:
    数据挖掘经典十大算法_NaiveBayes朴素贝叶斯
    虹科 | 测试方案 | 汽车示波器 通讯网络(LIN/CAN/FlexRay)测试方案
    docker本机启动多台容器导致出现后续容器启动失败
    Spring Boot : ORM 框架 JPA 与连接池 Hikari
    时间轴_显示器
    什么是Egg.js,它有什么特性,egg框架的安装,路由的定义,控制器Controller是什么,CORS配置,JSONP配置,get请求,post请求
    让.NET 8 支持 Windows Vista RTM
    Python Django 实现教师、学生双端登录管理系统
    【C++】STL之String模拟实现
    C++题解(6) 信息学奥赛一本通:2069:【例2.12 】糖果游戏
  • 原文地址:https://blog.csdn.net/j756915370/article/details/133626776
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号