在游戏进程中触发序列

创建过场序列后,需要在游戏过程中将其作为剧情动画的一部分调用并播放。角色走进一个房间后,可能需要开始一段剧情动画;或者角色杀死一个敌人后需要播放结局过场动画。

在此指南中,我们使用 蓝图 - 可视化脚本 使关卡序列基于游戏事件播放。我们还将了解 Sequence Player 选项,以及如何通过这些选项告知游戏关卡序列已终止,此时将执行额外的蓝图脚本。

步骤

此指南中,我们使用 蓝图第三人称模板(Blueprint Third Person Template),并已创建了一个序列范例。

  1. 如需要播放的关卡序列不在关卡中,可从 Content Browser 将其 拖放 到关卡中。

    Trigger01.png

  2. Modes 面板将一个 触发器(Trigger) 拖入关卡并根据需要进行调整(我们使用的是 Box Trigger)。

    Trigger02.png

    玩家进入触发器后,关卡序列将开始播放。

  3. 选中 Trigger 时,点击主工具栏中的 Blueprints 按钮,然后选择 Open Level Blueprint

    Trigger03.png

  4. 在图表中 单击右键,然后在 Collision 下选择 Add On Actor Begin Overlap

    Trigger04.png

  5. 返回关卡并选择 关卡序列

  6. 点击主工具栏中的 Blueprints 按钮,然后再次选择 Open Level Blueprint

  7. 单击右键,选择 Create a Reference to... 创建一个对关卡序列的引用。

    Trigger05.png

    上图中需要播放的关卡序列名为 CameraFlyBy

  8. 单击左键 从新节点连出引线,并添加 Get Sequence Player 节点。

    Trigger06.png

  9. Sequence Player 节点的引线上添加 Play 节点并按下图所示连接。

    Trigger07.png

    如现在开始游戏,玩家进入触发器后创建的序列将开始播放。

    依此设置,过场播放时角色仍可自由移动。 虽然我们已成功播放过场,但有时可能需要在过场播放时将玩家锁定在固定位置,或 设为在游戏中隐藏(Set Hidden in Game) 使他们不会出现。

  10. 关卡蓝图单击右键 并添加一个 Disable Input 节点。

    Trigger08.png

    如关卡序列在关卡中仍为选中状态,则会看到两个选项(它将选择 Input 下的选项)。

  11. Play 后连接节点,然后从 Player Controller 连出引线并添加一个 Get Player Controller 节点。

    Trigger09.png

    此操作将命令与玩家关联的玩家控制器停止接收输入。

  12. Disable Input 节点的 Target 引脚连出引线并添加一个 Get Player Character 节点。

    Trigger10.png

    序列开始时已禁用输入,但序列结束时需要启用输入。

  13. Sequencer Player 节点连出引线并添加一个 Get Length 节点。

    Trigger11.png

  14. 在图表中 单击右键 并添加一个 Set Timer by Event 节点。

    Trigger12.png

  15. Disable Input 后连接 Set Timer by Event 节点,并将 Length 插入 Time 引脚。

    Trigger13.png

    这可在关卡序列结尾调用事件。

  16. 在图表中 单击右键 并创建一个名为 Sequence End自定义事件(Custom Event)

    Trigger14.png

  17. 将绑定引脚和 Set Timer by Event 节点的 Event 引脚连接起来。

    Trigger15.png

    完成此设置后,关卡序列完成时便会触发连接到 Sequence End 事件的内容。

  18. 添加一个 Enable Input 节点并连接一个 Get Player CharacterGet Player Controller 节点。

    点击查看全图。

    如现在进行游戏,关卡序列处于使用中时可操作角色将停下、不接受输入。 序列结束后,玩家可再次对角色进行输入。

    在当前的设置中,过场动画无法被重复触发。如要重复触发序列,需在现有设置中增加一个节点。

  19. 关卡蓝图 中,从 Sequence Player 节点连出引线,在 Play 节点前添加一个 Set Playback Position 节点。

    点击查看全图。

    Playback Position 默认设置从 0.0 开始,序列每次均从开头播放。

  20. 点击 Play 按钮在编辑器中进行游戏。

最终结果

现在便设置好在游戏进程中触发的过场序列,玩家将被锁定在固定位置。序列可被多次触发;过场播放完成后可对玩家角色再次进行输入。

可从 Cinematic 部分下的 Sequencer Player 节点访问其他信息或函数。

Trigger18.png