当前课程知识点:虚幻引擎(UE4)技术基础 >  第九章 蓝图概念 >  9.3 蓝图通信 >  9.3 蓝图通信

返回《虚幻引擎(UE4)技术基础》慕课在线视频课程列表

9.3 蓝图通信在线视频

下一节:9.4 创建蓝图

返回《虚幻引擎(UE4)技术基础》慕课在线视频列表

9.3 蓝图通信课程教案、知识点、字幕

大家好

欢迎来到《虚幻引擎(UE4)技术基础》课堂

我是主讲教师晏茗

现在我们将针对

《虚幻引擎(UE4)技术基础》课程中

第七章 蓝图系统的相关概念

进行讲解

现在进入第三节 蓝图通信

关于虚幻引擎蓝图通信的基础知识

及运用 判断 做一个讲解

现在我们来看下蓝图通信

使用蓝图时

如需在蓝图之间传递或共享信息

需要使用一种形式的蓝图通信

可根据需求使用不同类型的通信方式

蓝图通信用法

总共有四种用法

第一 直接蓝图通信

第二 事件分配器

第三 蓝图接口

第四 蓝图投射

第一 直接蓝图通信(Direct Blueprint Communication)

是最常见的蓝图通信方法

有两个蓝图在某个时刻彼此交流时

它可以提供良好的效果

这种交流总是一对一的

这意味着一个工作蓝图(Working Blueprint)

请求访问另一个目标蓝图(Target Blueprint)

直接蓝图通信(Direct Blueprint Communication)

最简单的使用方法

是通过公开的对象变量(Variable)

获得对目标蓝图的参考

然后指定要访问该蓝图的哪个实例

一般工作流程是为了使用

直接蓝图通信(Direct Blueprint Communication)

需要做的第一件事是识别将要通信的蓝图

在这个实例中

工作蓝图是角色蓝图

目标蓝图则是吊灯蓝图

通过直接蓝图通信

可以假定

当玩家角色按下按钮时

锁定吊灯蓝图为目标并关闭吊灯

为此需要在角色蓝图中创建一个公开展示的变量

并以吊灯蓝图为目标

将它设置为可编辑(Editable)

这将允许设置希望在关卡中影响的光源实例

在选择角色蓝图的关卡中

可以看到能够从细节(Details)面板中设置的新变量

默认情况下

该变量设置为无(None)

并且必须设置为定义想要影响的吊灯实例

因为关卡可能有多个吊灯

并且需要定义想要与哪个吊灯通信

可以从关卡中进行选择并指定要与哪个实例通信

如果实例不止一两个

那么合理做法是创建一个蓝图类

并在其中设置相关代码

如果没有那么多

则需要一些帮助程序函数

那么在蓝图宏库中设置是最理想的

另外还有函数和直接蓝图通信

在蓝图中使用函数(Functions)时

仍然可以通过指定目标蓝图类型作为该函数的参数

来使用直接蓝图通信(Direct Blueprint Communication)

并将一个输入(Input)引脚设置为蓝图吊灯

在函数中使用目标蓝图时

仍然需要指出要与目标的哪个实例通信

这可以使用公开的变量来完成

也可以在调用此函数时从外部提供

当按下F键时

它将调用ToggleLight函数

并将公开变量锁定为目标

当关卡中存在两个Actors

需要进行相互之间的通信

与关卡中的一个开关进行互动后

打开特定的门或开启特定的灯

每个灯均为单独的蓝图

那何时使用呢

在此例中

玩家将通过箱子传递信息

启用一个粒子特效

并与其形成通信

将目标蓝图引出连线连接到激活节点

在目标蓝图中访问粒子效果和音频组件

角色进入方块后

关卡中将出现火焰特效

使用直接蓝图通信不仅可以从

一个蓝图中变更另一个蓝图的属性

还可传递变量值 调用函数或事件

或执行蓝图通常可进行的其他操作

第二 事件分配器适用于告知其他

正在倾听的 蓝图已发生事件

事件发生时

正在倾听的蓝图便会作出反应

并相互独立地执行预期的操作

使用事件分发器

创建了事件分发器后

可添加事件节点

绑定节点和取消绑定与之链接的节点

事件 绑定和解除绑定节点都可以

添加到蓝图类和关卡蓝图中

除了事件节点

各个节点都有一个目标(Target)输入引脚

在蓝图类中

此引脚自动设置为自身(Self)

这意味着事件列表针对该类发生了更改

因此该类的每个实例都会产生变化

在关卡蓝图中

此引脚必须关联到对关卡中该类的一个实例的引用

