跳转到内容

控件行 - 交互

每个 Layer 包含多个属性,这些属性具有可以设置关键帧或与其他值建立连接的值。属性在 UI 中由两个元素组成:Control RowControlControl Row 是整个属性行,可以包含多个 Controls[x, y][r, g, b] 等)。

当光标放置在 Control Row 上时,几个 UI 元素将出现/高亮显示。

设置 Control

  1. 将光标悬停在 Control 上。
  2. 单击。
  3. 输入一个值。

Controls 也可以通过 “scrubbed” 来设置。

  1. 将光标悬停在 Control 上。
  2. 单击按住。
  3. 左右移动光标。

请注意,当光标到达显示屏边缘时,scrubbing 值可能会受到限制。为防止出现这种情况,请在 Preferences 窗口中启用 “Infinite Scrubbing”。

对于具有多个字段的 Control Rows(例如 Position X 和 Y),在 scrubbing 或提交值时按住 Option/Alt 键可同时影响所有字段。

要同时为具有匹配属性的多个 Layers 设置值:

  1. 将一个 Layer 加载到 Attribute Editor 中。
  2. Scene Tree 中选择所有其他要更新的 Layers。
  3. 在 Attribute Editor 中更新属性。

使用 ⇥(Tab 键)将焦点移至下一个 Control,或使用 Shift + ⇥ 将焦点移至上一个 Control。请注意,macOS 用户可能需要设置一个偏好才能使其工作。操作如下:

  1. 打开 “System Settings…”。
  2. 导航到 “Keyboard”。
  3. 启用 “Keyboard navigation”。

此设置可以使用快捷键 control + F7 或 fn + control + F7(取决于 Function Keys 偏好)来开启/关闭。

某些 int2 Controls 还包括约束两个值比例的功能。

开启/关闭约束比例。

当约束比例按钮启用时(绿色),更改任一维度时,两个值的原始宽高比将得到维持。例如,如果 Rectangle 的 Width100Height200,将 Width 增加到 200 将把 Height 按比例增加到 400(维持 1:2 的比例)。

可以在 Control 中编写简单的数学表达式。例如,输入 12∗312*312∗3 将得到值 36

设置关键帧:

  1. 将光标悬停在 Control 上。
  2. Control 中将出现一个小菱形轮廓图标。
  3. 将光标移到此图标上方并单击。
  4. 图标将变为绿色填充。这表示已设置关键帧。

对于具有多个 Controls 的 Control Rows,在单击时按住 Option/Alt 可在所有 Controls 上创建关键帧。

关键帧图标有 3 种状态:

  1. 无关键帧 - 表示该 Control 上没有动画。
  2. 已有关键帧 - 表示该 Control 上已设置了动画。
  3. 已有关键帧(在当前帧)- 表示在 Timeline 的当前帧该 Control 上有动画设置。

Cavalry 默认将 Auto Key 设置为开启。这意味着一旦设置了关键帧,对 Control 中值的任何更改将设置新关键帧,或者当播放头位于现有关键帧的同一帧上时,更新该关键帧。

也可以使用 Control Row 的上下文菜单设置关键帧。

  1. 将光标悬停在 Control Row 上。
  2. 右键单击以调出上下文菜单。
  3. 选择 “Set Keyframe” 可在所有通道上创建关键帧。要在单个通道上创建关键帧,请选择窗口右侧的相关通道。

此窗口也可以完全相同的方式用于删除关键帧

要删除属性/通道上的所有关键帧,请使用 Delete Animation 选项。

如果 timeline 位于与关键帧相同的帧上,使用 Cmd/Ctrl + 单击可以删除该关键帧。

右键单击 Control Row 将弹出一个菜单,其中包含各种选项,具体取决于行类型以及它是否包含连接:

  • Set Keyframe - 在当前帧为属性设置关键帧。当属性行包含多个 Control(例如 int2 或 double2)时,选择相关 Control 或单击该行可为所有 Controls 创建关键帧。
  • Delete Keyframe - 删除当前帧的关键帧。当属性行包含多个 Control(例如 int2 或 double2)时,选择相关 Control 或单击该行可删除所有 Controls 的关键帧。
  • Delete Animation - 删除所有关键帧。当属性行包含多个 Control(例如 int2 或 double2)时,选择相关 Control 或单击该行可删除所有 Controls 的所有关键帧。
  • Disconnect Input - 移除输入连接。当属性行包含多个 Control(例如 int2 或 double2)时,选择相关 Control 或单击该行可删除所有 Controls 的连接。
  • Duplicate and Replace - 复制输入连接的 Layer 并用新 Layer 替换该连接。
  • Reset Attribute to Default - 当属性值已更改时,将其恢复为默认值。
  • Rename… - 自定义属性名称。
  • Edit Limits… - 自定义可输入值的范围。参见 Edit Limits…
  • Delete Selected Attributes - 删除 Array Layers 的选定索引(Value ArrayColor Array 等)。
  • Reorder - 重新排序 Array Layers 的索引(Value ArrayColor Array 等)。
  • Add Expression - 参见 Attribute Expressions
  • Add to Control Centre - 将选定的属性添加到 Control Centre
  • Add Pre-Comp Override - 为选定的属性添加 Pre-Comp Override
  • Control with Null - 创建一个 Null 并将其 Position 连接到选定的属性。
  • Add Behaviour - 选择一个 Behaviour 来创建并将其 Id 连接到选定的属性。
  • Add Array - 选择一个 Array 来创建并将其 Id 连接到选定的属性。
  • Add Math/Script - 选择一个 MathJavaScript Layer 来创建并将其 Id 连接到选定的属性。
  • Add Utility - 选择一个 Utility 来创建并将其 Id 连接到选定的属性。
  • Set Selected Attributes - 使用最后选定属性的值设置所有选定的属性。使用 Cmd/Ctrl 可选择多个属性。
  • Set Selected Layers - 将包含此属性的任何选定 Layers 设置为其值。例如,在 Scene Tree 中选择 3 个 Shapes,然后右键单击其中之一的 Position。
  • Copy Value - 将选定属性的值复制到剪贴板。
  • Copy Layer Id - 将 Layer 的 Id 复制到剪贴板,以便用于 scripting
  • Copy Scripting Path - 将属性的路径复制到剪贴板,以便用于 scripting。请注意,这些路径区分大小写。
  • Copy Generator Type - 将 Generator 的类型复制到剪贴板,以便用于 scripting
  • Paste Values - 将复制到剪贴板的值粘贴到选定属性。请注意,数据类型必须匹配。
  • Reveal Generator - 将 Generator(例如 Primitive Type、Distribution、Noise Type 等)显示到 Scene Tree 中,以便将其连接到其他 Layers。请注意,一旦 Generator 被显示,就无法再次从 Scene Tree 中隐藏。

