如果你的项目需要过场动画,或其他在多个位置发生的 关卡序列(Level Sequence) 内容,使用Sequencer的 变换原点(Transform Origin) 功能在运行时动态更改动画的位置可能会有所帮助。默认情况下,所有Sequencer变换相对于世界原点(0, 0, 0)发生。但是,通过使用变换原点,你可以相对于任何变换进行变换,甚至相对于Actor的变换进行变换。
本文档说明了如何将变换原点绑定到Actor以更改Sequencer内容位置。
先决条件
关卡Sequencer设置
首先在关卡中创建关卡序列Actor。将其选中,然后在 细节(Details) 面板中执行以下操作:
- 启用 覆盖实例数据(Override Instance Data) 。
- 将 关卡序列Actor(Level Sequence Actor) 指定为 变换原点Actor(Transform Origin Actor) 。

你可以根据场景的情境将任意的Actor指定为变换原点Actor。例如,如果在你的场景中角色与桌子之类的对象交互,那么最好将桌子指定为变换原点Actor。
根据你的用例,你可能需要先指定变换原点Actor,然后在虚幻引擎中创建Sequencer内容。如果你先创建内容,然后指定具有非零位置的变换原点Actor,你的内容将相对于该Actor移动。换句话说,在指定变换原点Actor时,你的当前Sequencer变换不会进行补偿。
内容设置
接下来,在序列中创建内容,将你的Sequencer内容与变换原点Actor对齐。在此示例中,人体模型角色走向了作为关卡序列Actor的同一位置。

现在你可以移动变换原点Actor,并看到你的动画在播放时更改位置。

结果
更改变换原点Actor的位置会影响序列中的所有变换和动画。这样就可以动态更改场景的发生位置。

根序列中的所有对象还会收到变换原点偏移。
带动画的变换原点
如果原点Actor带动画,变换原点还会正确地调整Sequencer内容。在此示例中,船舶Actor设置为变换原点Actor,导致序列中的角色和其他所有变换的Actor在运行时期间跟随船舶的动画。
