Grids & Snaps¶
一个 grid 是一个 layer 被创作所依托的 pose 网格。每个 snap 是一个位置,地址写作 R{row}C{col}——从零开始,R0 是最上面一行,C0 是最左边一列。
这个地址在任何地方都是同一个字符串:在 grid 的标尺上、在日志里、在一个 preset 文件内部、在你复制过的 grid 里。当一条消息提到 R1C3 时,指的就是这个位置。
读懂一个 snap¶
每个 snap 都是上面一个状态点,下面是它的帧号。
| 点 | 含义 |
|---|---|
空——这里没有 key。标签显示 —。 |
|
| 由当前激活的节点打了 key。 | |
| back face 的一个 side snap,通过 Share Sides 从 front 继承而来。 | |
| 已修改——这个 snap 的帧自 rig 被引入以来发生过变化。 | |
| Removed——空的,但参照在这里有一个已被删除的帧。正是这个环,把“我删掉了它”和导入时本来就空的 snap 区分开来。 |
光标是你当前停留的那个 snap:更大,也是唯一带边框的点。
| 光标 | 含义 |
|---|---|
| 停在一个空 snap 上 | |
| 停在一个已打 key 的 snap 上 | |
| 这个 snap 同时也已修改——边框把白色换成黄色 | |
| 停在一个已移除的 snap 上——空的(蓝色),边框是黄色的,因为参照在这里有一个帧 |
一个已修改的光标 snap 会替换边框的颜色,而不是再多加一圈,这样光标就不会同时读出两个标记。
在一个密集的 grid 上——比如一个 32 个位置的 slider,或一个 21 × 13 的自定义 grid——navigator 会主动削减细节而不是被信息淹没:每个 snap 的徽章会收拢成光标下方的一个单一药丸形,点会缩小,一个贯穿光标的十字准星会告诉你现在的位置:
当一个 key 被记录下来时,每个可见 grid 的光标都会闪烁绿色片刻——确认它已经落地。
grid 的边框只通过外圈的点来绘制——中间没有内部网格线——再加一个小小的中心十字标出中点,画在这些点的后面。
一维 slider grid 用和 navigator 相同的两个锚点来标记两端——标在行程的起点,标在终点——这样即使 Widget Editor 把它旋转或反向了,你依然能分辨它的走向。
标尺¶
左边是 R0 R1 R2…,顶部是 C0 C1 C2…。两者合在一起,字面上就拼出了 snap 的名字。
| 手势 | 效果 |
|---|---|
| 点击标尺条 | 选中整行或整列 |
| Shift + 点击 | 从上一次标尺点击处扩展选区 |
选中一整行或一整列不会导航——你的时间线原地不动——光标只有在原本不在新选区内时才会移动。两条标尺条交叉的那个角不属于任何一方,点击它没有任何效果。
当一个大 grid 滚动时,标尺会固定在可见区域,并且每一行和每一列都有标签,不会因为密集而省略。
编辑 snap¶
| 手势 | 效果 |
|---|---|
| 点击 | 导航到那个 snap |
| Shift + 点击 | 沿主轴做范围选择——这会成为 fill 的种子 |
| 双击 | 行内编辑器:输入精确的帧号。支持算术运算。0 会把 snap 清空为 — |
| Shift + 滚轮 | 不打开编辑器,直接把该 snap 的帧步进 ±1 |
| F6 / F7 | 设置 / 删除 key |
| 右键点击 | 弹出下面这个 snap 菜单 |
普通的鼠标滚轮只会滚动面板,而不会编辑——这是刻意设计的。
Excel 风格的自动填充¶
把鼠标悬停在选区边缘附近,最近的边缘上会出现一个细细的蓝色填充手柄,并带一个小箭头光标。
| 手势 | 效果 |
|---|---|
| 拖动手柄 | 实时预览将要写入的帧,用琥珀色显示;松开即提交 |
| 双击手柄 | 朝那个方向填充,直到遇到下一个已打 key 的 snap,或 grid 边缘。它绝不会覆盖已存在的 key |
拖动时按住一个修饰键:
| 修饰键 | 效果 |
|---|---|
| (无) | 每一行都以 +1 递增 |
| Alt | 递减计数——turnaround 返程的那一半 |
| Shift | 按行优先:计数贯穿整个 grid 延续下去(1 2 3 → 4 5 6 → 7 8 9),而不是每行重新开始 |
| Ctrl | 复制:每个 snap 都原样得到种子帧 |
当种子是一整行或一整列多个 snap 时,沿自身轴延伸会延续那个种子自身的步进,而不是固定的 +1。
一次完整的填充是一个撤销步骤,而不是每个 snap 一次。
试试整套操作——选择、标尺、输入一个帧号,以及带各种修饰键的填充手柄。这个是 6 × 4 的,所以它的中心十字位于 snap 之间——在偶数计数下,中点是一个点,而不是一个 snap:
右键菜单¶
| 项目 | 效果 |
|---|---|
Set Key F6 |
在这个 snap 上记录 key |
Remove Key F7 |
彻底清空这个 snap——pose、drawing 和帧,以及开启 mirroring 时它的对称部分 |
Fill Grid |
打开 Fill Grid 对话框 |
Copy Grid |
复制这个 grid 的形状、间距和帧 |
Paste Grid |
应用一个已复制的 grid。无法应用时会禁用,并把原因作为 tooltip |
Clear All Pose Layer Keys at this Head |
仅这个 layer 在当前 control snap 上的 key |
Clear All Pose Layer Keys |
这个 layer,所有 control snap,所有 knob |
Clear Pose Layer Keys at this Knob |
仅这个 layer 当前激活的 knob。只有涉及 knob 时才会出现 |
批量清除操作默认没有绑定快捷键;在 Preferences 里为它们指定按键,组合键就会出现在这里它们旁边。
在共享 side 列上,这个菜单会被隐藏——那些要在 front face 上创作。
Copy & Paste Grid¶
Copy Grid 复制的是这个 grid 的形状、间距,以及它当前正在显示的帧——直接读取自这个实时 widget,它已经解析好了 control snap、side、page 和 knob 的位置。这正是"复制这个 grid"所承诺的内容。
剪贴板是按值存储的,所以即使切换 layer,或者源 layer 被删除或调整了大小,它依然存在。
为什么复制功能挂在 grid 上,而不是工具栏上
这个手势必须指明是哪个 grid——Left-1 还是 Right-2 还是 Solo-3。而工具栏按钮位于一个 layer 所有 grid 的上方,只能靠猜。
粘贴运行的代码和导入一个 preset 完全相同,所以一个复制的 grid 和一个 Harmony 的 .gridPreset 表现完全一致。拒绝执行时什么都不会写入——绝不会出现部分粘贴。
Grid 形状¶
Grid 下拉菜单提供 2 × 2、3 × 2、2 × 3、3 × 3、5 × 3、7 × 3、Combo Slider 和 Custom…。标签读作列 × 行,所以 5 × 3 是宽五格、高三格。
5 × 3 和 7 × 3 是常见的 turnaround 形状,也是新建 layer 的默认值。
Combo Slider¶
选择 Combo Slider 会把这个 layer 变成一维的。会出现一个 Pos 微调器,用来设置位置数量,从 2 到 1024。
它最终在画布上是横向还是纵向,以及哪一端对应哪一端,会在稍后的 Widget Editor 中决定——创作轴和显示朝向被刻意分开处理。
自定义 grid¶
Custom… 会打开一个带有 Cols 和 Rows 的对话框,各自范围是 2–32——所以 32 × 32 = 1024 个 pose,和一个 slider 的上限一样。
一个实时提示会统计 snap 数量并逐级升级提示语气,但永远不会阻止你:
| Snap 数 | 消息 |
|---|---|
| ≤ 32 | N snaps |
| > 32 | "N snaps — that's a lot to pose/key per pair." |
| > 400 | "N snaps — authoring this by hand is a big job, and capture/compose time grows with every keyed snap." |
这个对话框只定义逻辑上的形状。行和列在物理上具体落在哪里,会在 Widget Editor 中细化。
重塑一个 knob 会重新编号它的消费者
如果这个 layer 正被用作一个 knob,改变它的形状会重新编址它所有消费者持有的每一个 key,让每个已创作的位置保住自己对应的可视 snap。ORC 会报告这件事:"Knob reshaped — 84 key(s) renumbered to the new grid."
只读 snap¶
有两种情况下 snap 可见但不可编辑:
- 使用 Share Sides 的 back face 的side 列。它们渲染成青色,并且可以点击跳转到 front 创作时所在的帧,但编辑会被拒绝——请在 front 上创作它们。
大型 grid¶
这个 grid 是固定尺寸的:大的 grid 会滚动而不是缩小,这也是为什么每一行每一列都始终保留自己的标尺标签。
在 Navigator 里,密度会优雅地降级:当点与点之间小于约 16 px 时,只有当前激活的 snap 保留它的帧徽章——绘制在一个深色药丸形上,带一个贯穿 grid 的十字准星——而当小于约 7 px 时,点本身会缩小。在 slider 上,tick 在小于约 3 px 时就不再绘制;这时用方向键和锚点来导航。
