在蓝图中使用嵌入的 Sequencer 动画

说明如何使用 Actor 序列组件在 Actor 蓝图中嵌入序列。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

这是尚处于开发阶段的实验性功能。一些方面可能无法正常使用,或会在未来版本中被修改。

使用并创建 序列 时,有时可能需要在其他地方或实例中重复使用序列的功能。 借助 Actor 序列插件 和 Actor 序列组件 便可将序列直接嵌入 Actor 蓝图。 将动画绑定到蓝图实例并自动触发或通过蓝图的 事件图表 触发,即可重复使用序列。 此外还可为世界场景中的任意 Actor 添加 Actor 序列组件,将动画添加到 Actor 的单一实例。

在此指南中,我们将创建一个带嵌入序列的蓝图,随时间设置聚光源颜色的动画并对其进行变更。

EndResult.png

蓝图即可放置在让任意关卡中或进行复制,嵌入的序列则会在调用时自动播放。

步骤

在此指南中,我们使用的是启用了 Starter Content 的 Blueprint Third Person Template 项目。

  1. 项目打开后,从 Edit 菜单中选择 Plugins。

    ActorSequence01.png

  2. 从 Plugins 菜单的 Built-in 下启用 Actor Sequence Editor 选项,并在弹出提示后重启编辑器。

    ActorSequence02.png

    启用 Actor 序列编辑器时可能出现 Experimental 确认对话窗口,点击 Yes 继续。

  3. 创建一个 Actor 类的新 蓝图,将其命名为 Light_BP。

    ActorSequence03.png

  4. 在 Light_BP 中点击 Add Component 并添加一个 Spot Light。

    ActorSequence04.png

  5. 在 Spot Light 的 Details 面板中将 Y 轴的 Rotation 值改为 -60。

    ActorSequence05.png

    这将使光线在视口中旋转,角度稍微朝下。

  6. 添加另一个 Static Mesh 类型的 组件,然后在 Details 面板中将网格体设为 Floor_400x400,Location 设为 -180 (X), -180 (Y), -100 (Z)。

    ActorSequence06.png

    我们将用这个地板网格体使光线在地面上反射,并看到 Sequencer 驱动参数变化的效果。

  7. 添加另一个 Actor Sequence 类型的 组件。

    ActorSequence07.png

  8. 在 Actor Sequence 的 Details 面板中,设置 Loop Indefinitely、Random Start Time 和 Auto Play,然后点击 Open in Tab。

    ActorSequence08.png

    点击 Open in Tab 后,Sequencer 编辑器 将在蓝图中打开。

    SequencerWindow.png

    在此例中将自动触发并播放序列,也可从 事件图表 中进行调用播放。

  9. 在 Sequencer 标签中,点击 Add,然后在 Component 下选择 SpotLight。

    ActorSequence09.png

  10. 在 SpotLight 轨迹上点击 Track 按钮并选择 Transform。

    ActorSequence10.png

  11. 再次点击 SpotLight 轨迹的 Track 按钮并添加 Light Color 轨迹。

    ActorSequence11.png

  12. 在 Transform 轨迹的 Rotation 下,点击 Z 轴值的 + 图表在第 0 帧处添加一个 0 键。

    ActorSequence12.png

  13. 选中添加的键,然后按下 4 键将内插类型改为 线性。

    ActorSequence13.png

    可通过数字键修改内插类型,也可右键点击关键帧选择内插方法。

  14. 在 2.00 处添加一个键,将 Rotation 的 Z 轴值设为 -180.0,并在键上按下 4 将内插改为 线性。

    ActorSequence14.png

  15. 在 4.00 处添加一个键,将 Rotation 的 Z 轴值设为 -360.0,并在键上按下 4 将内插改为 线性。

    ActorSequence15.png

    也可将红色 结束标记 移回 4.00,使序列在其开始处结束。

  16. 在 Light Color 轨迹上点击 + 按钮在第 0 帧处添加一个键。

    ActorSequence16.png

  17. 为 Red 在 1.00 处添加一个键,值设为 0.0。

    ActorSequence17.png

  18. 为 Green 在 2.00 处添加一个键,值设为 0.0。

    ActorSequence18.png

  19. 为 Blue 在 3.00 处添加一个键,值设为 0.0;Red 和 Green 的值则设为 1.0。

    ActorSequence19.png

  20. 为 Blue 在 4.00 处添加一个键,值设为 1.0。

    ActorSequence20.png

    这会使光线从白色变为各种颜色,然后在序列末尾重新变为白色。

  21. 在 Components 窗口中,选择并 删除 StaticMesh 地面。

    ActorSequence21.png

    光照设置完成后,我们便不再需要这个网格体作为一种在视口中预览光照的方式。

  22. 在主关卡编辑器视口中,选择地面,然后长按 Alt 拖起一个地面的副本,创建出封闭关卡的屋顶。

    ActorSequence22.png

  23. 在 Content Browser 中,在关卡中拖动并放置 Light_BP 实例(如有需要可以按下 E 并进行旋转)。

    ActorSequence23.png

  24. 从 Build 下拉菜单中选择 Build Lighting Only 重新构建关卡中的光照。

    ActorSequence24.png

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

最终结果

在关卡中进行游戏时,您将看到播放嵌入的序列时放置的光照会开始旋转并变换色彩。

因为序列嵌入在 Actor 蓝图中,它并不存在依赖性,因此可在任意关卡中播放,或毫无障碍地进行复制。

在我们的实例中序列已设为 Auto Play,然而您也可以使用 事件图表 编写脚本,设定序列播放的时机。

EventGraphPlayScript.png

上图中,我们已根据 Event BeginPlay 允许 Actor 从 Player Controller 获取输入。 P 键按下时,我们接收 Actor 序列组件 并获得 Sequence Player(它将调用函数 Play 开始播放序列)。 如果不希望序列在关卡加载时自动播放,可使用任意方法调用 Play 函数。

标签
欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消