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

官方

官方文档

  • 中文版 http://api.unrealengine.com/CHN/
  • 英文版 https://docs.unrealengine.com/en-us/

虚幻学院(英文教程,未来可能有汉化)

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/

你可能感兴趣的:(史上最全的Unreal Engine 4学习资料整理)