缺少物理阻力,穿透是常见问题
别名: 手穿模 · 无阻力穿透 · 抓取穿入
概念解释
手指已经没入茶壶腹,瓷还在那里,皮肤却没有任何顶回来的力。直接抓取里缺少物理阻力,穿透是常见问题(virtual object penetration):虚拟物体拦得住视线,拦不住手。手沿着现实里会停住的那条路径继续走,于是进到物体内部。
穿透不是渲染漏洞这么简单。渲染可以把手画在表面之外,本体感觉仍报告手已经走到更里面。冲突发生在两条感觉之间,不是发生在某一帧没画好。
机制
现实抓取在接触的瞬间被法向力刹住。肌肉纺锤和皮肤一起给出「到了」的硬停止,后续的用力变成捏紧而不是继续前伸。XR 里这道刹车不存在。视觉可以画一条不能过的表面,手臂的运动规划仍按无障碍空间走——规划器在真实房间里工作,真实房间在那个坐标上是空气。
于是出现两种可见的穿入。一种是手还在闭合途中就已没入体积,因为闭合动作本身带有朝向物体中心的分量;一种是已经「抓住」之后仍把物体戴在手上往前送,物体跟着走或被留在原处,手从中穿过。两种的共同原因是:停止条件写在视觉里,执行器写在没有阻力的肉身上。人越是按现实经验用力,穿得越深——经验在这里帮倒忙。
把虚拟手冻在表面、真手继续往里,会制造第二种冲突:看见的手停了,感到的手还在动。冻与不冻都无法同时满足视觉和本体感觉,穿透因此不是一个可以「修掉」的小缺陷,而是这条输入方式的结构后果。
怎么研究
让人去抓有体积的物体,用运动捕捉同时记真手位置和虚拟手位置,看进入物体内部的深度与次数。
自变量:物体尺寸与材料外观、有无把虚拟手钳在表面的约束、抓取速度、物体是否在接触后被允许跟着动。 因变量:最大穿入深度、穿入占总抓取次数的比例、视觉-本体感觉冲突的主观强度、人是否改用更轻、更慢的假动作。
要分开「穿过表面」和「停在表面外几厘米够不着」。前者是阻力缺失,后者是体积对齐或追踪偏移。只报一个「失败率」会把两种机制混在一起。高速抓取会放大穿入,因为它把刹车需要的时间压得更短。
边界
手指真的抵在桌面、墙或另一只手上时,现实补回了阻力,穿入被物理表面截断——虚拟物体如果刚好贴在那张桌上,问题会缩小。外骨骼或接地的力反馈设备能提供法向力,这条的前提消失。扁平、几乎没有厚度的卡片被穿的感觉弱于茶壶、球体,因为内部可走的路径短。把物体做成一碰就吸附到手上、不再要求手停在表面,是在取消「停住」这个需求,穿入被绕开而不是被解决。实验室里缓慢、被指示「轻轻拿」的抓取会低估真实使用中按日常力度去拿时的穿入深度。
怎么落地
- 不要让视觉表面暗示「这里是实心的硬壳」,同时允许手以日常速度直接撞进去。要么接受穿入并让物体在接触开始后跟着手走,要么把可抓物做成明显轻、薄、会让的。
- 真手已经进入体积时,不要把虚拟手硬钉在表面上假装没有发生;钉住会造成更刺眼的手眼分裂。
- 对必须看起来实心的物体,降低抓取速度预期:用接近、悬停、再闭合的节奏,而不是挥手砸进去。
- 验证:侧录真手与虚拟物体,逐次量穿入最深的那一帧。日常力度下反复没入超过物体半径,说明阻力缺失没有被任何策略接住——不是「再画实一点」能修的。