查看: 572|回复: 8

[可视化蓝图脚本] 【流程控制 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-27 16:19:18 | 显示全部楼层 |阅读模式


本页面的内容:

      
概述

开关节点

编辑开关节点

标准流程控制节点
Branch
DoN
DoOnce
FlipFlop
ForLoop
ForLoopWithBreak
Gate
MultiGate
Sequence
WhileLoop
     概述
Flow Control (流程控制)使得能在蓝图中清楚地控制执行的流程。 此种控制可以多种形式进行,基于某些值为真的情况来选择图表的某个分支来执行,多次执行某个特定分支,以特定顺序执行多个分支,等等。 默认的流程控制操作包括了分支(if语句),循环(for和while语句),门,及序列。
开关节点
开关节点读取数据输入,并会基于该输入值来从匹配的(或可选的默认)执行输出中发送执行流程。 可用的开关有以下几种类型: Int (整型),String (字符串型), Name (资源文件名称型),以及 Enum (枚举型)。

一般而言,开关节点会根据其估算的数据类型拥有执行输入以及数据输入。 输出均为执行输出。 Enum 开关会自动从 Enum 属性中生成输出执行引脚,而 Int, String 及 Name 开关拥有可自定义的输出执行引脚。
编辑开关节点
当 Int, String, 或 Name 开关节点被添加到 蓝图 时,唯一可用的输出执行引脚为 Default (默认)引脚。 如输入未能匹配定义的任意其它指定输出引脚,则 Default (默认)输出执行引脚将会被触发。  我们可以通过在引脚上点击右键并选择 Remove Execution Pin (移除执行引脚)或通过对开关节点的 Details (细节)选项卡取消勾选 Has Default Pin (拥有默认引脚)选项来实现对它的移除。

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



编辑 **Int** 类型的开关:
选择 Graph (图表)选项卡的开关节点从而在 Details (细节)选项卡中打开其属性。

变更 Start Index (开始索引)为您想要比对的最低整数值。

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



点击开关节点的 Add Pin (添加引脚)来对您的 Start Index (开始索引)值添加引脚。

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



进一步点击 Add Pin (添加节点)将会添加更多引脚,每次对引脚数量值加1。  如需删除执行引脚,对引脚右键点击并选择 Remove Execution Pin (移除执行引脚)。 请注意如移除 Switch on Int 节点的一个输出引脚,将会导致任意拥有更高值的引脚的值降低1,从而来填充间隔。

编辑 **Name** 或 **String** 类型的开关:
选择 Graph (图表)选项卡的开关节点从而在 Details (细节)选项卡中打开其属性。

点击 Pin Names (引脚资源文件名称)右侧的
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]

按钮。

在出现的文本框中输入您想要 String 或 Name 类型的值与其进行比对的值。

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



对其它您想要添加的引脚重复该过程。引脚也可通过在 Details (细节)选项卡中点击
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]

按钮来复制,插入或删除。   如需删除执行引脚,您也可以对引脚右键点击并选择 Remove Execution Pin (移除执行引脚)。
标准流程控制节点
这些节点提供了一系列方法来控制执行的流程。

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



Branch
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



在面对单个 True/False 判定的情况下,Branch(分支)节点是一种创建基于判断的流程的简单方式。 在执行后,分支节点会查找附加的布尔变量的输入值,并在合适的输出节点下方来输出执行脉冲值。

在下图这个简单的示例中,分支节点会查找布尔变量的当前状态。 如该值为 true ,则其会将光照的颜色设置为红色。 如其为 false ,则设置为蓝色。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
(Unlabeled)该执行输入会触发分支检查。Condition取入用来显示哪个输出引脚将被触发的布尔值。
输出引脚
True如输入的状态为 true ,则输出执行脉冲。False如输入的状态为 false ,则输出执行脉冲。
DoN
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



DoN节点将会 N 次触发执行脉冲。 在达到限制后,它将会停止所有的输出执行,直到脉冲被传入其 Reset (重置)输入。

例如,您可以启动车辆20次,然后在绑定到 Reset (重置)输入的加油事件被激活前,无法再次启动车辆。



点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
Enter该执行输入会触发DoN检查。n该输入设置了DoN节点将会触发的次数。Reset该执行输入将会重置DoN节点,这样它可以被再次触发。
输出引脚
Exit该执行引脚仅在DoN的触发次数尚未达到N次时,才会被触发,或者在其Reset(重置)输入被调用时进行触发。
DoOnce
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



DoOnce节点-正如资源文件名称所显示的-将会仅仅触发执行脉冲一次。 在之后,它将会停止所有的输出执行,直到脉冲被传入其 Reset (重置)输入。 该节点等同于DoN节点中 N = 1 的情况。

我们举例来说,您可以对一扇开启的门的节点网络设置DoOnce,这样这扇门将仅仅开启一次。 不过您可以绑定一个触发事件到Reset(重置)输入,这样会导致在触发器被激活时,门会再次打开。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
(Unlabeled)该执行输入会触发DoOnce检查。Reset该执行输入将会重置DoOnce节点,这样它可以被再次触发。
输出引脚
Completed该执行引脚仅在DoN尚未被触发时,才会被触发,或者在其Reset(重置)输入被调用时进行触发。
FlipFlop
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



FlipFlop节点取入执行输出并在两个执行输出间切换。 其第一次被调用时,将会输出A。 第二次被调用时,将会输出B,然后再是A,然后又是B,循环往复。 该节点同时有布尔变量输出,使您可以追溯输出A何时被调用。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
(Unlabeled)该执行输入会触发FlipFlop。
输出引脚
A该输出引脚在首次及之后FlipFlop被触发的每个奇数次被调用。B该输出引脚在第二次及之后FlipFlop被触发的每个偶数次被调用。Is A输出布尔变量值,以表明输出A是否被触发。 这个函数生效后,将会在每次FlipFlop节点被触发后,在 true 和 false 间切换。
ForLoop
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



ForLoop节点的工作原理等同于标准的代码循环,将会在开始和结束之间的每个索引触发执行脉冲。

在此简单示例中,当玩家触碰简单的关卡触发器时,将会触发循环。 该循环将会迭代10次,每次都会调用Print String(输出字符串),它会记录前缀信息以及当前迭代信息。

循环迭代将会在不同的帧间发生,这样的话大量循环可能会影响性能表现。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
(Unlabeled)该执行输入会启动循环。First Index取入表示循环首个索引的整数值。Last Index取入表示循环最后索引的整数值。
输出引脚
Loop Body当其在不同的索引间移动时,对循环的每次迭代输出执行脉冲。Index输出循环的当前索引。Completed当循环完成时,触发标准的执行输出引脚。
ForLoopWithBreak
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



ForLoopWithBreak节点包含了能中断循环的输入引脚,除此之外,它运行的方式与ForLoop节点非常相似。

在此简单示例中,当玩家触碰简单的关卡触发器时,将会触发循环。 该循环会迭代1000次,每次都会触发分支,该分支会检查循环是否达到了500次迭代。 如果没有达到,屏幕上会出现当前迭代次数的信息。 在其超过500次后,分支会调用Custom Event(自定义事件),该值将会中断循环。 Custom Event(自定义事件)用来让整体更容易看懂,从而不需要把线重新拉回Break(中断)输入引脚附近。

循环迭代将会在不同的帧间发生,这样的话大量循环可能会影响性能表现。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]




【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]




项目
描述


输入引脚
(Unlabeled)该执行输入会启动循环。First Index取入表示循环首个索引的整数值。Last Index取入表示循环最后索引的整数值。Break该执行输入会中断循环。
输出引脚
Loop Body当其在不同的索引间移动时,对循环的每次迭代输出执行脉冲。Index输出循环的当前索引。Completed当循环完成时,触发标准的执行输出引脚。
Gate
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



Gate(门)节点用来开启和关闭执行流。 简单来说,Enter输入取入执行脉冲,同时门的当前状态(开启或关闭)将会决定这些脉冲是否从Exit输出中传出。

在此简单示例中,一条没有轨迹的时间轴, with both auto-play and looping activated (同时启用了自动播放并激活了循环),将对门节点的Enter输入引脚进行更新。 关卡中有两个触发器。 一个触发器开门,另一个关门。 如门为开启状态,执行脉冲会离开Exit引脚,此时Print String(输出字符串)被调用,它会登记一条信息到屏幕上。 当玩家触碰Close(关闭)触发器时,门会关闭并且信息会停止显示。 如果随后触碰Open(开启)触发器,该信息会再次出现。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
Enter此执行输入表示任何由门控制的执行。Open此执行引脚设置门的状态为 open (开启),使执行脉冲传送到Exit输出引脚。Close此执行引脚设置门的状态为 closed (关闭),使执行脉冲停止传送到Exit输出引脚。Toggle此执行引脚反向转换门的当前状态。 Open (开启)变成 closed (关闭),反之亦然。Start Closed此布尔变量输入决定了门的起始状态。 如设置为 true ,则门的初始状态为关闭。
输出引脚
Exit如果门的当前状态为 open (开启),则任何流入Enter输入引脚的执行脉冲将会离开Exit输出引脚。 如门为 closed (关闭)状态,则Exit引脚将无法产生效果。
MultiGate
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



MultiGate取入单个数据脉冲并将其传送到任意数量的潜在输出。 这个过程随机按顺序发生,可能会循环。

