创建游戏进程过场动画时,有时需要在Sequencer中对运行时动态生成的对象设置动画。 举例而言,用户可创建一个带动画的对象,使其在Sequencer中沿路径移动,而该对象可由玩家(玩家在游戏进程中生成)进行定义。 在蓝图可视化脚本的协助下,用户可使用 Get Sequence Bindings 节点从关卡序列公开绑定辨识符,并使用自有设置覆盖这些绑定。
在此例中,我们对一个空白Actor设置动画,使其沿一条路径移动,而玩家按下按键即可将对象修改为不同的效果。
在此指南中,我们使用的是启用了 初学者内容包 的 蓝图第三人称模板 项目。
步骤
在 放置(Actor) 面板的 基本(Basic) 选项卡中,将一个 空Actor 拖入关卡。
我们将在Sequencer中对此空白actor设置动画,并覆盖序列绑定,将actor改为不同的粒子特效。
在主工具栏中点击 过场动画(Cinematics) 按钮,然后选择 添加关卡序列(Add Level Sequence),为序列指定任意命名。
选择关卡中的空白actor,然后将空白actor添加到Sequencer。
点击空白actor上的 轨迹 按钮,选择 变换。
为 变换 轨迹添加一个关键帧,初始化空白actor在关卡中的当前位置。
将时间轴前移至第 75 帧,然后在关卡中移动空白actor,并在其新位置添加一个新的关键帧。
点击右键并复制Sequencer中的首帧,然后移动至第 150 帧,点击右键 粘贴 变换 关键帧。
复制首个关键帧并将其粘贴到末尾后将获得能够循环的平顺序列。
在关卡序列的 细节 面板中启用 自动播放(Auto Play),并将 循环(Loop) 设为 无限循环(Loop Indefinitely)。
点击主工具栏的 蓝图(Blueprints) 按钮,然后选择 打开关卡蓝图(Open Level Blueprint)。
在 关卡蓝图 中点击右键添加一个连接到 Flip Flop 节点的 F 键盘事件。
添加2个 Spawn Actor from Class 节点(一个使用 Blueprint Effect Fire,另一个使用 Blueprint Effect Sparks),并如下所示连接到 Make Transform 节点。
在 SpawnActor Blueprint Effect Fire 节点的 返回值 上点击右键,选择 提升为变量(Promote to Variable),将其命名为 Fire BP。
将 SpawnActor Blueprint Effect Sparks 的 返回值 提升为 Sparks BP。
为关卡序列添加一个引用,在其后方使用 Add Binding 节点。
创建另一个 Add Binding 节点,如下图所示进行连接,将 Fire BP 和 Sparks BP 填入为 Actor。
点击右键并使用 Get Sequence Binding 节点(设置下方高亮的选项),并连接到两个 Add Binding 节点。
可在 Get Sequence Binding 节点上指定要针对的关卡序列,以及希望覆盖的 绑定。 在此例中,关卡序列(空白actor)中只列出了一个能覆盖的轨迹。 添加到关卡序列的可覆盖对象将显示在下拉菜单中。
引入 Sparks BP 和 Fire BP 变量。使用 IsValid 节点,如对象有效,则 销毁Actor。
Click image for full view.
脚本现已完成,将生成火焰或火花特效、覆盖关卡序列中的空白actor,然后销毁其他的粒子效果(如其有效)。
在编辑器中运行,然后按下 F 键在生成的Actor之间进行切换。
最终结果
在编辑器中运行时按下 F 键,空白actor将被生成的火焰或火花特效所替换,并使用应用到空白actor的动画。
除添加绑定之外还可进行以下操作:
移除绑定,从指定的绑定移除指定的actor。
重设绑定,将指定的绑定重设回默认设置。
重设多项绑定,将所有覆盖的绑定重设回默认设置。
设置绑定,用指定的actor覆盖指定的绑定。