通过Sequencer混合动画蓝图

说明如何从动画蓝图获取姿势,并将它与关卡序列中定义的动画混合起来。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

如果你想要将Sequencer中指定的动画与角色动画蓝图中定义的动画相混合,可以使用Sequencer中的动画轨道的 插槽(Slot) 节点和 权重(Weight) 属性来完成。

在本示例中,我们从动画蓝图获取闲散姿势,并将它混合到Sequencer中定义的奔跑动画中。

步骤

在本操作指南中,我们现在使用 蓝图第三人称模板 项目。

  1. Content/Mannequin/Character/Mesh 文件夹中,右键单击 SK_Mannequin ,然后在 创建(Create) 下面,选择 动画蓝图(Anim Blueprint)

    AnimBPWeight_01.png

    为动画蓝图指定任意名称和保存位置。

  2. 动画蓝图(Anim Blueprint) 中,拖入 ThirdPersonIdle ,并连接到 插槽(Slot) 节点,然后连接到 最终动画姿势(Final Animation Pose) 节点。

    AnimBPWeight_02-1.png

    请注意,插槽(Slot)的默认名称是 DefaultSlot ,这是我们将在本指南中在关卡序列中引用的名称。

  3. 动画蓝图(Anim Blueprint) 拖到关卡,然后从主工具栏中,选择 过场动画(Cinematics) 并选择 添加关卡序列(Add Level Sequence)

    AnimBPWeight_03-3.png

    给关卡序列指定任意名称和保存位置。

  4. 向序列添加 动画蓝图(Anim Blueprint) 角色,然后添加/循环 ThirdPersonRun 动画来填充序列。

    AnimBPWeight_04.png

  5. 展开动画轨道,然后将 权重(Weight) 值更改为 0.0 并向序列添加一个键。

    AnimBPWeight_05.png

    通过将权重设置为0.0,我们表示在增大权重值之前不使用该动画的任何部分。

  6. 权重(Weight) 添加一个键,值为 1.0 ,位于帧 75 处,再添加另一个键,值为 0.0 ,位于帧 150 处。

    AnimBPWeight_06.png

    这将从0.0混合到1.0(动画的完整效果),然后再回到0.0。

  7. 右键单击 ThirdPersonRun 轨道,然后在 属性(Properties) 下面,注意 插槽名称(Slot Name) 和我们添加的三个 键(Keys)

    AnimBPWeight_07.png

    插槽名称是指代动画蓝图中添加的插槽节点的名称。这些名称必须相匹配,这样Sequencer才能知道你所指代的是哪个插槽,并传递权重值。

  8. 选择关卡序列,然后在 细节(Details) 面板中,启用 自动播放(Auto Play) 并将 循环(Loop) 设置为 无限循环(Loop Indefinitely)

    AnimBPWeight_08.png

  9. 从主工具栏,选择"在编辑器中运行"(Play in the Editor)。

最终结果

在编辑器中运行时,角色首先为闲散姿态(这是动画蓝图中的状态),然后将混合到我们在关卡序列中指定的动画(奔跑),最后恢复为闲散姿态。

虽然我们的示例使用闲散动画作为最终动画姿势,但使用这种方法可以生成整个状态机,以根据任意数量的系数在动画蓝图中产生最终动画姿势,然后混入关卡序列中定义动画。

举例而言,NPC可以定义一些逻辑来控制它们所处的姿势,玩家可以接近该NPC,从而触发一个剧情画面,你可以用Sequencer中定义的动画来覆盖动画逻辑。

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