AnimGraph

用于采样、混合和操控姿势的图表,通过动画蓝图将此类姿势应用到骨架网格体。

Windows
MacOS
Linux

AnimGraph 用于评估当前帧的骨架网格体最终姿势。默认情况下, 所有动画蓝图都有AnimGraph,可在其中放入动画节点 以采样动画序列,使用骨架控制执行动画混合或控制骨骼变形。 之后,逐帧将结果姿势应用到骨架网格体。

AnimGraph

在AnimGraph中,可使用 EventGraph 或其他位置(如代码)中计算出来的值, 作为混合空间或其他混合节点的输入。当然,也可直接采样动画序列, 而无需特殊混合。利用AnimGraph还可使用 骨架控制直接修改骨骼位置、旋转和缩放。

执行流

所有图表的执行流均显示为图表节点上执行引脚间的脉冲链接。对于 常规图表,如蓝图的EventGraph,由于此流依赖于事件触发, 因此其将在运行期间显示。由于执行流不基于事件,而逐帧评估,因此 AnimGraph的不同在于其始终显示执行流。

混合 - Alpha 0.0 (w:720)

在AnimGraph中,执行流代表姿势从节点传递到另一节点。部分 节点(如混合 )有多个输入, 可内部决定属于当前执行流一部分的输入。此决定通常取决于 外部输入,如传递给数据引脚的值。

在以下范例中,上文中的同一混合节点根据Alpha引脚的值(通常手动设置), 在其输入间切换执行流:

混合 - Alpha 1.0

与Alpha 1.0混合 - 使用输入B

使用AnimGraph

AnimGraph通过计算节点图表进行工作。部分节点在一个或多个输入姿势上执行特定操作, 而其他节点则用于获取或采样其他类型资源(如动画序列、混合空间 或动画蒙太奇)。状态机包含自身图表网络,可存在于AnimGraph中,多个状态机则可混合起来生成最终输出姿势。 请参考以下所有链接,了解在AnimGraph情境下的作用。

  • 动画混合 - 使用不同混合节点进行完成。

  • 动画节点 - 用于在输入姿势上执行如混合、直接骨骼操控等操作。

  • 动画序列 - 可直接放入AnimGraph中驱动最终动画姿势。

  • 混合空间 - 可在AnimGraph中使用,以基于变量混合姿势。

  • 骨架控制 - 可直接用于驱动骨架内骨骼的节点。

  • 空间转换 - 可切换姿势在局部空间或组件空间内的节点。

  • 状态机 - 是一系列图表、规则和变量,可决定角色要进入的动画状态。

  • 同步组 - 可用于保留已同步不同长度的相关动画。

线程安全

可使用“类默认值(Class Defaults)”中的“使用多线程动画更新(Use Multi-Threaded Animation Update)”设置,在工作线程上运行AnimGraph逻辑。利用此操作, 动画工作可与其他更新并行完成, 从而极大改善多核机器的游戏性能。

启用该设置(默认启用)后,在AnimGraph中执行“不安全”操作时,编译器将发出警告。通常来说, 安全操作包括:

  • 使用多数AnimGraph节点。

  • 直接访问动画蓝图的成员变量(包括结构成员)。

  • 调用不会修改状态的蓝图“纯”函数(如多数数学函数)。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback