力反馈

力反馈(Force Feedback) 指的是游戏设备或控制器通过震动将游戏中的力传达给玩家。举一个简单的例子:游戏中发生爆炸,力反馈用于模拟冲击波,形成另一个层面的代入感。

应用之后即可在支持的所有平台上实现力反馈。支持平台包括 iOS(从 4.10 起)、安卓,以及各种控制器。

力反馈效果资源

力反馈效果资源(Force Feedback Effect Asset) 包含用于定义特定力反馈效果的属性。设计师可通过它自定义不同状况下的力反馈。

image alt text

每个力反馈效果可拥有多个通道,每个通道可拥有不同效果。例如:一个通道是控制器右侧长时间的强烈震动,而另一个通道是控制器左侧短促的轻微震动。每个通道效果的模式由曲线进行控制。

力反馈效果的持续时间基于所有通道曲线中最后一个键的位置自动进行计算。例如三个通道中最后一个键的位置分别为 1.25、1.5 和 1.75,则整体效果的持续时间为 1.75。

通道属性

以下通道属性控制通道效果的播放方式。

项目 描述
Affects Left Large 如为 true,将使用左侧大马达播放效果。
Affects Left Small 如为 true,将使用左侧小马达播放效果。
Affects Right Large 如为 true,将使用右侧大马达播放效果。
Affects Right Small 如为 true,将使用右侧小马达播放效果。
Curve 随时间控制效果强度的曲线。换言之,它定义震动的模式。数值高于 0.5,则出现震动;数值低于 0.5 时不会出现震动。

创建力反馈效果资源

使用 内容浏览器 创建力反馈效果资源:

  1. 内容浏览器 中点击 Add New 并选择 Miscellaneous > Force Feedback Effect。资源默认包含一个通道,但可进行添加。

  2. 选择力反馈效果影响设备的左侧和/或右侧,以及每侧的强弱。

  3. 长按 Shift 并在曲线上点击 鼠标左键 添加一个或多个键。

    curve.png

  4. 直接输入键的值,或将键拖入曲线编辑器中进行操作。

    和其他曲线编辑器不同的是,此处的键只能以直线连接。

播放力反馈

力反馈在基础 PlayerController 类中实现。需要访问本地 Player Controller,以便在目标设备或控制器上播放力反馈。

蓝图中播放力反馈:

  1. 通过 Get Player Controller 节点或保存的引用为玩家控制器设置一个引用。

    effect_controller.png

  2. 从引用的输出引脚引出连线,然后在快捷菜单中输入 Play Force Feedback,然后选择 Client Play Force Feedback

    effect_play.png

    如在服务器上调用,力反馈将被复制到拥有的客户端。

  3. 直接在节点上(或使用连接的变量)指定使用的力反馈效果。

    effect_select.png

  4. 如需循环效果,勾选 Looping

    effect_looping.png

  5. 还可为效果设置一个标签。通过标签可停止效果;如带有相同标签的效果已在播放,它将停止播放此效果并播放新的效果。

    effect_tag.png

在 C++ 中播放力反馈:

在本地 Player Controller 上调用 APlayerController::ClientPlayForceFeedback 、传递使用的力反馈效果、确定效果是否循环,并为效果选择一个标签。通过标签可停止效果;如带有相同标签的效果已在播放,它将停止播放此效果并播放新的效果。