AnimGraph 动作节点

动作资源 可通过 动画蓝图 在运行时驱动,因为 AnimGraph 支持数个不同的动作节点。

Pose by Name / Pose Blender 节点

驱动 动作资源 的一种方式是使用 Pose by NamePose Blender 节点:

  • Pose by Name - 可通过动作名称获得动作的变形。

  • Pose Blender - 从一个源动作输出由曲线驱动的正确动作。

下例中的面部使用了 动作资源,玩家靠近时将微笑,玩家离开时将皱眉。

动画蓝图中的状态机由三种状态设置:

StateMachine.png

默认 状态 为自然表情,玩家进入触发体积域后将进入 微笑**状态,玩家离开触发体积域后将进入 皱眉 状态。在此例中,触发第一个微笑后只会在微笑和皱眉状态之间切换。在每个状态中,我们使用 Pose Blender** 和动画序列应用曲线驱动动画。

PoseBlender.png

动作资源 拖入图表后将自动创建 Pose Blender 节点。

如不使用 Pose Blender(下图所示)便将 AnimSequence 直接插入 Final Animation Pose,则不会看到应用的曲线驱动动画。

NoPoseBlender.png

此外,只使用 Pose Blender 而不提供进入的曲线数据将无法输出所需的动作。

NoCurveData.png

也可通过 右键 快捷菜单将 Pose Blender 节点转换为 Pose by Name 节点(同时也可将其转换为 Pose Blender 节点)。

PoseByName.png

这样即可从 动作资源Details 面板手动指定使用的动作。

AdditivePoseByName.png

在此例中,我们控制角色面部的两个方面,笑容右侧和笑容左侧,使用 Pose Blender 更有意义。 如果只需要控制 动作资源 中的一个动作,通过 Pose by Name 即可按动作名称控制单个动作(通常适用于全身动作)。

如您使用的 动作资源 启用了 Additive,则还需要使用 Apply Additive 节点正确显示所需要的动作。对未启用 Additive动作资源 而言,可直接将一个 Pose by Name 节点连接到 Final Animation Pose 输出。

Pose Driver 节点

Pose Driver 节点在动画蓝图的 AnimGraph 中可用,它可基于骨骼的运动驱动曲线值。此节点的一个用途是创建一个自动空间变形工具,基于骨骼的朝向驱动修正混合变形器。例如在以下视频中,锁骨动作被用于移动肩膀(相对手骨运动)。

为达到此效果,RBF(径向基函数)基于目标骨骼的朝向插入驱动值。需要创建一个 动作资源 并定义骨骼的目标动作和每个动作所需的曲线值。

Pose Driver 节点上有以下选项:

PoseDriverNode.png

选项

描述

Source Bone

基于此骨骼的朝向驱动参数。

Radial Scaling

径向基标度,应用到动作之间的最大距离。

Pose Source

用作动作数据源的 动作资源

Include Ref Pose as Neutral Pose

Source Bone 的模型参考动作应被视为“自然动作”(零曲线)。

Type

Swing and Twist(考虑全旋转的插值)或 Swing Only(只考虑摇摆的插值)。

Twist Axis

Type 设为 SwingOnly 时所使用的轴(X、Y 或 Z)。

如欲了解更多内容,可在 Animation Topics 上观看 Unreal Engine Live Stream,其中包含 动作驱动器 示例: