UE4 蓝图中的Tick事件和潜在动作

虚幻引擎4有一个被称为“Tick”的事件,它产生于游戏的每一帧。例如,在一个运行在每秒60帧的游戏中,“Tick”事件会在每一秒产生60次。

“Tick”事件提供了一个被称为“delta秒”的值,该值是自上一帧结束后的时间。使用事件“Tick”,我们可以精确控制在游戏中的蓝图的运动。

为了说明使用“Tick”事件,让我们创建一个简单的例子,沿X轴移动actor。运动的速度是存储在一个称为“Speedx”浮点类型的变量。我利用此变量的默认值是100,这是100厘米每秒的速度,因为在虚幻4引擎,一个虚幻的单位等于一厘米。 (1 UU = 1厘米)

这个例子的脚本就变为如下:

UE4 蓝图中的Tick事件和潜在动作_第1张图片 

"Add Actor World Offset"动作将根据输入参数的值来改变角色的位置,该输入参数称为“delta位置”,它是一个包含x、y和z轴位置值的向量。在这个例子中,我们只想修改x轴,所以y和z轴的值是零。

我们需要增加"Delta Seconds"的值—通过提高变量"SpeedX"中的速度值来发现等价于actor在X轴每一帧应该移动的距离

为了更好地理解这个计算,让我们做一个模拟,假设游戏运行在每秒50帧。要计算“Delta秒”的值,只需按帧的数目划分1秒:


Delta Seconds = 1 sec / 50

Delta Seconds = 0.020 sec (equivalent to 20 milliseconds)

 

现在要找出Actor每一帧需要移动的x轴上的距离,通过提高"SpeedX"上的"Delta Seconds"的值来实现

 

X = SpeedX * Delta Seconds

X = 100 cm/sec * 0.020 sec

X = 2 cm

 

平均而言,Actor在这个模拟每帧将移动2厘米。


虚幻4引擎有一种行动称为Latent。潜在动作与蓝图脚本的正常流程并行运行。因此,一个潜在的行动的结论可能会发生几帧后开始。

最简单和最常见的潜在动作是“延迟”功能,它执行的动作连接到引脚“完成”,只有在参数“持续时间”加载之后的时间运行。下面的图片显示了动作“延迟”的简要说明:

UE4 蓝图中的Tick事件和潜在动作_第2张图片 

潜在行动的另一个例子是"Timeline",这将是下一篇文章的主题。

为了说明“延迟”功能的使用,游戏运行时间,我们将用一个简单的方式创建一个脚本计算帧速率

首先,创建包含下图中的三个整数变量的新蓝图。他们在编辑器中都被标记为“可编辑”,我们可以快捷查看他们的值。我创建了一个类称为“FPS”来包含这些变量

 

脚本使用"Tick" 事件和"Delay" 功能。变量"Frames" 计数已渲染的帧数。我们使用"Delay" 函数计算每5秒的帧的速率。

计算是基于变量之间的减法“帧”和“检查点”,表示在5秒通过的帧的数量。这个结果除以5找到每秒的平均帧速率。然后在变量“关卡”中存储变量“帧”的当前值,作为下一个计算的参考。

以下是“Tick”事件的脚本:

UE4 蓝图中的Tick事件和潜在动作_第3张图片 

运行此脚本时,我们可以看到执行流不经过“延迟”函数,直到完成在编辑器中显示的内部计数:

UE4 蓝图中的Tick事件和潜在动作_第4张图片 

下面的图像显示了我执行示例时计算变量的一些值,平均每秒钟计算32帧

UE4 蓝图中的Tick事件和潜在动作_第5张图片 

由于潜在动作的并行特性,它们不能在蓝图函数中使用。下面的图像显示了在使用"Test Latent"创建的函数中使用潜在动作时产生的编译错误。

UE4 蓝图中的Tick事件和潜在动作_第6张图片 

你可能感兴趣的:(UE4)