可以向具有输入连接的属性添加表达式,以对值执行数学运算。与 controls 具有的内联表达式不同,这些表达式会被记住,并在属性值每次更改时运行。表达式也会与 Scene 一起保存。

属性表达式只能添加到具有输入连接的属性上。使用内联表达式在 control 中执行简单的、一次性计算。

当一个属性的输出值连接到另一个属性的输入时,该传入值会在计算属性表达式之前转换为输入属性的数据类型。

例如,如果输出值 2.34 连接到 int(如 Duplicator 的 Count),则在计算表达式之前将转换为 2;如果连接到 bool(例如复选框),则将转换为 1

设置属性表达式:

  1. 创建一个 Rectangle
  2. 连接 position.x→rotation.z
  3. 右键单击 Rotation
  4. 选择 Add Expression…
  5. 在 Z 输入框(底行)中输入 ∗2* 2∗2。
  6. Enter
  7. Scrub Position X

来自 Position X 的值被传递给 Rotation,并由表达式加倍。例如,Position X 值为 120 将导致 Rotation 值为 120∗2=240120 * 2 = 240120∗2=240

有效表达式的示例:

  • *2 - 乘以 2
  • /3 - 除以 3
  • %100 - 取模 100
  • ^2 - 2 次幂
  • +10 - 加 10
  • sqrt(9) - 9 的平方根

也可以将传入值用作属性表达式的一部分。使用字符串 value 来引用输入值。有效表达式的示例:

  • -(value) - 将输入值从负值反转为正值(反之亦然)。
  • sqrt(value) - 计算输入值的平方根。如果输入值为 9,结果将为 3。
  • clamp(-45, value, 45) - 即使输入值超过限制,也要防止输出值低于 -45 或高于 45。
  • round(value/10)*10 - 将输入值四舍五入到最接近的 10。round(value) 默认四舍五入到最接近的整数。
  • if(value < 0, 0, value) - 如果输入值小于 0,返回 0,否则返回输入值。

更多可用选项参见 ExprTk

一旦表达式存在,可以使用属性的 Control Row 上的 π 按钮进行编辑或删除。

  • 禁用表达式 - 单击 π 按钮打开表达式窗口,然后取消勾选相关属性。

  • 清除/删除表达式 - 单击 π 按钮打开表达式窗口,然后删除表达式或单击 x

属性可以设置为接受自定义值范围。这对于作为 ComponentsPre-Comp Overrides 一部分的属性特别有用。

右键单击属性并选择 Edit Limits... 来定义以下属性:

  • Hard Minimum - 字段不能低于的值。
  • Hard Maximum - 字段不能超过的值。
  • Soft Minimum - 当 scrubbed 时字段将停止的最小值,但可以通过输入值手动覆盖。
  • Soft Maximum - 当 scrubbed 时字段将停止的最大值,但可以通过输入值手动覆盖。
  • Step - 当 scrubbing 值或使用 ⬆︎ ⬇︎ 键时值增加/减少的增量。

请注意,Cavalry 已定义 Hard Minimum 或 Maximum 的属性不能被覆盖。例如,Shape 的 Opacity 由 Cavalry 设置为 0..100,因此不能将其设置为超出该默认范围的 -20..120 等值。

Soft limits 应被视为参考线。如果手动将值设置在 Soft limit 之外,则该限制将被移除,直到值被重新设置回其限制范围内。

对于具有单个值的数值属性,设置 Hard Minimum 和 Maximum 将导致在下次将 UI 加载到 Attribute Editor 时 UI 更新为 Slider

所有限制都会与文件一起保存,并且是 “per attribute” 的,这意味着编辑 ellipse 上的 radius 不会影响任何其他 ellipse shapes,只会影响您正在编辑的那个。

编辑 Double2 属性(例如 Pivot)将同时编辑 X 和 Y 属性。目前无法单独设置例如 pivot.xpivot.y

如果现有值超出所定义的限制范围,则在提交限制后,该值将更新为限制范围内的值。请注意,这可能会更改您的 Composition。