蓝图变量

保存值或参考世界场景中的对象或Actor的属性。

Windows
MacOS
Linux

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

变量显示为包含变量名称的圆形框:

Variable Nodes

有关使用Matinee修改特定类型变量的值的信息,请参阅使用Matinee修改蓝图属性

变量类型

变量能够以各种不同的类型创建,其中包括数据类型(例如布尔、整数和浮点),以及用于保存对象、Actor和特定类等对象的引用类型。 此外,您还可以创建每种变量类型的阵列。每种类型都采用颜色编码,以便于识别:

变量类型

颜色

示例

用途

布尔(Boolean)

红色

RedWire.png

红色变量表示布尔(真/假)数据。

整数(Integer)

青色

CyanWire.png

青色变量表示整数数据,或没有小数的数字,例如0、152、-226。

浮点(Float)

绿色

GreenWire.png

绿色变量表示浮点数据,或小数数字,例如0.0553、101.2887、-78.322。

字符串(String)

Magenta

MagentaWire.png

洋红色变量表示字符串数据,或一组字母数字字符,例如Hello World。

文本(Text)

Pink

PinkWire.png

粉色变量表示显示的文本数据,特别是在该文本具有本地化识别能力的情况下。

矢量(Vector)

金色

GoldWire.png

金色变量表示矢量数据、由3个元素的浮点数组成的数字、XYZ等轴或RGB信息。

旋转体(Rotator)

紫色

PurpleWire.png

紫色变量表示旋转体数据,旋转体数据是一组定义三维空间中的旋转的数字。

变形(Transform)

橙色

OrangeWire.png

橙色变量表示变形数据,它结合了平移(三维位置)、旋转和缩放。

对象(Object)

蓝色

BlueWire.png

蓝色变量表示对象,包括光源、Actor、静态网格体、摄像机和声音提示。

我的蓝图(My Blueprint)选项卡中的变量

我的蓝图(My Blueprint)选项卡允许将自定义变量添加到蓝图,并列出所有现有变量, 包括在组件列表中添加的组件实例变量, 或通过将值提升到图表中的变量而创建的变量。

My BLueprint Pane

创建变量

按照以下步骤操作即可实现在蓝图中创建变量。

  1. 创建蓝图并将其打开到 图表(Graph) 选项卡。

  2. 通过单击变量列表标头myblueprint_variable.png上的by clicking on the Add Button plus_Button.png上的 添加按钮(Add Button) plus_Button.png,从 我的蓝图(MyBlueprint) 窗口创建一个新变量。

    MyBlueprintPane_createVar.png

  3. 一个新变量随即创建,同时提示您输入它的名称。

    HT5.png

    输入蓝图的名称,然后进入 细节(Details) 面板以调整变量的属性。

  4. 细节(Details) 面板中,有几个设置可用于定义如何使用或访问变量。

    HT6.png

    若要为变量设置 默认值(Default Value),您必须先 编译(Compile) 蓝图。

选项

说明

变量名称(Variable Name)

变量的名称。

变量类型(Variable Type)

通过下拉菜单设置变量类型,并确定变量是否是阵列

可编辑(Editable)

变量是否可在蓝图实例上公开编辑。

提示文本(Tooltip)

有关此变量的额外信息,当光标位于该变量上时显示。

生成时公开(Expose on Spawn)

在生成蓝图时,变量是否应作为引脚公开。

私有(Private)

变量是否应设置为私有(派生的蓝图不能修改它)。

公开到Matinee(Expose to Matinee)

变量是否应设置为公开以便 Matinee 可以修改它。

配置变量(Config Variable)

允许从配置文件设置变量。

类别(Category)

允许根据给定标签对变量进行分类。变量将按其标签排序。

复制(Replication)

此变量是否应在网络上复制

还有一些序列化选项可以通过展开 细节(Details) 面板来定义。

HT37.png

在这里,您可以使用 临时(Transient) 选项设置变量是否序列化以及在加载时是否以零填充。您还可以使用 保存游戏(SaveGame) 选项为保存的游戏设置变量是否序列化。

可编辑变量

当变量被设置为 可编辑(Editable) 时,这允许从该变量所在的蓝图外部修改该变量。

HT21.png

您可以从 细节(Details) 面板的 可编辑( Editable) 设置下将变量设置为可编辑(Editable),也可以单击 我的蓝图(MyBlueprint)窗口中变量旁边的 闭眼(Closed Eye)图标来进行此设置。当眼睛图标关闭时,变量当前被设置为不可编辑(这是默认设置)。当眼睛图标打开时,变量被设置为 公开(Public)(或 不可编辑(Editable),如下所示)。

当变量被设置为可编辑( Editable)时,您可以从主编辑器(Main Editor)窗口的 细节(Details) 面板设置变量的值。

HT23.png

上面,变量 光源颜色(LightColor) 已被设置为可编辑( Editable),我们现在可以在关卡编辑器的 细节(Details) 面板中设置此值。

变量提示文本

您还可以为变量添加 提示文本(Tooltip),当鼠标在编辑器中悬停于变量之上时,将显示此提示文本。

HT25.png

您可以从变量的 细节(Details) 面板中添加 提示文本(Tooltip)。当您执行此操作时,如果变量设置为 公开(Public),那么眼睛(Eye)图标将从黄色变为绿色,表示已为该变量编写提示文本。

HT24.png

生成时公开

生成时公开(Expose on Spawn) 选项允许您设置变量是否应在生成其所在的蓝图时可访问。

HT26.png

上面我们有一个名为 光源颜色(LightColor) 的变量,它是一个设置为 生成时公开(Expose on Spawn) 的线性颜色属性。该变量在点光源的蓝图中实现,点光源使用 设置光源颜色(Set LightColor) 节点和 光源颜色(LightColor) 变量来确定光源的颜色。

