控件行 - 交互
每个 Layer 包含多个属性,这些属性具有可以设置关键帧或与其他值建立连接的值。属性在 UI 中由两个元素组成:Control Row 和 Control。Control Row 是整个属性行,可以包含多个 Controls([x, y]、[r, g, b] 等)。
当光标放置在 Control Row 上时,几个 UI 元素将出现/高亮显示。
设置 Control 值
标题为“设置 Control 值”的章节设置 Control:
- 将光标悬停在 Control 上。
- 单击。
- 输入一个值。

Controls 也可以通过 “scrubbed” 来设置。
- 将光标悬停在 Control 上。
- 单击并按住。
- 左右移动光标。

请注意,当光标到达显示屏边缘时,scrubbing 值可能会受到限制。为防止出现这种情况,请在 Preferences 窗口中启用 “Infinite Scrubbing”。
对于具有多个字段的 Control Rows(例如 Position X 和 Y),在 scrubbing 或提交值时按住 Option/Alt 键可同时影响所有字段。
要同时为具有匹配属性的多个 Layers 设置值:
- 将一个 Layer 加载到 Attribute Editor 中。
- 在 Scene Tree 中选择所有其他要更新的 Layers。
- 在 Attribute Editor 中更新属性。
使用 ⇥(Tab 键)将焦点移至下一个 Control,或使用 Shift + ⇥ 将焦点移至上一个 Control。请注意,macOS 用户可能需要设置一个偏好才能使其工作。操作如下:
- 打开 “System Settings…”。
- 导航到 “Keyboard”。
- 启用 “Keyboard navigation”。
此设置可以使用快捷键 control + F7 或 fn + control + F7(取决于 Function Keys 偏好)来开启/关闭。
约束比例
标题为“约束比例”的章节某些 int2 Controls 还包括约束两个值比例的功能。

开启/关闭约束比例。
当约束比例按钮启用时(绿色),更改任一维度时,两个值的原始宽高比将得到维持。例如,如果 Rectangle 的 Width 为 100,Height 为 200,将 Width 增加到 200 将把 Height 按比例增加到 400(维持 1:2 的比例)。
内联表达式
标题为“内联表达式”的章节可以在 Control 中编写简单的数学表达式。例如,输入 12∗312*312∗3 将得到值 36。
设置关键帧
标题为“设置关键帧”的章节设置关键帧:
- 将光标悬停在 Control 上。
- Control 中将出现一个小菱形轮廓图标。
- 将光标移到此图标上方并单击。
- 图标将变为绿色填充。这表示已设置关键帧。

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

- 无关键帧 - 表示该 Control 上没有动画。
- 已有关键帧 - 表示该 Control 上已设置了动画。
- 已有关键帧(在当前帧)- 表示在 Timeline 的当前帧该 Control 上有动画设置。
Cavalry 默认将 Auto Key 设置为开启。这意味着一旦设置了关键帧,对 Control 中值的任何更改将设置新关键帧,或者当播放头位于现有关键帧的同一帧上时,更新该关键帧。
也可以使用 Control Row 的上下文菜单设置关键帧。
- 将光标悬停在 Control Row 上。
- 右键单击以调出上下文菜单。
- 选择 “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 Array、Color Array 等)。
- Reorder - 重新排序 Array Layers 的索引(Value Array、Color 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 - 选择一个 Math 或 JavaScript 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。
设置属性表达式
标题为“设置属性表达式”的章节设置属性表达式:
- 创建一个 Rectangle
- 连接 position.x→rotation.z
- 右键单击 Rotation。
- 选择 Add Expression…。
- 在 Z 输入框(底行)中输入 ∗2* 2∗2。
- 按 Enter。
- 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- 加 10sqrt(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。
Edit Limits…
标题为“Edit Limits…”的章节属性可以设置为接受自定义值范围。这对于作为 Components 或 Pre-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.x 和 pivot.y。
如果现有值超出所定义的限制范围,则在提交限制后,该值将更新为限制范围内的值。请注意,这可能会更改您的 Composition。