在本例中,一个简单的循环及自动播放的时间轴每隔半秒输出脉冲。 该脉冲到达MultiGate并做相应传送,触发一系列Print String(输出字符串)节点中的一个,而此系列节点如按顺序播放,会展示一条特殊信息。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
(Unlabeled)取入任意需经过此MultiGate的脉冲的主输入。Reset默认把当前输出索引设置回0,或如果该值非 -1,则将其设置为当前设置的 Start Index (开始索引)值。Is Random如设置为 true ,则以随机顺序选择输出。Loop如设置为 true ,则输出将持续以循环方式重复。 如设置为 false ,则MultiGate值会在使用了所有输出后停止运行。Start Index取入一个整数值来表示MultiGate应首先使用的输出索引值。 -1在这里表示未指定起始点。
输出引脚
Out #每个输出引脚代表了MultiGate节点可用来发送脉冲的可能输出引脚。Add pin尽管算不上真正的输出引脚,此按钮使您能够添加您想要的任意数量的输出。 如需移除输出引脚,可通过右键点击并选择Remove Output Pin(移除输出引脚)来执行。
Sequence
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



Sequence (序列)节点使得单个执行脉冲能按顺序触发一系列事件。 节点可能有任意数量的输出,所有的输出引脚都会在序列节点一获得输入时就被调用。 它们将总是按顺序被调用,但不会有任何延迟。 对一般用户来说,输出引脚看起来好像被同时触发了一样。

本例中,序列节点在关卡的起始处被调用。 然后它按顺序触发5个Print String(输出字符串)节点。 但是,由于没有延迟,这些信息看起来是同时出现的。

点击以获得更大的视图

【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]





项目
描述


输入引脚
(Unlabeled)取入任意需经过此Sequence(序列)的脉冲的主输入。
输出引脚
Out #每个输出引脚代表了Sequence(序列)节点可用来发送脉冲的可能输出引脚。Add pin尽管算不上真正的输出引脚,此按钮使您能够添加您想要的任意数量的输出。 如需移除输出引脚,可通过右键点击并选择Remove Output Pin(移除输出引脚)来执行。
WhileLoop
【虚幻4翻译文档-流程控制 | Unreal Engine】[虚幻4中文文档]



只要特定值为 true ,则WhileLoop节点将会输出一个结果。 在循环的每个迭代中,它会查看其输入布尔值的当前状态。 一旦它读取到 false ,该循环中断。

在本例中,WhileLoop与整数型迭代网络一起被使用,从而计算循环已经运行的次数。 当它到达第10次迭代时,测试布尔变量被设置为 false ,从而终止循环的行为。

在对While loops进行编程时,要尤其注意防止其无限循环。

点击以获得更大的视图






项目
描述


输入引脚
(Unlabeled)取入任意驱动此WhileLoop的脉冲的主输入。
输出引脚
Loop Body在不同的索引间移动时,对循环的每次迭代输出执行脉冲。Completed当循环一结束,就触发标准的执行输出引脚。
回复

使用道具 举报

0

主题

838

帖子

2772

积分

vip会员

Rank: 1

积分
2772
发表于 2016-7-2 19:59:23 | 显示全部楼层
怎么样呢急
回复 支持 反对

使用道具 举报

0

主题

820

帖子

2679

积分

vip会员

Rank: 1

积分
2679
发表于 2016-7-4 02:44:23 来自手机 | 显示全部楼层
楼主辛苦
回复 支持 反对

使用道具 举报

0

主题

871

帖子

2828

积分

vip会员

Rank: 1

积分
2828
发表于 2016-7-4 12:14:22 来自手机 | 显示全部楼层
不错哦  下载看一下啊
回复 支持 反对

使用道具 举报

0

主题

812

帖子

2678

积分

vip会员

Rank: 1

积分
2678
发表于 2016-7-5 22:24:15 | 显示全部楼层
怎么下载额
回复 支持 反对

使用道具 举报

0

主题

925

帖子

2975

积分

vip会员

Rank: 1

积分
2975
发表于 2016-7-16 03:03:52 | 显示全部楼层
一定要看看。。。。。。
回复 支持 反对

使用道具 举报

0

主题

894

帖子

2977

积分

vip会员

Rank: 1

积分
2977
发表于 2016-7-17 01:22:14 来自手机 | 显示全部楼层
好棒好棒好棒,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

844

帖子

2790

积分

vip会员

Rank: 1

积分
2790
发表于 2016-7-17 09:52:07 来自手机 | 显示全部楼层
楼主辛苦
回复 支持 反对

使用道具 举报

0

主题

834

帖子

2723

积分

vip会员

Rank: 1

积分
2723
发表于 2016-7-18 12:35:31 来自手机 | 显示全部楼层
很想看看看了
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部