这意味着

事件列表将仅针对该类的特定实例进行更改

事件分配器使用时机的案例

需要从角色蓝图到关卡蓝图进行通信

玩家角色升级

需要开放之前锁定的区域

玩家角色按下行动按钮

对关卡执行某种操作等

事件分发器被调用时

也将执行实施事件且事件与事件分发器绑定的全部蓝图

换言之

事件分发器被调用时

与其绑定的所有事件也将被调用

以便从单一源同时执行多个事件

如何设置事件分发器并将事件绑定到事件分发器

从案例中

玩家按键后灌木丛中将出现火焰粒子效果来看

在获取玩家角色后引出连线

搜索并添加对应节点

这样我们便能访问

第三人称角色蓝图中的

事件 函数 变量或属性

在第三人称角色引脚的引出连线后搜索并使用指定点火节点

此操作将新建绑定事件和自定义事件

在角色蓝图中调用事件分发器时

自定义事件和与其相连的任意事件均会被执行

事件与事件分发器绑定的蓝图也将被执行

然后点击Play在编辑器中开始游戏

按下F键后

火焰特效将出现在灌木丛中

第三 蓝图接口

通过蓝图接口可实现与多种类型对象

形成互动的一般方法

例如汽车和树是完全不同的两种对象

但拥有一个共同点

它们均可被武器开火击中并遭到破坏

理解蓝图接口的最佳方式是将其视为一种合约

合约的内容为

如应用此接口

则须承诺应用这些特定的函数

并在调用时形成反应

多个蓝图可应用一个接口

但并非所有蓝图均会形成反应

部分蓝图将无视调用

数个蓝图中存在一些相似功能

但在调用后执行不同的效果

以下案例使用蓝图接口在蓝图之间传递变量

并调用在应用接口的蓝图中执行不同脚本的函数

需要将静态网格体转换为

可摧毁网格体(Destructible Mesh)

在被击中后破碎

创建了三个Inputs

用在应用此蓝图接口的蓝图之间传递变量

我们创建了两个浮点变量

一个用于传递命中时对物体形成的破坏量

另一个用于传递应用的冲击力量

实际的损坏 力量和命中位置信息

将通过蓝图接口从另一个蓝图传递到此蓝图

然后点击Play按钮在编辑器中开始游戏

射击玻璃将使其破碎并碎裂

对灯射击一次

将使灯光变为绿色

再次对灯进行射击

将使灯光关闭

第四 蓝图投射

蓝图通信的另一种常见形式是使用Cast节点

使用Cast节点时

便是在询问对象 你是否为该对象的特殊版本

如果是

则进行访问

如否

则忽略请求

在蓝图中使用Cast To节点时

简单而言

就是在尝试检查发出转换的对象

是否为被转换的特定对象

换言之

创建了一个特殊的角色蓝图

如名为MyCharacter

其中包含变量或其他自定义功能

并将其作为默认Pawn类指定

或所有玩家角色默认使用的角色蓝图

使用Get Player Character节点

再使用Cast To MyCharacter节点

一个特殊的角色蓝图

即可确认玩家角色是否为MyCharacter

以便访问该蓝图中所包含的

变量 函数 事件或其他特殊功能

需要访问另一个蓝图的特殊版本

角色走进火焰中

导致体力值耗尽

投射到特殊的角色蓝图

以便访问并变更体力值

角色死亡

需要重新生成

投射到特殊的游戏模式蓝图

执行重新生成脚本

需要访问相同类的多个蓝图

并以相同方法进行修改

以上就是关于蓝图通信的相关知识点

最后的思考与练习

在蓝图类的数据相互通信中

自定义事件起到了什么样的作用呢

本节课内容就讲解到这

希望大家学有所成

再见

虚幻引擎(UE4)技术基础课程列表:

第一章 UE4引擎基础

-1.1 虚幻4引擎简介

--1.1 虚幻4引擎简介

--1.1 小节习题

-1.2 虚幻4引擎的安装及环境部署

--1.2 虚幻4引擎的安装及环境部署

--1.2 小节习题

-1.3 创建项目及试玩

--1.3 创建项目及试玩

--1.3 小节习题

-第一章 章节测试

第二章 UE4编辑器

-2.1 虚幻4编辑界面介绍01

--2.1 虚幻4编辑界面介绍01

--2.1 小节习题

-2.2 虚幻4编辑界面介绍02

--2.2 虚幻4编辑界面介绍02

--2.2 小节习题

-2.3 视口导航及基本操作

--2.3 视口导航及基本操作

--2.3 小节习题

