解算方向

了解Control Rig中的不同解算方向以及它们启用的功能。

Choose your operating system:

Windows

macOS

Linux

Control Rig以多种方式进行计算,称为 解算方向(solve direction),它们是在Control Rig的Rig图表(Rig Graph)中创建的。通过使用这些工具将绑定逻辑拆分为多个解算方向或 解算器,你可以展开绑定的传入数据,从而启用工作流程,如绑定共享、将动画烘焙回控制点,以及调试该行为等。

此页面概述Control Rig中可用的不同解算方向、如何使用这些解算方向,以及这些功能启用的工作流程。

先决条件

前向解算

forwards solve

前向解算(Forwards Solve)是用于通过控制点、变量和其他绑定元素驱动骨架的解算方向。它是Control Rig的主要解算方向,将在Sequencer和动画蓝图中为Control Rig设置动画时使用。

默认情况下,所有Control Rig资产都在Rig图表(Rig Graph)中包含前向解算(Forwards Solve)节点。从这个节点创建的逻辑将作为一个基础,通过控制点、变量和其他绑定元素影响骨架的骨骼。通过这种方式,控制点以"前向"方式运行,即控制点影响骨骼。

forward solve rig graph

预览前向解算

前向解算(Forwards Solve)是视口中的默认预览模式。这可以通过确保解算方向工具栏(Toolbar) 按钮 设置为 前向解算(Forwards Solve) 进行验证。类似于AnimBP,前向解算会持续执行,无论当前关卡状态如何。

forwards solve

根据激活的解算方向,这将影响Rig图表(Rig Graph)中突出显示的执行线。例如,如果前向解算(Forwards Solve)处于活动状态,则后向解算(Backwards Solve)的执行线将显得更加透明。

solve direction execution

后向解算

backwards solve

后向解算(Backwards Solve)是用于从骨架驱动控制点的解算方向。它是前向解算(Forwards Solve)的 反向操作,用于将动画序列中的动画烘焙到Sequencer中的Control Rig上。

要在Rig图表(Rig Graph)中创建后向解算(Backwards Solve)逻辑,你必须创建一个 后向解算(Backwards Solve) 节点。右键单击 Control Rig图表(Control Rig Graph),然后选择 事件(Events)> 后向解算(Backwards Solve)

create backwards solve

从这个节点创建的逻辑将作为一个基础,从骨架中的骨骼影响控制点。通过这种方式,控制点以"后向"方式运行,即骨骼影响控制点。

backwards solve

预览后向解算

你可以在视口中预览后向解算(Backwards Solve)行为,方法是打开工具栏(Toolbar)中的解算方向 下拉菜单,然后单击 后向解算(Backwards Solve)。这将导致视口从Rig图表(Rig Graph)执行后向解算(Backwards Solve)逻辑,而不是进行前向解算(Forwards Solve)。

enable backwards solve

为了更好地预览这种反向Control Rig行为,可以导航到Control Rig中的 预览场景设置(Preview Scene Settings) 面板,指定要播放的角色动画。将 预览控制器(Preview Controller) 设置为 使用指定动画(Use Specified Animation),然后从 动画(Animation) 属性中选择一个动画。现在应该看到,控制点与正在播放的动画相匹配。

preview backwards solve

预览后向解算(Backwards Solve)时,视口轮廓将以 黄色 显示。这种颜色和其他颜色可以在 Control Rig编辑器偏好设置(Control Rig Editor Preferences) 中更改。

solve viewport color preference

将动画烘焙到Control Rig

后向解算(Backwards Solve)的主要用途是将动画序列烘焙到Control Rig,从而对虚幻引擎中的动画进行进一步更改。

为此,假设你在Sequencer中有一个动画角色,右键单击角色轨道,选择 烘焙到Control Rig(Bake To Control Rig),然后选择要烘焙到的 Control Rig资产(Control Rig Asset)

bake to control rig

如果Control Rig资产不使用Rig图表(Rig Graph)中的后向解算(Backwards Solve)节点,则无法在 烘焙到Control Rig(Bake To Control Rig) 菜单中选择Control Rig。

