节点是您的流程图的基本构建单元。
每个节点都提供某种功能,其基本理念是处理输入并生成输出。
一个很好的例子就是“表达式”节点:
它通过输入引脚接收 “a” 和 “b” 的数值,进行处理后,通过输出引脚返回 “value”。
借助 Flowgraph 提供的丰富节点类型,您可以构建复杂的场景,为关卡带来互动性。
另外也有一些节点仅用于输出数值,没有任何输入引脚:
此“数值(Number)”节点提供一个数值,这个数值可以在节点内部设置,而不是通过输入引脚传入。
另一方面,也有一些节点只通过输入引脚接收数据并进行处理,但没有任何输出引脚。例如,它们可能会把输入存储到一个变量中,或者在游戏世界中触发某些反应。
例如,这个“消息”节点会接收一条消息和一个持续时间,然后在游戏内的界面上将这条消息显示给玩家。它本身没有任何输出。
大多数节点需要“流(flow)”才能运行。你可以在此处
了解更多关于流(flow)的信息。
有多种方式可以向你的图表中添加节点。
最简单的方法是在图表的空白处点击 右键,然后在弹出的菜单中选择你想要添加的节点。
另一种添加新节点的方法是,按住 左键 从某个引脚拖拽连线到图表的空白区域。这样新建的节点会被直接连接到该引脚上。
最后,您还可以通过“节点库”窗口来创建节点。您可以在窗口 页面了解更多信息。
你可以通过以下方式删除节点:
Flowgraph 的不同节点为你的项目提供了丰富多样的功能。为了帮助你更好地理解如何与节点交互,以及节点的工作方式,我们引入了节点行为。
你可以在节点标题栏右上角看到这些行为的图标。将鼠标悬停在节点上时,会显示这些行为的详细解释:
当前 Flowgraph 中存在以下几种节点行为:
在 Flowgraph 里,节点的标准行为是:只要节点持续接收到流信号,就会反复执行其功能。但有些节点只执行一次更为合理,比如“生成载具”节点。我们一般不希望它每一帧都生成一辆载具;带有 图标的节点代表它们是“一次性”节点。
在“重复执行”和“一次性”行为之间,还有一些节点可以按不同需求切换使用方式。例如“设置重力”节点就是一个例子。
在这种情况下,只要节点持续接收到流(flow)信号,每一帧都会设置重力。这在需要动态调整输入数值并实时更新重力时非常有用。
在这种情况下,我们只会设置一次重力,即使有持续的流信号输入。之后需要通过“重置(reset)”引脚进行重置,该节点才能再次工作。这通常适用于玩家进入新阶段时,仅需调整一次重力的场景。
在早期版本的 Flowgraph 中,如果你想实现“一次性”行为,必须在该节点之前添加一个额外的“一次性(Once)”节点,将流信号转换成脉冲(impulse)。 为了让你可以更灵活地控制节点的用法,我们增加了“动态节点(Dynamic Nodes)”。这些节点可以根据需求在“重复”(Repeat)与“一次性”(Once)行为之间切换。
切换行为时,你只需选中节点并在“属性(Properties)”窗口中查看。
在此窗口你会看到设置为一次性或设置为重复按钮,点击即可动态切换节点的行为。
引脚定义了一个节点的输入和输出。
节点左侧的引脚为输入引脚,右侧的引脚为输出引脚。为了让 Flowgraph 实现交互和数据流动,你可以将不同节点的输入引脚和输出引脚连接起来,形成所谓的链接(Links)。更多关于链接的内容可在下文阅读。 每个引脚都有自己的类型,用于定义节点的输入和输出是什么类型:
有了这些类型,我们可以确保“数值型”输入引脚只能从“数值型”输出引脚接收数值,其他类型的引脚无法与之连接。
如果你不清楚某个引脚的具体功能,可以将鼠标悬停在该引脚上查看节点作者提供的工具提示。
在许多情况下,你可能并不需要某个节点中的所有引脚,这时可以将当前不需要的引脚隐藏起来。
可以通过选中节点,并在“属性”窗口中查看相关设置。在这里,你可以通过 图标来切换引脚的可见性。
另一种常见情况是,你希望为某个引脚设置一个固定输入值,不需要通过其他引脚控制。例如消息字符串始终为 “Hello World!”。此时可以使用所谓的“硬编码”引脚。
你可以在“属性”窗口中选中该节点并点击相关的引脚符号,将普通引脚切换为 符号表示的“硬编码”引脚。
这样你就可以直接修改该引脚的值,而不需要再通过其他引脚进行输入。
链接通过连接不同节点的引脚,定义了 Flowgraph 的流程。
当你创建一个链接时,你实际上是在指定,该链接所连接的输出引脚将会从输入节点接收其输入数值。
只有当两个引脚类型匹配时,才能创建链接。根据节点的类型,不同类型的链接会有不同的颜色:
链接可以通过多种方式创建:
按住 左键点击 一个引脚,并将链接拖到另一个引脚上。你只能连接输入引脚到输出引脚:
按住 左键点击 一个引脚,将链接拖到画布的空白区域,然后选择要创建的节点。这样会自动在该引脚与新节点之间创建链接。你只能选择拥有与所创建链接类型相匹配引脚的节点:
按住 Ctrl,选择两个节点并按下 C。这会自动将所有类型相同的引脚互相连接起来。
你可以通过多种方式移除链接:
你也可以在链接上点击 右键,然后在菜单中选择 删除 来移除链接。
要移除某个节点上所有的连接,可以先选中该节点,然后按下 X 键。
如果你按住 Ctrl 并选择多个节点,第一次按下 X 会移除这些节点与外部的所有链接,第二次按下 X 会移除这些节点组之间的所有内部链接。
为了提升流程图的可读性,你可以隐藏链接。
这可以通过多种方式实现:
你也可以通过多种方式恢复显示被隐藏的链接:
如果你刚刚隐藏了链接,可以再次按下 H 键来恢复显示。
选中一个节点后,被隐藏链接的“虚影”会出现。点击此虚影即可恢复显示链接。
在选中一个或多个节点时,按下 Ctrl+H 组合键,可以恢复显示所有已连接的被隐藏链接。
图是你 Flowgraph 项目的容器。
你的项目由不同类型的图组成,这些图共同构建了你的项目逻辑。将功能分散在多个图中(而不是只用单个大图)可以提升项目的可读性,每个图都有独立的功能。
让我们来看看 Flowgraph 中存在哪些不同类型的图。
流程图是 Flowgraph 中最基础的图类型。
一个激活的流程图会通过其「on Update」节点输出流程
。这个流程可以激活其它节点,从而在流程图中实现功能。
「On Update」节点有 3 个流程输出引脚:
每个 Flowgraph 项目至少有一个状态图。
状态图不像流程图那样有流程(flow),它只由状态组成,每个状态要么处于激活状态,要么处于未激活状态。
“状态入口”(State Entry)节点作为状态图的起点。
可以有多个状态同时处于激活状态,当“状态出口”(State Exit)被触发时,这些状态都会变为未激活状态。
一个状态可以是以下两种之一:
状态的切换(state transition),可以通过流程图中的 “Transition” 节点或分组状态中的 “State Exit” 节点来触发。
每个状态可以有不同的输出引脚用于切换,这有助于区分不同的切换原因,例如成功或失败。
你可以在选中状态后,通过“属性”窗口修改这些输出引脚。
随后,你可以在 “Transition” 节点或 “State Exit” 节点中修改要触发的切换。
在许多情况下,你希望在同一帧内,在不同状态之间传递一个值。
这可以通过 “转换堆栈”(Transition Stack)来实现。转换堆栈会被传递给后续状态,并按照变量名称进行索引保存。
你可以通过 “Transition” 节点向堆栈中添加值。在节点的“属性”窗口中可以添加或移除转换变量。
这些变量可以在后面的状态中通过 “获取转换变量”(Get Transition Variables)节点访问。
由于转换堆栈中的值是按名称索引的,存储和读取转换变量时使用的字符串必须完全一致。
如果已经存在的变量被再次设置,它的旧值将会被覆盖。
这篇文章对你有用吗?