跳转至

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 × 23 × 22 × 33 × 35 × 37 × 3Combo SliderCustom…。标签读作列 × 行,所以 5 × 3 是宽五格、高三格。

5 × 37 × 3 是常见的 turnaround 形状,也是新建 layer 的默认值。

Combo Slider

选择 Combo Slider 会把这个 layer 变成一维的。会出现一个 Pos 微调器,用来设置位置数量,从 2 到 1024。

它最终在画布上是横向还是纵向,以及哪一端对应哪一端,会在稍后的 Widget Editor 中决定——创作轴和显示朝向被刻意分开处理。

自定义 grid

Custom Grid dialog

Custom… 会打开一个带有 ColsRows 的对话框,各自范围是 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 时就不再绘制;这时用方向键和锚点来导航。

相关内容