Choose your operating system:
Windows
macOS
Linux
动画图表(AnimGraph) 用于评估当前帧的骨架网格体最终姿势。默认情况下, 所有动画蓝图都有动画图表,可在其中放入 动画节点 以采样动画序列,使用骨架控制执行动画混合或控制骨骼变形。 之后,逐帧将结果姿势应用到骨架网格体。
在动画图表中,可使用 事件图表(EventGraph) 或其他位置(如代码)中计算出来的值, 作为混合空间或其他混合节点的输入。当然,也可直接采样动画序列, 而无需特殊混合。利用动画图表还可使用 骨架控制直接修改骨骼位置、旋转和缩放。
执行流
所有图表的执行流均显示为图表节点上执行引脚间的脉冲链接。对于 常规图表,如蓝图的事件图表(EventGraph),由于此流依赖于事件触发, 因此其将在运行期间显示。由于执行流不基于事件,而逐帧评估,因此 动画图表的不同在于其始终显示执行流。
(w:720)
在动画图表(AnimGraph)中,执行流代表姿势从节点传递到另一节点。部分 节点(如 混合 )有多个输入, 可内部决定属于当前执行流一部分的输入。此决定通常取决于 外部输入,如传递给数据引脚的值。
在以下范例中,上文中的同一混合节点根据Alpha引脚的值(通常手动设置), 在其输入间切换执行流:
使用动画图表
动画图表通过计算节点图表进行工作。部分节点在一个或多个输入姿势上执行特定操作, 而其他节点则用于获取或采样其他类型资源(如动画序列、混合空间 或动画蒙太奇)。状态机包含自身图表网络,可存在于动画图表中,多个状态机则可混合起来生成最终输出姿势。 请参考以下所有链接,了解在动画图表情境下的作用。
-
动画混合 - 使用不同混合节点进行完成。
-
动画节点 - 用于在输入姿势上执行如混合、直接骨骼操控等操作。
-
动画序列 - 可直接放入AnimGraph中驱动最终动画姿势。
-
混合空间 - 可在AnimGraph中使用,以基于变量混合姿势。
-
骨架控制 - 可直接用于驱动骨架内骨骼的节点。
-
空间转换 - 可切换姿势在局部空间或组件空间内的节点。
-
状态机 - 是一系列图表、规则和变量,可决定角色要进入的动画状态。
-
同步组 - 可用于保留已同步不同长度的相关动画。
线程安全
可使用"类默认值(Class Defaults)"中的"使用多线程动画更新(Use Multi-Threaded Animation Update)"设置,在工作线程上运行动画图表逻辑。利用此操作, 动画工作可与其他更新并行完成, 从而极大改善多核机器的游戏性能。
启用该设置(默认启用)后,在动画图表中执行"不安全"操作时,编译器将发出警告。通常来说, 安全操作包括:
-
使用多数动画图表节点。
-
直接访问动画蓝图的成员变量(包括结构成员)。
-
调用不会修改状态的蓝图"纯"函数(如多数数学函数)。