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/
————————————————
版权声明:本文为CSDN博主「mogoolib」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nmjkl001/article/details/100983916
页:
[1]