最近开始摸索Unreal的蓝图基础使用,一些基本的操作大家可以在官方网站中的教程中找到,所以我们直接跳到事件图表上来讲。
首先,Unreal有丰富的注释功能,按住键盘C可以创建出注释区域,在右侧的“细节”面板我们可以轻松调整颜色以及气泡的出现。

节点

见过一些别人编辑好的蓝图的同学们都知道,蓝图中有错综复杂的连线,这些连线从一个地方出来,到另一个地方去,控制了流程和数据的输入输出。就像是交通线,每个城市就相当于“节点”

节点类型
事件(Events)、自定义事件、函数调用、事件调度器、流程控制、数组节点、时间轴、数学表达式节点、随机流、注释。这些都属于节点类型,丰富的节点类型可以帮助我们在小型的游戏开发中基本不需要编写自己的C++代码,实现一些功能,但是同时者考验来蓝图编写者的逻辑思维能力。

事件
在蓝图中可以定义各种事件,创建蓝图时默认就会为我们提供三种事件:BeginPlay Tick以及Overlap。对应着我们游戏开始,帧调用以及碰撞触发事件。 在一个蓝图中,事件的种类可以有多个,但是同种类型的事件只能有一个。
另外,我们也可以自定义事件,Add Event一个事件,然后我们在细节面板可以修改自定义事件的名字,定义各种事件的成员变量。

函数调用
函数的调用是蓝图中同样重要的一环,函数调用可以简单分为一般函数调用,其他函数调用和纯函数调用。
所谓一般函数调用,是可以在蓝图中形成的操作,同属于目标Actor或对象的函数相对应 。
其他函数调用,是属于除了该蓝图之外的其他对象或者Actor的函数。
纯函数调用,是可以执行的特殊动作,它不会影响世界或者世界中的对象。比如输出一个属性值,进行数学运算等。

流程控制
switch:提供了各种switch判断的类型,也可以自定义枚举类型在这里判断。
branch:相当于if else语句
Do N:接受条件执行,但是有次数限制,达到次数上限后,再次接受相同条件无法执行后续节点操作。但是可以通过重置使次数归0 .
DoOnce:同上,但是只能执行一次
DoOnceMultiInput:可以根据不同情况执行不同的操作,但是如果想要再次执行,需要Reset。
FlipFlop:交替执行A和B后面的内容。
ForLoop:for循环
ForLoopWithBreak:可以在一定条件下终止循环,执行相应的语句。
Gate:门,顾名思义。可以设置Enter的条件和Exit的执行语句,可以设置open的条件,close的条件,或者用toggle使其自动open和close·······
MultiGate:可以又多种输出的开关门,可以设置开始和重置,可以选择是否随机或者循环,可以从只当index的输出开始
Sequence:按顺序一次执行,但是值得注意的是,即使写了Delay,Sequence也会直接执行后面的语句

变量

存放一个值或者引用世界中一个Object或Actor的属性。
变量类型:

详细介绍:

布尔值(bool):小案例:利用不布尔值设置一个point light的intensity,按下键盘一个键后,如果灯是打开则关闭,如果关闭则打开。
易犯错误:将一个布尔值取反后,忘记重新把这个取反后的值设置回这个变量中,导致只能发生一次变化。
字节(byte):学过一定计算机理论的知道,1字节是8位,在UE中存储范围是0-255。在右侧细节栏中可以设置UI中滑动的范围以及值的取值范围,后者控制前者。
整型和64位整型:整型是32位,两者仅仅范围不同
浮点型(float):范围很大,案例:做一个四舍五入的功能(利用浮点型转整型操作)。
Name,String以及Text:Name是轻量级的字符串,经常被用于对象的命名 string是我们通常用的字符串,支持字符串的拼接,查找等其他语言中都存在的操作 Text是大段文本,如果游戏中出现大段对话,基本我们就使用Text,这样会对我们的本地化非常有帮助。
Vector:引擎中很多属性例如位置,旋转,缩放都是使用Vector。案例:使用Vector修改物体的位置和缩放。
Rotator:和Vector类似,可以用来定义一个旋转角度。
Transform:Transform即物体的位置,旋转和缩放,第一个和第三个是Vector类型,第二个是Rotator类型。案例:获取物体的Transform中的旋转进行输出。

Enum枚举类型:我们可以在内容浏览器中新建一个自己的枚举类型,为其设置各种情况以及解释
Structure结构体:我们可以在内容浏览器中新建一个结构体,类似于各种编程语言中的struct
综合案例:创建一个学生结构体,属性为姓名,年龄,以及学校(利用枚举类型),在蓝图中实现这样的功能:根据学生年龄的大小,输出“姓名”+是否成年+“(学校类型)”。

