前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UE4 蓝图中的Tick事件和潜在动作

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

作者头像
Ning@
发布2021-11-10 15:26:11
3.7K0
发布2021-11-10 15:26:11
举报
文章被收录于专栏:烤包子烤包子

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

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

为了说明使用“Tick”事件,让我们创建一个简单的例子,沿X轴移动actor。运动的速度是存储在一个称为“Speedx”浮点类型的变量。我利用此变量的默认值是100,这是100厘米每秒的速度,因为在虚幻4引擎,一个虚幻的单位等于一厘米。 (1 UU = 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。潜在动作与蓝图脚本的正常流程并行运行。因此,一个潜在的行动的结论可能会发生几帧后开始。

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

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

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

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

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

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档