N4.07.3viewpoint oscillation设计研究

强制的第一人称视角抖动比移动本身更致晕

别名: 摄像机抖动 · 头部晃动 · camera shake

概念解释

爆炸来了,摄像机被强制晃三下——摇杆并没有动,胃先翻了。视角振荡(viewpoint oscillation)是内容把第一人称相机从头部真实运动上撕开,再叠一层晃、冲、弹。这层晃动往往比当时正在用的移动方式更致晕,因为它把高频、非自主的加速度直接写进视口。

走路时的轻微 head bob、受击时的 camera shake、着陆的下蹲弹,都属于这一类:不是用户在移动,是相机在替用户的头做假动作。

机制

头显的相机本应等于头部位姿。强制抖动等于在已经匹配(或已经勉强匹配)的头部运动上,再加一段头部并没有做的角速度和线加速度。半规管和耳石对这类高频瞬态最敏感,视觉却在报「头在磕」,冲突比匀速滑行更尖。用户无法用「我推了杆」来解释这股运动,自主缓冲被拿掉,和被动过山车是同一类。

更糟的是抖动常叠在已有移动上:一边滑行一边晃,等于在稳态光流上打脉冲。游戏从平面屏幕借来的受击反馈,在平面上只是画面在框里抖;在头显里它是整个世界绕着耳石转。幅度小、频率贴近步态的 bob 有时会被认成「在走」,一旦幅度超过步态、或与脚步不同步,就会从拟真变成假动作。

怎么研究

在同一套移动上开关抖动层:无 bob、步态同步的轻 bob、受击 shake、爆炸冲击。FMS 锁到抖动事件,不要锁到整段移动。让人用头部真实点头或受击姿势去对那层动画,可以看不同步有多大。SSQ 会把抖动和不舒适移动加在一个总分里,事件对齐才能指控抖动本身。

操作振幅、频率、持续时间和是否与头部追踪叠加(加法 vs 覆盖)。覆盖头部追踪等于把真实运动删掉,通常比在真实运动上加法更糟。

边界

第三人称或把身体当成被观察对象时,抖动是「那个身体在晃」,不是「我的头在晃」,致晕会轻。抖动若由用户自己的头部运动驱动(把真实 bob 放大),冲突方向相反,有时能增加匹配。极短的单帧闪白作为受击反馈,不带动相机位姿,不走这条通道。对晕动不敏感、却依赖受击反馈来判断伤害的玩家,关掉 shake 会伤操作;需要另一条不经过相机的反馈。从平面主机借来的「屏幕抖」预设不能当头显默认。

怎么落地

  • 默认关闭强制 camera shake 和夸张 head bob;受击、爆炸用短闪、声音、控制器震动,不要挪相机。
  • 若保留 bob,幅度低于真实步行的头部起伏,并与脚步锁定;不同步就关。
  • 抖动绝对不要覆盖头部追踪,只能在追踪结果上做极小加法,并给独立开关。
  • 验证:同一段移动,只开关抖动层。FMS 在抖动事件上跳升、关掉后回落,就该把该层移出默认。若关掉后伤害或着陆变得不可读,把信息改走触觉或声音,而不是把抖加回去。

延伸

  • 同组N4.07.1 视野边缘的光流是引发运动错觉的主因,视野中心影响较小 · N4.07.2 瞬时切角转向可替代平滑旋转,用离散跳变换取更低不适 · N4.07.4 气流、震动等现实物理线索能降低虚拟移动带来的不适 · N4.07.5 移动方式的不适易感性因内容类型而异,不能只按人群分层
  • 相邻N4.02 连续移动 · N1.13 晕动症的成因与个体差异
  • 站内检索viewpoint oscillation · camera shake · head bob

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/N4.07.3