跳转至

History & Undo

History 面板在 Navigator 下方,位于左列的下半部分。它就是整个撤销模型,以可见的方式呈现。

History panel

一条时间线,不是两个栈

ORC 用的是 Photoshop 的模型:一份单线的列表加一个指针,不是撤销栈加重做栈。

  • 高亮行上面的一切都是过去。
  • 下面的一切都是前进分支 — 重做会重放的内容。它会以灰色画出,图标半透明。
  • 做新的事情会从你所在的位置截断前进分支

一行细细的 Initial state 固定在顶部,始终可以到达。

使用它

操作 方式
撤销 Ctrl+Z
重做 Ctrl+Shift+ZCtrl+Y
跳到任意位置 点击那一行

点击一行会直接跳过去 — 往回二十步是一次点击,不是二十次撤销。跳转只移动指针,从不推入新条目,所以你可以自由地四处查看再回来。

反馈栏会说明发生了什么: "Undo: add driver", "Jump: capture frame"。无处可去时会用红色显示 "Nothing to undo"

在一个文本字段内,Ctrl+Z 撤销的是你的输入 — 字段自己的撤销优先。

读懂一行

每个条目带的是你做的事情种类对应的图形符号,不是动词。添加一个 driver 显示的是 driver 的闪电图标,不是一个通用的加号 — 你扫视历史时找的是你碰了什么

符号 种类
一个 driver
一个 constraint
一个 visibility group
一个 look-at
一个 control
一个 preset
一帧或一个 snap
一个 target
一次 side 或 mirror 的改动
一次粘贴
一个 channel
一张 drawing
一次重命名
  一次添加或一次移除

什么算作一步

比你想的要多,而且是故意的。

一个手势就是一个条目。 删除一个 pose layer 在内部会触发一次结构改动、一次 knob 解绑,以及一次轴清除 — 三个各自本会成为一个条目的请求,那样一次 Ctrl+Z 就只能撤销一半。ORC 保留第一个,丢掉其余的。

一次滑块拖动是一个条目。 拖动一个 driver 或 look-at 的 slider,每秒会触发大约六十次改动。ORC 会在拖动开始前给这个值拍个快照,然后等你停下来。

一次批量写入是一个条目。 一次 grid fill、一次 preset apply、一次 grid paste,不管碰到多少个 snap,都只拍一次整体的快照。

它不做什么

撤销从不写入你的 Harmony 场景。 Compose 是 ORC 里唯一会这么做的东西。撤销一次 pose layer 删除,会在 ORC 内部恢复它;你的场景从一开始就没被碰过。

深度和内存

两个限制,第二个才是真正会在重型 rig 上咬人的那个:

限制 默认值 位置
条目数量 50 Preferences 里的 History depth,10–250
内存 一个固定上限 不可配置

每个条目都是 rig 的完整快照,所以更深的历史会花费真实的内存。当总量太大时,无论你设的深度是多少,最旧的条目都会被丢弃,并记录在日志里。

调低深度会立即生效地清理。

一份文档,一份历史

从 ORC 内部打开的 Widget Editor 共享这份历史。撤销一次 widget 移动,History 面板会跟着后退;撤销一次 pose layer 删除,编辑器的画布会重新加载。

独立版 Widget Editor 是一份独立的文档,有自己的撤销,和自己的深度设置

History 不会被保存

这个面板是一个会话级工具。关闭 ORC 就结束了它 — 它不会写入磁盘,恢复会话时也不会带回来。

留存下来的是工作本身:你的 rig 数据会自动保存,重新打开时会提示恢复。见 Re-editing a Composed MC

在一次长时间的 apply 期间

在应用一个 preset 或一个 session 期间,ORC 会阻塞输入并显示等待光标。这是故意的:在一次 apply 进行到一半时点击一个 navigator,会让你看到半恢复状态,看起来像个 bug。事件会被丢弃而不是排队,所以这不会有任何代价。

如果这次 apply 需要询问你什么,阻塞会为了那个问题解除,问完之后再恢复。

相关