通过Sequencer调用事件

如何使用Sequencer的事件轨迹触发蓝图中的事件的示例。

Windows
MacOS
Linux
本页面的内容

通过Sequencer播放过场动画时,有时你可能需要触发可启动一些脚本功能的 事件。在过场动画的特定时刻,你可能希望门打开,粒子效果生成并播放,或者以某种方式影响玩家。借助 事件轨迹,你可以在你希望事件在其中被调用的过场动画中设置这样的关键帧。然后,你可以使用 导演 类蓝图提供你希望发生的脚本功能(使用 事件端点)。

在本指南中,我们将使用事件轨迹向屏幕输出指示角色死亡的文本。同时,我们将禁止玩家移动并在角色上模拟物理。

步骤

在本指南中,我们使用 蓝图第三人称(Third Person)模板 项目。

  1. 从主工具栏中,单击 过场动画(Cinematics) 按钮,然后选择 添加关卡序列(Add Level Sequence)(使用任意名称和保存位置)。
    UsingEventTracks_01.png

  2. 在关卡序列的 细节(Details) 面板中,启用 自动播放(Auto Play) 选项。 
    UsingEventTracks_02.png

  3. 在关卡中选中 ThirdPersonCharacter,然后使用 +轨迹(+ Track) 按钮将它添加到Sequencer中。 
    NewEventTrack_03.png

  4. 在关卡中右键单击 ThirdPersonCharacter,然后选择 编辑ThirdPersonCharacter(Edit ThirdPersonCharacter)。 
    NewEventTrack_04.png

    第三人称角色(Third Person Character)蓝图 中,我们将添加将从Sequencer中调用的自定义事件。 

  5. 事件图表 中右键单击,然后搜索并添加 自定义事件。 
    NewEventTrack_05.png

  6. 将自定义事件命名为 KillPlayerText,然后连接 输出字符串(Print String) 节点(以 杀死我的玩家!(Kill My Player!) 文本作为字符串)。 
    NewEventTrack_06.png
    在此示例中,当自定义事件被调用时,我们将向屏幕输出文本。你可以根据需要提供任何脚本功能,并将它与自定义事件相连接,使得当事件被从Sequencer调用时,脚本功能执行。 

  7. Sequencer 中,单击 ThirdPersonCharacter 轨迹上的 +轨迹(+ Track) 按钮,然后选择 事件(Event)。 
    NewEventTrack_07.png

  8. 将时间轴移动到第 60 帧处,然后单击 事件(Events) 轨迹的 + 号,以添加事件关键帧。 
    NewEventTrack_08.png

  9. 右键单击新关键帧,在 属性(Properties) 下,单击 未绑定(Unbound) 并选择 创建新端点(Create New Endpoint)。然后你将看到新 导演类 蓝图。 
    NewEventTrack_09.png

  10. 在蓝图中选择 类设置(Class Settings),打开 类默认(Class Defaults) 细节面板。  

    单击查看大图。

    在导演蓝图中,你可为一个或多个给定目标提供希望发生的脚本功能。你也可以使用导演蓝图调用其他蓝图实现的并且可在受到调用时执行的蓝图接口。 

    请参阅事件轨迹概述以了解更多信息。

  11. 我的蓝图(My Blueprint) 面板中,将函数名称更改为 PrintKillPlayer,然后从 目标(Target) 引脚调用 杀死玩家文本(Kill Player Text)

    NewEventTrack_10.png

    此示例以 ThirdPersonCharacter 蓝图作为目标。我们也可以将使我们可以访问相关函数的 目标(Target) 类型更改为我们指定的目标类型。 

  12. ThirdPersonCharacter 轨迹的 Sequencer 中,添加 CharacterMesh0。 
    NewEventTrack_11.png

  13. 对于 CharacterMesh0,单击 +轨迹(+ Track) 按钮并添加 事件(Event) 轨迹。 
    NewEventTrack_12.png

  14. 在第 60 帧处为 事件(Events) 轨迹添加关键帧,然后右键单击它,在 属性(Properties) > 创建快速绑定(Create Quick Binding) 下,选择 SetAllBodiesSimulatePhysics。 
    NewEventTrack_13.png

    由于此事件轨迹的对象绑定为骨架网格体组件(Skeletal Mesh Component),我们现在可以访问与骨架网格体相关的 快速绑定。选择此函数之后,此节点将自动添加到事件端点,并且图表将自动打开。 

  15. 新模拟(New Simulate) 设为启用,然后添加 将碰撞设置为启用(Set Collision Enabled) 节点,以 启用碰撞(查询和物理)(Collision Enabled (Query and Physics)) 作为 新类型(New Type)。 

    NewEventTrack_14.png

    此设置将指示骨架网格体模拟物理并启用碰撞,以使它不会穿透地板掉下去。 

  16. 在 Sequencer 中,单击 ThirdPersonCharacter+轨迹(+ Track) 按钮并添加 CharMoveComp 轨迹。

    NewEventTrack_15.png

  17. CharMoveComp 添加 事件(Event) 轨迹,在第 60 帧处添加事件关键帧,并且创建调用 DisableMovement快速绑定

    NewEventTrack_16.png

在此处,我们以 角色移动组件(Character Movement Component) 作为目标,并且使用事件在角色模拟物理时禁止它四处移动的能力。

  1. 单击 播放(Play) 按钮以在编辑器中播放。

最终结果

在编辑器中播放时,片刻之后,窗口左上角将显示文本,而且角色将倒在地上,其移动能力已被禁止。 

在Sequencer中为对象添加事件轨迹将创建对象绑定,在对象绑定中,你可以调用事件、函数或者访问你绑定到的对象的属性。事件轨迹也可用于执行关卡蓝图、UI小部件蓝图中的脚本,或者通过蓝图接口与多个蓝图通信。 

请参阅事件轨迹概述以了解更多信息。

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见