蓝图总览

蓝图总览页面包含蓝图剖析和可用的不同蓝图类型。

Choose your operating system:

Windows

macOS

Linux

虚幻引擎中的 蓝图可视化脚本 系统是一类完整的游戏性脚本系统,此系统的基础概念是使用基于节点的界面在虚幻编辑器中创建游戏性元素。与诸多常用脚本语言相同,其用于定于引擎中的对象驱动(OO)类或对象。使用UE4后便知,使用蓝图所定义的对象通常被直接称为"蓝图"。

该系统灵活而强大,使设计师能够使用通常仅面向程序员的几乎所有概念和工具。此外,程序员可借助虚幻引擎C++实现中可用的蓝图特定标记创建基线系统,而此系统又可被设计师加以拓展。

这是否意味着蓝图就是虚幻脚本的替代品?答案既肯定又否定。 之前利用虚幻脚本进行的游戏性编程和其他操作仍然可以通过C++代码进行处理。 同时,蓝图并非刻意为替代虚幻脚本而生,但它们的许多用途确实和虚幻脚本相同,例如:

  • 扩展类

  • 保存并编辑默认属性

  • 管理类的子对象(如组件)实例化

期望达到的结果是:gameplay程序员构建基础类,基础类则公开一套有用的函数和属性; 这些基础类形成的蓝图可使用这些函数和属性并进行延展。

下表对虚幻脚本(出自虚幻引擎3)、C++、蓝图中诸多要素处理方法进行了比较, 帮助旧版虚幻引擎用户过渡到新版, 并对本地代码和蓝图进行比较。

虚幻脚本(UE3)

蓝图(UE4)

C++(UE4)

.uc file

蓝图资源

.h/.cpp files

UClass

UBlueprintGeneratedClass

UClass

延展[ClassName]

ParentClass

: [ClassName]

变量

变量

UProperty()

函数

图表/事件

UFunction()

defaultproperties{}

类默认项

本地构造函数

默认组件

组件列表

本地构造函数

蓝图类型

蓝图有数种类型,每种均有其独特用法,包括创建新类型编写关卡事件脚本, 或是定义其他蓝图使用的接口和宏。

蓝图类

Blueprint Class(蓝图类) , 一般缩写为 Blueprint(蓝图) ,是一种允许内容创建者轻松地基于现有游戏性类添加功能的资源。 蓝图 是在虚幻编辑器中可视化地创建的,不需要书写代码,会被作为类保存在内容包中。 实际上,这些类蓝图定义了一种新类别或类型的Actor,这些Actor可以作为实例放置到地图中, 就和其他类型的Actor的行为一样。

纯数据蓝图

Data-Only Blueprint(仅包含数据的蓝图) 是指仅包含代码(以节点图表的形式)、变量及从其父类继承的组件
的类蓝图。仅包含数据的蓝图允许您调整及修改继承的属性,但是不能添加新元素。 从本质上讲,这些蓝图是原型的替代物,设计人员可以使用它们来调整属性或者设置具有变种的项目。

Data-Only Blueprints(仅包含数据的蓝图) 是在合并的属性编辑器中进行编辑的,但是也可以通过使用完整的 蓝图编辑器 来添加代码、 变量或组件,来将其转换为完整的蓝图 。

关卡蓝图

关卡蓝图(Level Blueprint) 是一种专业类型的 蓝图(Blueprint) ,用作关卡范围的全局事件图。 在默认情况下,项目中的每个关卡都创建了自己的关卡蓝图,您可以在虚幻编辑器中编辑这些关卡蓝图, 但是不能通过编辑器接口创建新的关卡蓝图。

与整个级别相关的事件,或关卡内Actor的特定实例, 用于以函数调用或流控制操作的形式触发操作序列。 熟悉虚幻引擎3的人应该非常熟悉这个概念, 因为它与Kismet在虚幻引擎3中的工作原理非常相似。

关卡蓝图还提供了关卡流送和 Sequencer 的控制机制, 以及将事件绑定到关卡内的Actor的控制机制。

蓝图接口

蓝图接口(Blueprint Interface) 是一个或多个函数的集合 - 只有名称,没有实施 -
可以添加到其他蓝图中。任何添加了该接口的蓝图都保证拥有这些函数。接口的函数 可以在添加它的每个蓝图中提供功能。在本质上,这类似于一般编程中的接口概念, 它允许多个不同类型的对象通过一个公共接口 共享和被访问。简单地说,蓝图接口允许不同的蓝图相互共享和发送数据。

内容创建者可以通过编辑器以与其他蓝图类似的方式创建蓝图接口, 但它们仍有一定的局限性,原因在于以下操作不可执行:

  • 添加新变量

  • 编辑图表

  • 添加组件

蓝图宏库

蓝图宏库(Blueprint Macro Library) 是一个容器,它包含一组 或自包含的图表,这些图表可以 作为节点放置在其他蓝图中。它们可以节省时间,因为它们可以存储常用的节点序列, 包括执行和数据传输所需的输入和输出。

宏在引用它们的所有图表之间共享,但是它们会自动扩展到图表中, 就像它们在编译期间是一个折叠节点那样。这意味着蓝图宏库不需要编译。但是, 对宏的更改仅反映在重新编译包含这些图表的蓝图时 引用该宏的图表中。

蓝图工具

蓝图工具 (简称 Blutility ),是用于执行编辑器行为或延展编辑器功能的纯编辑器蓝图。 其可将不带参数的 事件 作为 UI 按键公开, 并能执行对 蓝图 公开的任意函数,同时对视口中当前选定的 Actor 集产生作用。

蓝图剖析

蓝图功能由诸多元素定义。 部分元素默认存在,其余可按需添加。 这些元素可用于定义组件、执行初始化和设置操作、对事件作出响应、组织并模块化操作, 以及定义属性等行为。

组件窗口

了解组件(Components)后, 蓝图编辑器(Blueprint Editor) 中的 组件(Components) 窗口允许您将组件添加到蓝图。这提供了以下方法: 通过胶囊组件(CapsuleComponent)、盒体组件(BoxComponent)或球体组件(SphereComponent)添加碰撞几何体, 以静态网格体组件(StaticMeshComponent)或金属网格体组件(SkeletalMeshComponent)形式添加渲染几何体, 使用移动组件(MovementComponent)控制移动。还可以将组件(Components)列表中添加的组件 指定给实例变量,以便您在此蓝图或其他蓝图的图表中访问它们。

构造脚本

创建蓝图类的实例时, 构造脚本(Construction Script) 在组件列表 之后运行。它包含的节点图表允许蓝图实例执行初始化操作。 构造脚本的功能可以非常丰富,它们可以执行场景射线追踪、设置网格体和材质等操作,从而根据场景环境来进行设置。 例如,光源蓝图可判断其所在地面类型,然后从一组网格体中选择合适的网格体, 或者,栅栏蓝图可以向各个方向射出射线, 从而确定栅栏可以有多长。

事件图表

蓝图的 事件图表(EventGraph) 包含一个节点图表;节点图表使用事件和函数调用来执行操作,从而响应与该蓝图有关的游戏事件。它添加的功能会对该蓝图的所有实例产生影响。你可以在这里设置交互功能和动态响应。例如,光源蓝图可以通过关闭其 LightComponent 和更改其网格体使用的材质,来响应伤害事件。光源蓝图的所有实例会自动具备这个功能。

函数

函数(Functions) 是属于特定 蓝图(Blueprint) 的节点图表,它们可以从蓝图中的另一个图表 执行或调用。函数具有一个由节点指定的单一进入点,函数的名称 包含一个执行输出引脚。当您从另一个图表调用函数时,输出执行引脚将被激活, 从而使连接的网络执行。

变量

Variables(变量) 是保存值或参考世界场景中的对象或Actor的属性。这些 属性可以由包含它们的 蓝图(Blueprint) 通过内部方式访问,也可以 通过外部方式访问,以便设计人员使用放置在关卡中的蓝图实例 来修改它们的值。

蓝图模式

蓝图的 模式 决定其窗口中显示的内容。关卡蓝图仅包含一个模式(图表模式),而蓝图类包含三种不同模式:

  • 默认模式——可在此设置蓝图默认选项。

  • 组件模式——可在此添加、移除和编辑构成蓝图的组件。

更多详情,请参阅蓝图类模式文档。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消