Action Constraint 动作关系约束#

动作关系 是很强大的的约束。它允许你通过另一个物体的变换控制约束对象的 动作

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

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

作为一个例子,让我们假设你已经定义了一个 物体 动作(它可以被指定给任何物体,甚至不指定物体),并通过 动作关系 约束已映射到你的自身,使目标在(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 动作(一次影响动作中的所有关键骨骼)将不起作用...

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

例子#