Language:
Share

动作驱动器

动画蓝图的AnimGraph中的Pose Driver节点目前处于试验阶段,某些功能可能无法按预期运行。

除了使用动作混合器NEW! 通过动画蓝图 播放 动作资源(Pose Assets), 你还可以使用动画蓝图的AnimGraph 中的 Pose Driver 节点在运行时直接驱动动作资源。 Pose Driver节点允许骨骼基于一套“范例动作”驱动动画的不同部分,或者基于骨骼的运动驱动曲线值。 此节点的一个用途是创建动作空间变形工具,基于骨骼的朝向或平移驱动修正混合形状。

在以下视频中,锁骨动作用于根据臂骨的运动移动肩部。

我们添加Pose Driver节点并指定了包含要控制的动作的动作资源。 然后,将 源骨骼(Source Bone) 设置为 锁骨(clav) 骨骼,以根据 驱动源(Drive Source) (设置为 旋转(Rotate)), 更新驱动正在使用的动作的 动作目标(Pose Targets)。 当动画播放并且锁骨骨骼旋转时,在 动作目标(Pose Targets) 部分,会为每个动作显示一个条形,以指示对最终动作的效果。

Pose Driver节点使用 RBF(径向基函数),该RBF根据目标骨骼的朝向插入驱动值。

添加Pose Driver

要将Pose Driver节点添加到 动画蓝图,请执行以下步骤:

  1. AnimGraph 中,右键单击图表并搜索 Pose Driver 节点。

    ContextPoseDriverNode.png

  2. 添加节点后,指定要接收的 Source Pose,并将 Out Pose 连接到 Final Animation Pose 或其他节点以进行混合。

    CompletePoseDriver.png

  3. 细节(Details) 面板中,定义要评估的骨骼并驱动Pose Asset动作或曲线。

    BlankDetails.png

动作目标

在动作目标(Pose Target)中,使用Pose Driver节点指定Pose Asset或曲线中要驱动的动作。

分配Pose Asset后,单击 工具(Tools) 按钮并选择 从PoseAsset中全部复制(Copy All from PoseAsset),将每个动作添加到动作目标窗口。

CopyPoses.png

添加后,将使用相应的动作更新窗口。

PoseTargetsOptions.png

要选择每个动作,请在 动作目标(Pose Target) 窗口中单击它,或单击视口中的目标线。

基于曲线的动作目标

动作目标也可以由动画曲线 (变形目标和材质曲线)而不是动作资源来驱动。

要使用曲线数据而不是动作资源,请按照以下步骤操作:

  1. Pose Driver 节点的 细节(Details) 面板的 Pose Driver 部分下,将 Drive Output 更改为 Drive Curves

    DriveOutputSetting.png

  2. 编译 动画蓝图

    CompileButton.png

  3. 单击 添加目标(Add Target) 按钮添加要驱动的曲线数。

    AddTarget.png

  4. 在每条曲线的 驱动(Drive) 选项中,选择所需的曲线,选中 曲线(Curve) 复选框并在图表中定义其值。

    CurveSetupComplete.png

Pose Driver属性

细节(Details) 面板中的 Pose Driver 属性部分,可以定义将用于驱动 动作目标(Pose Target) 中参数的 源骨骼(Source Bones)。 你可以指定多个源骨骼或指定 仅驱动选定骨骼(Only Drive Selected Bones),定义在读取源骨骼变换时使用的 Eval Space Bone 并设置RBF解算器使用的 RBF Parameters 以及 Drive SourceDrive Output

以下是Pose Driver部分中的属性:

选项

说明

源骨骼(Source Bones)

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

仅驱动选定骨骼(Only Drive Selected Bones)

是否应该使用 仅驱动骨骼(Only Drive Bones) 阵列过滤要驱动的骨骼。

仅驱动骨骼(Only Drive Bones)

Pose Driver节点仅修改阵列中指定的骨骼。

Eval空间骨骼(Eval Space Bone)

读取源骨骼变换时使用的另一个可选骨骼空间。如果未指定,将使用源骨骼的局部空间(例如,相对于父骨骼)。

RBFParams

选项

说明

半径(Radius)

按目标缩放因子缩放的每个目标的默认半径。

函数(Function)

定义要使用的混合模式 的类型。

距离方法(Distance Method)

将距离测量设置为:摇摆角度(Swing Angle)四元数(Quaternion)欧氏距离(Euclidean)

扭曲轴(Twist Axis)

Distance Method 设置为 Swing Angle 时使用的轴。

权重阈值(Weight Threshold)

如果重量小于此阈值,则不返回目标的贡献。

驱动源(Drive Source)

应该读取转换的哪个部分:朝向(Rotation)平移(Translation)

驱动输出(Drive Output)

是否驱动动作或曲线。

设置和相关性

细节(Details) 面板的 设置(Settings) 部分,可以定义要评估的 动作资源(Pose Asset) 以及是否使用同步组 。 在 相关性(Relevancy) 部分中,可以确定相关动画节点是否忽略此节点。

选项

说明

动作源(Pose Source)

用作动作数据源的 动作资源(Pose Asset)

同步组名称(Sync Group Name)

要引用的同步组的名称。

同步组角色(Sync Group Role)

组内的成员资格类型。

忽略相关性测试(Ignore for Relevancy Test)

如果为true,则查找状态中最高权重动画的相关动画节点将忽略此节点。

其他示例和资源

以下是一些Pose Driver节点和设置的其他示例。

下面是锁骨、下臂和上臂的视图,它们驱动校准的混合形状,当肩部通过曲线旋转时,该混合形状使周围区域变形。

有关配置和使用Pose Driver节点的其他示例,请观看以下直播。