将出现一个对话框窗口,你可以在其中指定与烘焙操作相关的选项:

bake options

名称

描述

导出变换(Export Transforms)

将变换数据烘焙到控制点。

导出曲线(Export Curves)

AnimCurve 数据烘焙到控制点。这包括在计算后向解算(Backwards Solve)逻辑时的AnimCurve

世界空间记录(Record in World Space)

在绝对世界空间坐标中烘焙。

计算所有骨骼网格体组件(Evaluate All Skeletal Mesh Components)

烘焙时计算所有骨骼网格体组件。如果将蓝图与其他骨骼网格体组件一起使用,通常需要启用此功能。

暖场帧(Warm Up Frames)

在烘焙过程发生之前要计算的帧数。如果在计算之前,有后期处理动画蓝图效果需要额外时间才能稳定下来,这将非常有用。

开始前延迟(Delay Before Start)

在烘焙过程发生之前要延迟的显示率(Display Rate)帧的数量。如果在计算之前,需要重复运行后期处理动画蓝图效果,这将非常有用。

减少关键帧(Reduce Keys)

如果启用它,则可以在烘焙过程发生后运行简化过程,从而根据公差量删除冗余关键帧。

公差(Tolerance)

公差(Tolerance) 值越高,则允许过滤后的曲线偏离原始曲线越多,如果启用 减少关键帧(Reduce Keys),则会导致移除更多关键帧。

单击 创建(Create) 可将动画序列烘焙到Control Rig。完成后,应该会在时间轴上看到带有关键帧的Control Rig轨道。这些关键帧应与作为烘焙来源的整体动画相对应。

bake animation to control rig

你也可以直接将动画序列导入为Control Rig关键帧,方法是右键单击 Control Rig分段(Control Rig Section),然后从 将动画序列导入此序列(Import Anim Sequence Into This Sequence) 中选择动画。动画将相对于Sequencer播放头导入。

import anim sequence into this sequence

设置事件

setup event

设置事件(Setup Event)用于执行准备逻辑,例如构造变量和设置控制点的初始位置。它在Control Rig的后初始化阶段执行一次。可以认为它类似于蓝图中的 构造脚本(Construction Script)

要在Rig图表(Rig Graph)中创建设置事件(Setup Event)逻辑,你必须创建一个 设置事件(Setup Event) 节点。右键单击 Control Rig图表(Control Rig Graph),然后选择 设置(Setup)> 设置事件(Setup Event)

create setup event

从这个节点创建的逻辑将作为一个基础,影响Rig元素的初始状态。可能包括的内容有,定义控制点到其各自骨骼的初始偏移,从而启用Rig共享(Rig Sharing)。此外,你可以定义变量的初始值,或更改骨骼的初始位置。

setup event logic

预览设置事件

通过选择工具栏(Toolbar)中的解算方向(Solve Direction)下拉菜单,然后单击 设置事件(Setup Event),可以在视口中预览设置事件(Setup Event)行为。这将导致视口从Rig图表(Rig Graph)而不是前向解算(Forwards Solve)执行设置事件(Setup Event)逻辑。进入此模式对于调试设置逻辑很有用。

enable setup event

启用设置事件(Setup Event)后,还可以从视口编辑骨骼和空值的初始位置。

edit initial rig location

预览设置事件(Setup Event)时,视口轮廓将以 红色 显示。

后向和前向

backwards and forwards

后向和前向(Backwards and Forwards)预览模式先执行后向解算(Backwards Solve),然后执行前向解算(Forwards Solve)绑定逻辑。这导致在视口中模拟将动画烘焙到Control Rig过程的行为。通常,如果需要调试烘焙过程以确保骨骼和控制点正常运行,将启用这一模式。

通过选择工具栏(Toolbar)中的解算方向(Solve Direction)下拉菜单,然后单击 后向和前向(Backwards and Forwards),可以在视口中预览后向和前向(Backwards and Forwards)行为。这将导致视口从Rig图表(Rig Graph)依次执行后向解算(Backwards Solve)和前向解算(Forwards Solve)逻辑。

backwards and forwards

后向和前向(Backwards and Forwards)预览时,视口轮廓将以 蓝色 显示。