下面,在另一个蓝图中,使用一个脚本来生成点光蓝图,由于 光源颜色(LightColor) 变量设置为生成时公开(Expose on Spawn),所以 从类生成Actor(Spawn Actor from Class) 节点上提供了设置此值的选项,这使我们能够在游戏世界中生成光源时设置其颜色。

HT27.png

私有变量

通过在变量上选中 私有(Private) 选项,可以防止从外部蓝图修改变量。

例如,下面有一个未设置为私有的变量:

HT42.png

在另一个蓝图中,我们生成包含此变量的蓝图,然后关闭 返回值(Return Value),结果是我们可以访问此变量。

HT43.png

但如果我们将它设置为私有:

HT41.png

然后再次生成蓝图并尝试访问此变量,结果是我们无法访问。

HT44.png

公开到Matinee

若要使变量受 Matinee 影响,您需要选中 公开到Matinee(Expose to Matinee)选项。

HT31.png

下面,我们创建了一个Matinee,并添加了包含蓝图的轨迹。然后,我们想要通过Matinee来修改此蓝图中的线性颜色(Linear Color)变量,并且可以通过添加 线性颜色属性轨迹(LinearColor Property Track) 来实现此目的。

HT32.png

然后,我们将收到提示,它要求我们选择线性颜色(LinearColor)变量,以从蓝图(光源颜色(LightColor))属性进行修改。

HT33.png

一旦我们执行了此操作,我们就可以向轨迹添加键,以便随着时间的推移修改变量的值。

HT34.png

有关使用 Matinee 的更多信息,请参阅Matinee和过场动画文档。

提升为变量

您还可以使用 提升为变量(Promote to Variable) 选项创建变量。

右键单击 蓝图节点上的任何输入或输出数据引脚,并选择 提升为变量(Promote to Variable) 选项。

HT38.png

通过在 新光源颜色(New Light Color) 引脚上 单击右键 并选择 提升为变量(Promote to Variable) 选项,我们可以将一个变量指定为 新光源颜色(New Light Color) 值。

HT40.png

或者,您可以拖出一个输入或输出引脚,并选择 提升为变量(Promote to Variable) 选项。

HT39.png

访问蓝图中的变量

在使用蓝图中的变量时,您通常会通过以下两种方式之一访问它们:通过使用 获取(Get) (被称为Getter)来获取变量的值,或使用 设置(Set) 节点(被称为Setter)来设置变量的值。

HT45.png

您可以通过在图表中 单击右键 并键入 Set (变量名) Get (变量名),为变量创建一个 设置(Set) 节点(上面1)或 获取(Get) 节点(上面2)。另一种方法是按住 Ctrl 键并将变量从 我的蓝图(MyBlueprint) 窗口拖动变量来创建一个 获取(Get) 节点,或者按住 Alt 键并从 我的蓝图(MyBlueprint) 窗口中拖动变量来创建一个 设置(Set) 节点。

编辑变量

您可以在执行之前将变量值设置为蓝图节点网络的一部分或默认值。若要设置变量默认值:

  1. 单击蓝图编辑器工具栏上的 类默认(Class Defaults) 按钮,以在 细节(Details) 面板中打开默认设置(Defaults)。

  2. 细节(Details) 面板中,从变量名称右侧输入所需的默认值。

    blueprint_details_variable_callout.png

    上面我们突出显示了颜色(Color)变量,我们可以在其中设置其默认颜色。

如果您没有看到变量在默认中列出,请确保单击了 编译(Compile) 按钮。

重命名变量

若要重命名变量:

  1. 我的蓝图(My Blueprint) 选项卡中 右键单击 变量名称,然后在出现的菜单中选择 重命名(Rename)

    rename_variable_menu.png

  2. 在文本框中键入新的变量名称,然后按 Enter 进行保存。

    rename_variable.png

变量属性

您可以在 细节(Details) 面板中为变量设置所有属性。有些变量可能具有比此处所示更多的属性,例如,对于矢量,有 公开到Matinee(Expose to Matinee),对于整数或浮点数等数字变量,有 滑块范围(Slider Range)

属性

说明

变量类型(Variable Type)

在下拉菜单中设置变量类型,并确定变量是否为阵列。

可编辑(Editable)

设置可否在 类默认(Class Defaults) 和蓝图的 细节(Details) 选项卡中编辑变量的值。

提示文本(Tooltip)

为变量设置提示文本。

私有(Private)

设置该变量是否应为私有且是否不应由派生蓝图修改。

类别(Category)

从现有类别中选择,或键入一个新的类别(Category)名称。设置类别(Category)确定变量在 类默认(Class Defaults)我的蓝图(My Blueprint)选项卡和蓝图的 细节(Details) 选项卡中所处的位置。

复制(Replication)

选择变量的值是否应在客户端之间复制,以及如果复制该值,是否应通过回调函数发出通知。

获取和设置变量值

您还可以通过获取(Get)和设置(Set)节点的方式将变量作为蓝图网络的一部分进行编辑。最简单的创建方法是将变量直接从变量(Variables)选项卡拖至事件图表(Event Graph)中。一个小菜单随即出现,询问您是否要创建获取(Get)或设置(Set)节点。

VariableGetSet.png

获取(Get)节点

获取(Get)节点提供具有变量值的网络部分。完成创建后,您可以将这些节点插入任何具有适当类型的节点。

GetVariable.png

设置(Set)节点

设置(Set)节点允许更改变量的值。请注意,这些节点必须由执行线调用才能执行。

SetVariable.png

从我的蓝图选项卡拖动时的快捷方式(Shortcuts when dragging from the My Blueprint tab)

Ctrl-拖动

创建获取(Get)节点。

Alt-拖动

创建设置(Set)节点。

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见