unreal虚幻引擎学习(一)史上最全的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++系统工程师》课程 链接:https://pan.baidu.com/s/1ScdbFxNbW624ou86wUtQCQ 提取码:3hn8【吕鑫】【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-IKVZfgUE4的组件系统是学习自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/76598715https://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/78541532UE4的多维数组(用结构体实现)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.htmlMap操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Maps/MapNodes/index.htmlMap使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/WorkingWithMaps/index.html
Set
【官方文档】
Set简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Sets/index.htmlSet操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Sets/SetNodes/index.htmlSet使用示例 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.htmlTimeline是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/
页:
[1]