-2.4 导入资源、项目迁移和管理

--2.4 导入资源、项目迁移和管理

--2.4 小节习题

-第二章 章节测试

第三章 地形系统

-3.1 地形工具

--3.1 地形工具

--3.1 小节习题

-3.2 新建地形

--3.2 新建地形

--3.2 小节习题

-3.3 塑造地形

--3.3 塑造地形

--3.3 小节习题

-3.4 使用植被工具

--3.4 使用植被工具

--3.4 小节习题

-第三章 章节测试

第四章 材质系统

-4.1 初识材质

--4.1 初识材质

--4.1 小节习题

-4.2 编辑基于物理材质

--4.2 编辑基于物理材质

--4.2 小节习题

-4.3 使用贴图纹理创建材质

--4.3 使用贴图纹理创建材质

--4.3 小节习题

-第四章 章节测试

第五章 光照系统

-5.1 大气照明和定向照明

--5.1 大气照明和定向照明

--5.1 小节习题

-5.2 添加点光源

--5.2 添加点光源

--5.2 小节习题

-5.3 添加聚光源

--5.3 添加聚光源

--5.3 小节习题

-5.4 光源质量和反射

--5.4 光源质量和反射

--5.4 小节习题

-第五章 章节测试

第六章 场景搭建

-6.1 几何体及纹理贴导入

--6.1 几何体及纹理贴导入

--6.1 小节习题

-6.2 素材整理和项目准备

--6.2 素材整理和项目准备

--6.2 小节习题

-6.3 搭建流程

--6.3 搭建流程

--6.3 小节习题

-第六章 章节测试

第七章 动画系统

-7.1 动画资源与编辑器

--7.1 动画资源与编辑器

--7.1 小节习题

-7.2 混合空间

--7.2 混合空间

--7.2 小节习题

-7.3 动画窗口及编辑动画

--7.3 动画窗口及编辑动画

--7.3 小节习题

-7.4 创建自定义角色

--7.4 创建自定义角色

--7.4 小节习题

-第七章 章节测试

第八章 特效系统

-8.1 创建粒子系统

--8.1 创建粒子系统

--8.1 小节习题

-8.2 虚幻粒子基础功能介绍01

--8.2 虚幻粒子基础功能介绍01

--8.2 小节习题

-8.3 虚幻粒子基础功能介绍02

--8.3 虚幻粒子基础功能介绍02

--8.3 小节习题

-8.4 粒子特效的综合运用

--8.4 粒子特效的综合运用

--8.4 小节习题

-第八章 章节测试

第九章 蓝图概念

-9.1 初识蓝图

--9.1 初识蓝图

--9.1 小节习题

-9.2 蓝图类型

--9.2 蓝图类型

--9.2 小节习题

-9.3 蓝图通信

--9.3 蓝图通信

--9.3 小节习题

-9.4 创建蓝图

--9.4 创建蓝图

--9.4 小节习题

-第九章 章节测试

第十章 蓝图应用

-10.1 击中事件

--10.1 击中事件

--10.1 小节习题

-10.2 实现物体来回移动

--10.2 实现物体来回移动

--10.2 小节习题

-10.3 Input输入与玩家快捷键交互

--10.3 Input输入与玩家快捷键交互

--10.3 小节习题

-10.4 用户界面和HUD

--10.4 用户界面和HUD

--10.4 小节习题

-10.5 创建游戏约束

--10.5 创建游戏约束

--10.5 小节习题

-10.6 游戏结束与重玩功能

--10.6 游戏结束与重玩功能

--10.6 小节习题

-第十章 章节测试

第十一章 游戏AI

-11.1 行为决策的AI

--11.1 行为决策的AI

--11.1 小节习题

-11.2 AI监听玩家行为

--11.2 AI监听玩家行为

--11.2 小节习题

-11.3 AI与玩家的攻击伤害

--11.3 AI与玩家的攻击伤害

--11.3 小节习题

-11.4 AI生成点与随机巡逻

--11.4 AI生成点与随机巡逻

--11.4 小节习题

-11.5 优化游戏体验

--11.5 优化游戏体验

--11.5 小节习题

-11.6 渲染及代码优化

--11.5 优化游戏体验

--11.6 小节习题

-第十一章 章节测试

第十二章 音频系统

-12.1 音频基础

--12.1 音频基础

--12.1 小节习题

-12.2 音频混成器

--12.2 音频混成器

--12.2 小节习题

-12.3 声音特效

--12.3 声音特效

--12.3 小节习题

-第十二章 章节测试

9.3 蓝图通信笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。