Action Constraint 动作关系约束

The Action constraint is powerful. It allows you control an Action using the transformations of another object.

Action 约束的基本思想与 驱动器 背后的思想非常相似,除了前者使用整个动作(即同一类型的多个函数曲线),而后者控制其 "所有者" 的单个函数曲线......

请注意,即使该约束接受 网格 操作类型,但只有 物体姿态约束 类型才会真正的工作(起作用),因为约束只能影响物体或骨骼的变换属性,而不能影响网格的形状。还要注意,只有物体变换(位置、旋转、缩放)受动作影响,如果动作包含其他关键帧属性它们将会被忽略的,作为约束不会影响那些属性。

作为一个例子,让我们假设你已经定义了一个 物体 动作(它可以被指定给任何物体,甚至不指定物体),并通过 动作关系 约束已映射到你的自身,使目标在(0.0到2.0)范围内沿着它的X轴映射动作内容在其自身(0到100)帧范围内移动。这将意味着当目标的 X 属性为0.0时,自身将如同在链接动作的第0帧中一样;目标的 X 属性为1.0,自身将如同在链接动作的第50帧中一样。

选项

../../../_images/animation_constraints_relationship_action_panel.png

动作关系面板。

目标

数据 ID 用于选择约束目标,当它没有时,就没有功能(红色状态)。参见 常见的约束属性 以获得更多信息。

估算时刻

这个属性允许在没有约束目标的情况下,通过在 动作开始结束 帧之间插值来驱动对象。开始和结束帧之间的相对位置可以用数值滑块来控制。

这对更复杂的绑定和机械绑定非常有帮助,因为它意味着动作约束可以直接用 驱动器自定义属性 控制。

混合

指定动作的关键帧变换与现有变换的结合方式。这些模式与 复制变形 约束中的相同。

原创前/原创后(全文)

关键帧的变换被添加到现有的变换之前/之后,就像它被应用于约束所有者的一个假想的父/子。刻度的处理就像在最基本的 完全继承比例 模式下的骨骼,所以结合非统一的刻度和旋转会产生剪切力。

初始前/初始后 (对齐)

关键帧的变换被添加到现有的变换之前/之后,就像它被应用于约束所有者的一个假想的父/子。尺度的处理与骨骼的 对齐继承缩放 模式一样,以避免产生剪切力。

这相当于使用 Split Channels 选项,但用 完整 的结果取代了位置部分。如果只使用统一比例,其结果与 完整 相同。

之前/之后的原件(分割通道)

分别组合变换的位置、旋转和比例成分,类似于将三个复制位置复制旋转复制缩放(带偏移)约束绑定在一个操作中;如果是剪切输入,结果可能略有差异。

对齐 不同的是,在这种模式下,位置通道被简单地加在一起,所以输入变换的旋转和缩放成分不能影响所产生的位置。

Warning

由于技术原因,除了 初始化后 (完整)初始化后 (对齐) 模式外,对于没有父代的*物体(不是骨骼)的约束,可能无法像预期那样工作。

影响

控制约束对对象的影响百分比。有关详细信息,请参阅 通用约束属性

目标

通道

该选择控件选择从目标使用 "动作关系" 的哪个变换属性(沿/围绕它那个轴位置,旋转或缩放)。

目标

此约束允许您选择在哪个空间计算其目标的变换属性。

范围 最小,最大

驱动变换属性值的下限和上限。

Warning

坏消息是,我们发现这动作关系约束有它的局限性:

  • 当使用旋转属性作为 “驱动” 时,这些值将 “重新映射” 到 -180.0 至 180.0 的范围。

  • 当使用缩放属性作为 “驱动” 时,这些值被限制为无效值或者正值。

动作

动作

选择要使用的动作的名称。

Warning

尽管它可能不处于红色状态(UI刷新问题),但当这里没有选择有效的动作时,此约束显然不起作用。

Object Action 物体动作

当它启用时 仅仅 用于骨骼,此选项将使受约束的骨骼使用链接动作的 "物体" 部分,而不是 "同样命名的姿势" 部分。这允许你将物体的动作用应用于骨骼。

起始帧、结束帧

要映射的动作的开始和结束点。

Note

  • 这些值必须严格正数。

  • 这两个值默认为0,即禁用映射(即自身只获取在链接动作的第0帧定义的属性...)。

注意

  • 当物体或骨骼已具有 动作约束时,应在所有其他约束之前添加使用新插帧操作的下一个约束,以便获得相同的最终组合变换。此事实不受混合模式的影响。

  • 与正常情况不同的是,你可以有 起始 的值高于 结束点 的值,或者 最小值 大于 最大值 的值:这将会翻转动作的映射关系(即将 "播放" 反转...),除非你们两套都显然颠倒了!

  • 当使用 约束 动作时,它是约束 通道 名称,用来决定自身的哪些约束应用于该动作。例如,如果你有一个约束通道命名为 "trackto_empt1",其键 影响起始/结束 值(唯一可以键入的)将被映射到的自身的约束命名为 "trackto_empt1" 那一个。

  • 同样,当使用 Pose(姿势) 动作时(这显然当它约束骨骼时才有意义和能够工作!),它是用来确定那一个来自动作的骨骼 channel's names(通道名) 被使用。(例如,如果受约束的骨骼被命名为 "手臂(arm)",它将使用并且仅使用名为 "手臂(arm)" 的动作的骨骼通道...)。不幸的是,在整个骨架对象上使用 Pose 动作(一次影响动作中的所有关键骨骼)将不起作用...

  • 动作也可以被标记为 资产,但有一定的限制。更多信息,请参阅 姿态库

例子