C10.05.3tangibles resist undo and copy设计研究

实体界面难以撤销与复制

别名: 实体撤销 · token copy · 物理不可逆 · graspable undo

概念解释

屏幕上 Ctrl+Z 能把窗口弹回上一帧,复制能在不碰到原件的情况下再做一个。桌上的棋子被推到新格子里,上一格已经空了;要想「撤销」,得记得从哪来、再亲手推回去。实体界面难以撤销与复制(tangibles resist undo and copy)来自物件的唯一性与惯性:一份几何不能同时在两个地方,一份历史也不会自己叠回去。它不是同步失败,而是即使两边状态一致,编辑原语仍然缺「时光倒流」和「再来一份」。

机制

数字对象的撤销靠的是把状态向量存进栈,显示可以瞬移。实体对象的状态就是那颗积木的位姿,栈如果只存在软件里,播放撤销时物件不会自己走回去——除非有执行器或有人伸手。复制更硬:一个物理实例不能裂成两个而不引入新物件;「复制」要么变成屏幕上的影子(表示与控制再次分裂),要么要求盒子里还有一颗空闲的化身。多人时更糟:撤销该回谁的那一步、复制出来的第二份归谁抓,没有窗口层级可依赖。于是实体交互天然偏向建设性的、正向的摆放,不偏向试探-回退式的编辑。试探要另做沙盘或快照,不能指望通用撤销键。

怎么研究

给需要试探的任务(排布几种方案再选一个、误操作后恢复)分别用实体物件和屏幕对象来做。

自变量:有无软件撤销、撤销时物件是否被执行器或人移回、复制是影子还是第二颗实物、是否允许拍照当快照。 因变量:试探次数、误摆后的恢复时间、放弃试探改用「先在纸上想」的比例、复制后两份是否还都被当成可操作对象。

只测最终方案质量会漏掉过程:实体组可能更少试探、一次摆死。把撤销做成「软件回去了、物件还在新位置」,等于在测不同步,不是在测撤销原语。

边界

乐高式、允许拆掉重搭且零件充足的系统,复制和回退的成本是人手时间,不是语义缺失。有马达能把物件送回历史位姿的表面,撤销可以接近屏幕,但延迟和碰撞会让人不敢用。纯展示、不允许试探的展览桌,不需要撤销。一旦任务是「比较三个备选布局」,缺少复制就迫使串行覆盖,认知负担转到记忆里。屏幕侧如果也不提供撤销(某些嵌入式面板),这条差别会缩小,问题变成整个产品的编辑模型,而不只是实体。

怎么落地

  • 不要把通用撤销承诺写进只有传感、没有回放手的实体桌;改为明确的沙盘区、快照键、或「这一步可用手推回去」的短历史。
  • 需要并排比较时,预留足够的重复化身,或把备选方案冻在拍照/投影里,不要让人靠记忆对比被覆盖的上一版。
  • 复制若只能出影子,影子必须标明「不能抓,只是看」,避免被当成第二份控制。
  • 验证:给一个会走错一步的任务,看人用什么恢复——伸手推回、点撤销、从头再摆、放弃。软件撤销后物件仍停在错位,说明撤销原语没有落到实体上。再要求「留下两个方案并排」,数还缺几颗化身。

延伸

  • 同组C10.05.1 物理对象同时是表示与控制 · C10.05.2 实体状态与数字状态可能不同步
  • 相邻C10.16 机械可靠性与寿命 · C6.16 文本输入中的撤销
  • 站内检索undo · copy · tangible editing primitives

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C10.05.3