2024-09-12
Unreal Engine
00

目录

输入动作
操作
触发器
修改器
蓝图应用

以初学者的角度记录虚幻引擎的学习过程。本文为增强输入系统(Enhanced Input)的入门介绍与使用方法。增强输入系统从UE5.1开始取代了之前版本的轴映射和操作映射。虽然在 项目设置-输入 中仍然能够使用,但是该项特性在可预见的未来应当会被废除,因此学习它的升级替代,增强输入系统,是很有必要的。

参考链接:

提示

如果你想知道一个增强输入的实际应用案例,可以参考:从零开始构建游戏:运动系统

增强输入系统与传统的映射方法最大的区别在于,它是一种数据资产,同时是面向对象的,与对象息息相关,而非针对整个项目。因此,我们可以更加方便地管理每一个Actor的输入,而不需要考虑不同键位与输入之间的冲突、状态管理。

输入动作

输入动作指的是具体的一个行为或者动作,并且可以使用触发器和修改器进行精确描述,例如长按奔跑,单击下蹲等。双击输入动作资产,进入输入动作管理面板。

image.png

操作

重点内容有两个,就是触发器和修改器。触发器就是对该动作触发条件的判定,修改器就是对原始输入的处理。

触发器

触发器的内容如下:

image.png

中译中的结果如下:

  • 下移:按下,并且按下后会持续触发。
  • 已按下:按下,并且按下后只触发一次。
  • 已松开:松开按键时触发一次。
  • 弦操作:当另一个输入动作触发时才能通过按键触发当前动作,并且是持续触发。(例如,只有你移动时,你才能进入奔跑状态)
  • 点按:必须在指定时间内松开按键才能触发一次。
  • 组合:可以指定另外多个操作的不同阶段,在触发或者没触发的情况下,才能通过按键触发当前操作。(例如,只有在没有移动的情况下,你才能进行下蹲操作)
  • 脉冲:长按按键时,会以一定时间间隔触发,单击则只触发一次。(例如,长按开火键,每隔0.01秒射出一发子弹,最多射出30发)
  • 长按:长按按键时,持续触发。
  • 长按和松开:长按按键,并且在松开时触发一次。

修改器

修改器的内容如下:

image.png

中译中的结果如下:

  • 到世界空间:将输入的2D向量转换为3D向量。(例如,手柄摇杆只会输入XY轴的二维向量,它可以将这个输入的向量转换成XYZ轴三维向量,并且Z一直为0)
  • 否定:取反。(例如,键盘触发时通常值为1,但是取反之后值变为-1)
  • 响应曲线 - 指数:主要用于手柄或者其他线性输入,将输入响应对应为曲线。
  • 响应曲线 - 用户定义:同上,只不过用自定义曲线代替了指数曲线。
  • 平滑:对每一帧进行平滑处理。(针对键盘只有0和1的输入时很有用)
  • 拌合输入轴值:应当理解为“交换输入轴值”。将输入的2D向量的XY值交换。
  • 按差量时间缩放:将输入的值乘以每帧的时间间隔,可以实现在不同帧率下使输入的值的总大小不变。
  • 标量:将原本范围在0~1的轴值映射到任意范围中。
  • 盲区:也就是死区,针对手柄输入设备,设置触发或响应的区间。
  • 视野缩放:根据FOV的值调整输入大小。

修改器可以同时应用多个,并且会从上到下依次调用。

蓝图应用

添加完毕输入动作后,我们需要将它添加进入蓝图。一个标准的输入动作通常有如下属性:

image.png

名称释义
Triggered当触发时调用(即满足上文中提到的触发器的条件)
Started当绑定的按键按下时调用(不论是否达到触发条件都会调用)
Ongoing当绑定的按键按下时 并且未触发持续调用
Canceled当绑定的按键按下但是没能达到触发条件时调用
Completed当触发事件结束后调用
Action Value输入对应的输入值
Elapsed Seconds经过的时间:从按下按键经过的时间
Triggered Seconds触发的时间:从触发开始经过的时间
Input Action触发的输入动作名称

本文作者:Jeff Wu

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!