史上最全的Unreal|史上最全的Unreal Engine 4学习资料整理

官方 官方文档

  • 中文版 http://api.unrealengine.com/CHN/
  • 英文版 https://docs.unrealengine.com/en-us/
虚幻学院(英文教程,未来可能有汉化) 【史上最全的Unreal|史上最全的Unreal Engine 4学习资料整理】https://academy.unrealengine.com/
官方B站 https://space.bilibili.com/138827797/#/
C++
  • 【侯捷】《C++系统工程师》课程
  • 【吕鑫】【VS2015】C/C++/数据结构教程(推荐有选择的看)http://class.qq.com/class/22124.html
  • 书籍推荐
    《C++ Primer Plus》或《Essential C++》或《C++ Primer》
    《大话数据结构》或《C++数据结构与算法(目前第4版)》
    《Effective C++》
    《More Effective C++》
    《Effective STL》或《STL源码剖析》
    《设计模式》、《游戏编程模式》
    《C++沉思录》
    《深度探索C++对象模型》
UE4教程 基础操作
  • 【官方中文教程:4.15版本】基础操作教程 https://www.bilibili.com/video/av11692668
蓝图编程基础 蓝图编程简介
  • 官方文档 http://api.unrealengine.com/CHN/Engine/Blueprints/GettingStarted/index.html
  • 大神博客 https://www.cnblogs.com/ghl_carmack/p/5922131.html
蓝图的类型 注:此处的种类只说直接实现游戏逻辑的蓝图,动画蓝图等暂不谈
  • 蓝图类 https://blog.csdn.net/niu2212035673/article/details/80207669
  • 【猎梦虚幻研究社】 https://mp.weixin.qq.com/s/neCr4ttFIb6w9YZ45T4t3g
  • 关卡蓝图 https://blog.csdn.net/niu2212035673/article/details/80204257
  • 【猎梦虚幻研究社】 https://mp.weixin.qq.com/s/AAFbScqgIJKOEGFl03I2Xg
变量类型
  • 官方文档 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Variables/index.html
  • 大神博客 https://blog.csdn.net/niu2212035673/article/details/80148143
    注意三种字符型变量:String、Text、Name(适当研究各自的性质及与其相关的操作节点)
    三个最常会用到的复杂向量:Vector、Rotation、Transform(适当研究各自的性质及与其相关的操作节点)
UE4的组件
【官方文档】
  • 蓝图中的组件 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Components/index.html
  • 组建的种类 http://api.unrealengine.com/CHN/Engine/Components/index.html
【猎梦虚幻研究社】
  • https://mp.weixin.qq.com/s/HkBHFGM-wr4-mMW-IKVZfg
  • UE4的组件系统是学习自Unity引擎的,组件的引入让UE4引擎摆脱了UE3时代难以控制的代码耦合性
事件节点
  • 【官方文档】基础事件节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Events/index.html
  • 【官方文档】自定义事件 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Events/Custom/index.html
事件调度器(事件分配器)
【官方文档】事件调度器的使用
  • 创建事件调度器 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/EventDispatcher/CreatingEvents/index.html
  • 调用事件调度器 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/EventDispatcher/Calling/index.html
  • 绑定及解除绑定事件 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/EventDispatcher/BindingAndUnbinding/index.html
  • 使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/EventDispatcher/index.html
  • 【大神博客】事件调度器 https://blog.csdn.net/qq_36409711/article/details/76598715 https://blog.csdn.net/qq_14930205/article/details/78636014
事件分配器
  • 【官方文档】 UE4的蓝图编程中,所有游戏逻辑的函数都需要通过事件来驱动,而自定义事件可以当做函数来驱动,同时也可以通过事件调度器进行驱动,通过事件调度器,可以让蓝图实现的游戏逻辑更加灵活
流程控制
  • 【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/FlowControl/index.html
  • 【大神博客】 https://blog.csdn.net/niu2212035673/article/details/80148329
  • 流程控制节点,说到底也就是传统编程语言中的选择结构(switch-case、if-else等)和循环结构(for、while等),这些基础的函数结构,正是实现大部分游戏逻辑的核心
蓝图的函数
  • 【官方文档】 函数简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Functions/index.html 函数调用 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Functions/FunctionCalls/index.html
  • 【大神博客】 https://blog.csdn.net/niu2212035673/article/details/80202145
枚举类型
  • 【蛮牛译馆】 http://www.manew.com/thread-100301-1-1.html
  • 【大神博客】(包含部分关于结构体的操作) https://blog.csdn.net/niu2212035673/article/details/80155380
  • 【猎梦虚幻研究社】 https://mp.weixin.qq.com/s/nhmJe9jmy8agrjfc84ABeQ
  • 有关UE4Blueprint的枚举类型网上的资料并不多,因为大多数时候枚举类型都会被应用到AI/行为树和C++编程中
蓝图的数组
【官方文档】
  • 数组简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Arrays/index.html
  • 数组操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Arrays/ArrayNodes/index.html
【大神博客】
  • https://blog.csdn.net/qq_14930205/article/details/78541333
蓝图的结构体
【官方文档】
  • 蓝图中现有的结构体 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Variables/Structs/index.html
