虚幻UE 增强输入-触发器

上一篇增强输入基础:虚幻UE 增强输入-第三人称模板增强输入分析与扩展

主要对第三人称模板的增强输入进行分析、复刻和扩展

本篇将会对增强输入中的触发器中的各参数进行讲解

文章目录


前言

触发器作为增强输入四大概念其中之一,我们上一篇文章也对其作用进行了说明,

在参数讲解的开始、我们再一次回顾一下概念。

输入触发器(UInputTrigger): 使用经过修饰器修改的输入值,
或者使用其他输入动作的输出值,来确定是否激活输入动作。

触发器参数

1、下移TriggerDown


参数只有:驱动阈值

驱动阈值是按压的程度,没按压是0(0默认不起作用,得大于0),按压到底是1

驱动阈值有效范围(0,1]

键鼠无法测试,只能靠手柄进行测试。

大于驱动阈值,且在有效范围时才能触发开始

触发逻辑如下:

先:开始Started(一次)
然后:触发Triggered(持续)
最后:完成Completed(一次)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

2、已按下TriggerPressed


参数只有:驱动阈值

同上面逻辑一模一样,不再说明。

触发逻辑如下:

先:开始Started(一次)
然后:触发Triggered(一次)
最后:完成Completed(一次)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

3、已松开TriggerReleased


参数只有:驱动阈值

同上面逻辑一模一样,不再说明。

触发逻辑如下:

先:开始Started(一次)
然后:持续Ongoing(持续,直到松开)
再:触发Triggered(一次,松开时)
最后:完成Completed(一次)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

4、弦操作TriggerChordAction



参数有:驱动阈值(同上)、弦操作

弦操作是按键同时按下才会产生逻辑。

为了更方便的查看信息,我们打开debug调试窗,输入:

ShowDebug EnhancedInput

只点击鼠标触发逻辑如下:

此时没有打印消息是因为点击左键设置了弦操作,得两键同时按下
空格跳跃结束前点击鼠标左键触发逻辑如下:

一定要是在跳跃完成前按下鼠标左键才有效,按下鼠标不松时则一直为Trigger
点击鼠标左键松开前点击空格跳跃触发逻辑如下:

一定要在鼠标松开之前按下跳跃空格,在跳跃结束时逻辑结束

先:开始Started(一次,弦操作中任一一个按键结束前按下其他按键触发)
然后:触发Triggered(持续)
最后:完成Completed(一次,弦操作中全部按键结束后触发)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

5、点按TriggerTap


参数有:驱动阈值(同上)、点按释放时间阈值、受时间膨胀影响

点按释放时间阈值:当释放时间小于该值则正常结束,当大于该值则非正常结束。

受时间膨胀影响:如果为真,点按释放时间阈值得乘以时间膨胀的倍数
正常结束触发逻辑如下:(小于该值)

释放时间内松开鼠标触发完成
非正常结束触发逻辑如下:(大于该值)

超过释放时间则触发取消

先:开始Started(一次)
然后:持续Ongoing(持续)1/2,判定条件释放时间
1:
再:触发Triggered(一次,释放时间内松开)
最后:完成Completed(一次)
2:
最后:取消Canceled(一次,释放时间内未松开)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

6、脉冲TriggerPulse


参数有:驱动阈值(同上)、受时间膨胀影响(同上)、开始时触发、间隔、触发限制

开始时触发:在按下的一瞬间开始直接接触发Trigger

间隔:触发间隔时间

触发限制:0则无限制,限制次数,大于改次数时直接触发结束

间隔0.2s触发限制3次触发逻辑如下:

间隔0.2s触发限制无限次触发逻辑如下:

先:开始Started(一次)
然后:触发Triggered(一次,勾选开始时触发)
再:持续Ongoing(持续,期间按间隔触发Trigger)
最后:完成Completed(触发限制不为0,且触发限制次数完成,否则输出Cancel)

7、长按TriggerHold


参数有:驱动阈值(同上)、受时间膨胀影响(同上)、保存时间阈值,为一次性

保存时间阈值:按压时间超过该数值正常触发完成(未超过则触发取消)

为一次性:触发Trigger的次数,为真则一次,否则持续。

超过保存时间阈值(0.2),为一次性为真触发逻辑如下:

未超过保存时间阈值(0.2)触发逻辑如下:

先:开始Started(一次)
然后:持续Ongoing(持续)
再:触发Trigger(持续/一次/无,为一次性为真则一次,非正常结束则无,否则持续)
最后:完成Completed/取消Cancel(一次,按压时间超过该数值正常触发完成)

8、长按和松开TriggerHoldAndRelease


参数有:驱动阈值(同上)、受时间膨胀影响(同上)、保存时间阈值

保存时间阈值:按压时间超过该数值正常触发完成(未超过则触发取消)

超过保存时间阈值(0.2)触发逻辑如下:

未超过保存时间阈值(0.2)触发逻辑如下:

先:开始Started(一次)
然后:持续Ongoing(持续)1/2(正常结束1,非正常结束2)
1:(超过保存时间阈值)
再:触发Trigger(一次)
最后:完成Completed(一次)
2:(未超过保存时间阈值)
最后:取消Cancel(一次)

9、组合TriggerCombo



重点参数有:组合操作中的组合步操作、组合步骤完成状态、取消操作、按键的时间

组合步操作:按数组顺序按键触发组合技

组合步骤完成状态:在前一个动作完成状态完成之前按下下一个按键才能触发

按键的时间:对第一个按键无意义外,在前一个按钮结束该时间间隔内按下下一个按键才能组合成功

取消操作:在组合按键结束前按下则取消组合按键逻辑效果

这部分展示起来很麻烦,展示最常见的两种效果:

组合连接成功:

组合连接失败:(超过了按键的时间)

此部分就不分析执行逻辑了,过于复杂了。

总结

触发器很强大,对于按键控制很有趣,大家可以多尝试尝试!

然后最需要说一下组合和弦操作

组合:先后
弦操作:同时

参考

B站UP布兰德儿老蒋:虚幻引擎倾囊相授计划:增强输入系统教程

相关推荐
电子云与长程纠缠1 小时前
UE5.3中通过编辑器工具创建大纲菜单文件夹
java·ue5·编辑器
_oP_i9 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl
DBBH11 小时前
UE5 第三人称学习之动画 control rig
ue5
UTwelve11 小时前
【UE5】一种老派的假反射做法,可以用于移动端,或对反射的速度、清晰度有需求的地方
ue5·虚幻引擎·着色器·虚幻4
代码盗圣13 小时前
GODOT 4 不用scons编译cpp扩展的方法
游戏引擎·godot
UTwelve14 小时前
【UE5】可以实时绘制的体积渲染 【第三章 体积纹理绘制 - 3.绘制体积】
ue5
Leoysq18 小时前
【UGUI】实现点击注册按钮跳转游戏场景
游戏·unity·游戏引擎·ugui
1204157137 肖哥19 小时前
UE5.4 PCG基础节点
ue5
PandaQue20 小时前
《潜行者2切尔诺贝利之心》游戏引擎介绍
游戏引擎
_oP_i1 天前
unity中 骨骼、纹理和材质关系
unity·游戏引擎·材质