数组节点:
由于本篇文章是基于有一定其他编程语言经验的人编写,所以数组方面可能不会那么详尽的去介绍。

在这个地方可以修改变量的类型,有普通变量,数组,集以及字典。

数组中的方法:

很多方法都是其他语言中存在的一些常用的方法,大多都属于增删改查,具体如何使用各位客官可以自己摸索。

集合:
接下来就是我们的第三种数据存储容器,集合

在C#中,我们有数组,列表,字典,哈希表,栈和队列等数据结构,集合也是一种类数据结构容器,在初等数学中我们应该学过集合相关的知识。
如果硬要对比的话,集合就好比一个键值对相同的字典。
在蓝图中,可以对集合进行如上图的操作。其中也包含了最常用的差并交三个基本操作。

地图:
第四种数据存储容器:map
这个就很熟悉了,有的编程语言中它叫map,有的中是Dictionary,本质上就是一个键值对,而且是一种引用类型的键值对;与之相对的是,哈希表是一种值类型的键值对。

上面是map中一些常用的方法,有一定数据结构知识的客官们应该能轻松应用这些方法。

函数(Function)


在上图中,我们已经大概了解了图标和变量的含义,那么接下来是函数。

可以覆盖,但由于我们还没有继承的子类或者父类,我们就先新建一个函数

点击新建的函数,可以进入我们的函数界面,在右侧的细节面板有我们的一些函数相关的设置,例如一些注释,访问方式(public protected private) 是否为纯函数 在输入和输出中,我们可以定义相应的函数的输入和输出数据流。

实操训练:对一个数组进行排序
unreal蓝图中实现数组的排序是非常消耗性能且复杂的。

宏:
宏跟函数非常类似,可以定义输出和输出,而它比函数多了一个功能,它可以在右侧的细节面板设置多个输入和输出引脚,有点类似于我们的分支,具体如何使用到之后继续总结。

数学节点–蓝图中的math类

如图所示,在蓝图中搜索math,会出现很多一些蓝图中的数学节点,这些节点提供了我们对一些数据类型的基本的操作。
数学节点也包括对transformation的操作,另外,我们的Random节点也归在数学节点里,不再做进一步的介绍,请各位客官尝试使用一下各种数学函数,灵活运用到自己的项目中。

时间轴:
Timeline为我们提供了一个基于时间的控制器,不仅仅是做动画,Timeline代表了一种在时间轴上进行各种操作的编程习惯。
对Timeline的介绍分为两部分,首先是Timeline的曲线编辑器:
最上面一排,可以添加基于各种类型变量的曲线,设置曲线的时间,自动播放,循环等属性。在一个Timeline中可以定义多条曲线,都会在事件图表中显示出来。中间是我们的曲线编辑窗口,我们可以按shift去添加关键帧,用delete去删除关键帧。右键点击关键帧,可以设置关键帧在此处的状态是平滑,线性还是剧变等等状态。

然后是事件图表中的Timeline节点:

Play:播放
Play from Start:从头开始播放
Stop:停止
Reverse:从后往前播放
Reverse from End:从最后往前播放
Set New Time:为动画设置一个新的时间
Update:每帧执行
Finished:结束执行
Direction:播放是从后往前还是从前往后

Timeline在创建后,在左侧会以组件的形式出现,我们可以像对其他变量和组件一样对它进行get 和set
下面是关于Timeline节点的一些方法:

Unreal蓝图入门 节点相关推荐

  1. 深入Unreal蓝图开发:自定义蓝图节点(下)

    通过前面的文章,我们已经能够创建自己的蓝图节点,并可以动态添加.删除Pins,但是感觉好像有什么地方不太对劲啊.你发现没有?那就是前面两篇文章中,我们自定义的蓝图节点都是通过UK2Node::Expa ...

  2. 【保姆级从0到1】UE5 蓝图入门教程1:关卡、蓝图入门

    20230113 1.新建项目 新建选择 UE 5.1 项目 选择蓝图,项目位置 改变编辑器布局,选择经典布局 2.关卡与蓝图 选择 File -> New Level 准备创建关卡 选择 Ba ...

  3. UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)

    UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log) 开启屏幕打印Log: ENABLEALLSCREENMESSAGES 关闭屏幕打印Log:DISABLEALLSCREENMES ...

  4. Unreal虚幻_蓝图入门学习

    UE4中文官网地址: 虚幻引擎 | 最强大的实时3D创作平台 - Unreal Engine UE4中文官方文档:https://docs.unrealengine.com/4.26/zh-CN/ht ...

  5. Unreal Engine4 蓝图入门

    微信公众号:UE交流学习    UE4开发群:344602753 蓝图是Unreal Engine的特点,用C++编程固然好,但是效率要低很多,主要是国内资料比较少,所以不太容易学习,用蓝图编程可以节 ...

  6. 深入Unreal蓝图开发:自定义蓝图节点(上)

    在前面一篇文章中介绍了扩展蓝图的几种方法,其中最灵活的就是自定义K2Node了,也就是通过定义一个class UK2Node的派生类来给蓝图添加新的节点.这种方法开发起来一起是最麻烦的,一般只有在需要 ...

  7. 虚幻4: 蓝图入门与进阶

    有幸受邀为中国传媒大学动画学院的同学们讲授虚幻4蓝图相关的知识.这次的课程面向的同学是有一定编程基础,但是对虚幻4没有太多接触的同学. 内容方面是从蓝图的基本概念讲起,然后涉及到蓝图通信等进阶话题.围 ...

  8. 深入Unreal蓝图开发:理解蓝图技术架构

    前面几篇博客谈了几种常用的蓝图扩展方式,其中也对蓝图的底层机制进行了部分的解析,但是还不够整体.这篇文章谈一下目前我对蓝图技术架构的系统性的理解,包括蓝图从编辑到运行的整个过程. 蓝图的发展历程 蓝图 ...

  9. [UE4蓝图教程]蓝图入门之蓝图通信机制入门

    最近正好学习蓝图碰撞和蓝图间通信的有关部分,所以,我正好在此记录一下,首先是蓝图和角色间的碰撞,比如下面这个蓝图 蓝图与玩家间的碰撞,其实和触发器触发事件有点像,首先,通过OnComPonentBeg ...

  10. [UE4蓝图教程]蓝图入门之变量使用

    虚幻4的蓝图,其实是一种可视化编程,背后需要一套很复杂的东西才能将前台的逻辑变得简单,它是将一些东西封装成小框框,然后靠一条条线来链接起来,这个的好处就是很直观,给很多对写代码天生不感冒的人,提供了一 ...

最新文章

  1. python之强大的日志模块
  2. 用Vue来实现图片上传多种方式
  3. 为企业门户提供问答式检索--------让系统能回答普通用户提出的问题
  4. android国家坐标,从坐标获取国家?
  5. NHibernate获取实体配置信息(表名,列名等等)
  6. (王道408考研操作系统)第一章计算机系统概述-第一节5:系统调用
  7. bzoj1040(ZJOI2008)骑士——基环树
  8. 【细节实现 回文串12】LeetCode 564. Find the Closest Palindrome
  9. [算法]圆圈中最后剩下的数
  10. 在java中调用python方法
  11. SVN打开HTML文件,tortoisesvn安装后怎么打开
  12. 【Mybatis】TKMybatis 介绍和使用
  13. python 修改pdf_使用Python编辑PDF
  14. 头条推荐量越来越少,是否还要坚持下去?
  15. 小学计算机课题研究方案,《小学信息技术课堂有效教学的探究》课题研究方案...
  16. 美团一面(时间1.10h)
  17. 【100%通过率】华为OD机试真题 Python 实现【完美走位】【2022.11 Q4新题】
  18. 前端工程的价值体现在哪里
  19. 互联网公司平均薪资Top8 , 阿里勇夺第一。
  20. ansys添加力矩_Ansys加力矩.doc

热门文章

  1. vba手机号码归属_国庆献礼-EXCEL自定义函数获取手机号码归属地及运营商信息 | Excel实例教学网 微信公众号EXCEL880...
  2. STM32LL库系列教程(一)—— LL库概览及资料
  3. 五、Ceph之RBD存储使用
  4. ip漂移技术_您的项目是否遭受技术漂移的困扰?
  5. Microsoft软件保护平台服务CPU占用率过高的解决办法
  6. pb公共变量怎么找_pb 实用方法
  7. html点击按钮弹出悬浮窗_html弹窗,html网页弹窗代码
  8. Java的Abstraction抽象类/方法-笔记
  9. 211计算机考研到985难度,普通人想考研到985/211院校到底有多难?听听他们的心声!...
  10. VS2012,发布时出现“不支持此接口”错误的解决办法……