【大神博客】 结构体的使用(包含部分关于枚举类型的操作)
  • https://blog.csdn.net/niu2212035673/article/details/80155380
【大神博客】结构体数组及多维数组
  • 结构体及结构体数组 https://blog.csdn.net/qq_14930205/article/details/78541532
  • UE4的多维数组(用结构体实现)https://blog.csdn.net/qq_14930205/article/details/78541821
【猎梦虚幻研究社】
  • https://mp.weixin.qq.com/s/A_HmylXlCCh7wuA4GoViyA
HitResult
  • https://mp.weixin.qq.com/s/XcOe-5vFwoiAhuJzlk4EgA
蓝图的容器
Map 【官方文档】
  • Map简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Maps/index.html
  • Map操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Maps/MapNodes/index.html
  • Map使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/WorkingWithMaps/index.html
Set 【官方文档】
  • Set简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Sets/index.html
  • Set操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Sets/SetNodes/index.html
  • Set使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/WorkingWithSets/index.html
蓝图宏
【官方文档】
  • 蓝图宏的简述 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Macros/index.html
  • 使用宏库(可理解为全局函数库) http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/MacroLibraries/index.html
【大神博客】
  • https://blog.csdn.net/niu2212035673/article/details/80210904
Timeline(时间轴)
  • 【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Timelines/index.html
  • Timeline是UE4引擎中非常强大且便捷的一个功能函数,它可以实现诸如开关门、视角平滑远近缩放等功能
随机流
  • 【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/RandomStreams/index.html
  • 随机这个功能很重要,几乎所有游戏的数值计算都会涉及到随机函数
数学表达式
  • UE4引擎的蓝图编程中有很多基础的数学表达式节点(如四则运算),且根据不同的操作变量适配有不同的节点,其中更允许开发者自定义一个数学表达式,灵活性非常强
  • 【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/MathNode/index.html
蓝图的面向对象
构建脚本(蓝图相对于C++的构造函数)
  • https://mp.weixin.qq.com/s/PXx0L2CRMc7kb8DRRfWNMw
面向对象特性 继承
  • 【大神博客】继承操作示例 https://blog.csdn.net/zach_here/article/details/70145300
多态
  • 重写父类函数:在MyBlueprint栏的Function组上方,有一个Override菜单,下拉并选择要重写的函数,派生类中重写的函数会覆盖基类的函数
  • 调用重写后的父类函数:右键重写后的函数节点,选择“Add call to parent function”选项
抽象
  • 如果了解面向对象思想中的抽象概念,自主按照需求定制蓝图类即可
封装
  • 蓝图类中的变量的细节面板中的“Instance Editable”如果打对号(或者MyBlueprint栏中让变量对应的眼睛睁开,即暴露蓝图变量),则当蓝图在关卡中被实例化后,可以通过实例的细节面板进行修改相应变量的值
  • 蓝图类中的变量和函数在细节面板中都有Private选项,如果Private打钩,则该变量或函数无法被蓝图类的派生类继承
蓝图通信 注:蓝图通信可以理解为不同蓝图间的信息传递和共享
【官方文档】 蓝图通信方法(没有提GetAllActorOfClass)
  • http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/BlueprintCommsUsage/index.html
【大神博客】 https://www.cnblogs.com/songiveideas/p/learnmore2.html 1、直接蓝图
  • 通信(蓝图引用)最直接的方式,但只有需要通信的类都在关卡中有实例时才可以使用【官方文档】http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/DirectBlueprintComs/index.html
2、事件调度器
  • 参考上方“事件节点”
3、蓝图投射(CastTo节点)
  • 很常用的蓝图通信实现节点之一,正如官方文档所说,先询问对象“你是否是该对象的特殊版本”,然后再进行通信【官方文档】http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/CastNodes/index.html
4、蓝图接口
  • 这种实现方式相对有些复杂,但是某种程度上最不受限制,公众号【猎梦虚幻研究社】针对蓝图接口有几篇不错的文章,可以看看【官方文档】蓝图接口概述 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Types/Interface/index.html
实现蓝图接口 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html 使用蓝图接口 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/Interfaces/index.html 蓝图接口迁移 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/BlueprintComms/InterfaceMigration/index.html 5、GetAllActorOfClass
  • 这种方式并不能算是严格意义上的蓝图通信,其作用是通过该节点直接操作某一个类在关卡中所有的实例对象
视频教程
B站
  • 虚幻引擎官方 https://space.bilibili.com/138827797/
  • 灰太狼不吃羊肉 https://space.bilibili.com/298289600/
  • 陶仁贤TRX https://space.bilibili.com/22866318/
  • 杨一鸣 https://space.bilibili.com/19045234/
  • UE4-谌嘉诚 https://space.bilibili.com/31898841/
  • 暂无名讳 https://space.bilibili.com/76555104/
  • 来自程序员的暴击 https://space.bilibili.com/128373173/
人人素材
  • https://www.rrcg.cn/
ABOUTCG在线课堂
  • https://www.aboutcg.org/
SiKi学院
  • http://www.sikiedu.com/

    推荐阅读