虚拟现实(VR)中的晕动症 - VIMS

在玩VR的时候,很多玩家都遇到过发晕恶心等症状,这就是晕动症(Motion Sickness,以下或简称MS)。MS并不是VR特有的问题。我们在坐船、坐车、坐过山车等等都可能发生晕动症MS。晕动症的表现一般有发热、冷汗、眩晕、轻微胃反应、头疼、脸色发白等,严重时可能会有恶心、唾液增加、干呕或呕吐等,之后可能会渴睡。症状发生后,可能要数小时才能消退。理论上讲,所有正常人(前庭系统完整的人),都可能经历晕动症。

VR中出现的晕动症主要是由视觉产生的晕动症(Visually induced motion sickness,以下简称VIMS)。VIMS发生在如电子游戏、模拟驾驶器等等的有视觉刺激的环境下,而不是发生在像坐车、坐船一样身体的颠簸刺激下。学术界也有称之为电子晕动症(cybersickness)、虚拟现实晕动症(virtual reality sickness)、游戏晕动症(gaming sickness)、镜头晕动症(camera sickness)和模拟器晕动症(simulator sickness)。最后一项“模拟器晕动症(simulator sickness)由Kennedy等人提出,他们提出的模拟器晕动症问卷(Simulator Sickness Questionnaire, SSQ)也成为一个VR学术研究中评价晕动症时被广泛使用的问卷。

MS的产生原因

关于MS的产生原因,各家众说纷纭,当前并没有一个统一的定论,因为似乎每一种说法都能找到相悖的情况,或者不能解释所有的晕动症的产生。但是当前最为广泛接受的有两种观点:一种是“感官冲突”(Sensory Conflict),一种是“姿态不稳定”(Postural Instability)。下面一一为大家介绍。

观点一:感官冲突 Sensory Conflict

感官冲突也被称为“感官重组(Sensory Rearrangement)”,“神经失配(Neural Mismatch)”,或“线索冲突(Cue Conflict)”。VIMS由感官冲突导致的观点由Reason和Brand在20世纪70年代提出。这里的感官是指的视觉系统、前庭系统(vestibular system)、体感系统(somatosensory system)。其中前庭系统是人体内位于耳后前庭的一个结构,负责提供人的空间感和平衡感。体感系统指的是人的皮肤、躯体对外界和内部的感知系统,主要是力的感知,包括触觉、压觉、痛觉、温觉和本体感觉(肌肉和关节运动等)。当这些系统(主要是视觉和前庭)传递给中枢神经的信息不一致时,VIMS就产生了。比如,游戏画面(视觉系统)告诉你你跳下了屋顶,而你的身体(前庭系统和体感系统)告诉你你在这好端端的坐着,这时候就可能发生MS。

除了感官之间的信息不匹配,感官冲突还可能体现在另一种冲突上,也就是人们的感官信息预测(根据前一瞬做出)和实际发生的感官信息的冲突。比如,本来人在平稳地水平移动,但是如果下一瞬突然开始上下移动(比如站在船上时船的上下浮动、坐车时的颠簸),那么就可能导致MS。VR中,比如用户预期可以平稳的移动,但是画面出现了卡顿或者失灵,那么就可能发生VIMS。这个观点涉及到的某些生物学理论,如神经存储区等,还未在生物和医学上证实 - 不过科学本来就是不能证明,只能证伪的(笑),关键在于观点的解释力,适用的情况是否广泛。这一理论的模型已经相当完善(见下图)。并且,除了解释MS产生的原因,该理论还可以解释人是如何适应MS的。也就是当发生过预期和真实信号不匹配的情况后,人们可以进行学习适应,(主动或潜意识地)调整预期,预期和真实一致后,晕动症就不会再发生了。这也可以解释,为什么航海的船员刚上岸时常常也会出现不适,但是只要稍作适应,不久后就会恢复正常。这也提示我们,可以通过训练的方式减轻MS的发生。

图1. 感官冲突理论。虚线代表内部神经系统储存的信息。译自Keshavarz, B., Hecht, H., & Lawson, B. D. (2014). Visually Induced Motion Sickness: Causes, Characteristics, and Countermeasures. pp. 653. 原始图来自Benson, A.J., Motion sickness, in Pandolf, K.B. and Burr, R.E., [Eds.], Medical Aspects of Harsh Environments, Vol. 2, United States Army Medical Department Center and School, Washington, DC, 2002, pp. 1048–1083.

感官冲突是当前最为主流的观点,大部分人解释VR晕动症时都会提到这一观点。这是因为与它相关的研究相当之多,并且该理论的诠释力强,也有很多延伸理论。不过在学术界,这一观点也有很多被诟病的地方。首先,该观点声称的感官冲突处理的“皮质中心”在生理学上并未被完全证实存在( Oman & Cullen, 2012)。亦有Ebenholtz等人1994年指出,感官冲突理论可以后知后觉地解释所有MS,这种理论是不可证伪的伪理论。同时,感官冲突理论还有一个重要的被抨击的原因,那就是它并不能解释一种情况的发生:为什么低频垂直震荡容易导致的严重的MS。而这种情况,可以很好地被下一种观点解释。

观点二:姿态不稳定 Postural Instability

该观点由Riccio和Yardley于20世纪90年代初提出。他们提出了一个概念叫“姿态稳定性(Postural Stability)”,指的是“The state in which uncontrolled movements of the perception and action system are minimized.(不受控制的感知和行动系统的动作最小化的状态)”。说人话就是,如果你不需要怎么动,那就姿态稳定。举个反例,在公交车上,公交车的加减速度、转弯,都会让你的身体产生被动的动作,你都需要动脑和动身体来协调你的身体来站稳,这就是姿态不稳定的状态。Riccio和Yardley认为,晕动症发生在一个人的姿态稳定性受到场景的挑战,需要额外努力来维持的情况下。

频率为0.06-0.4Hz的一些低频运动容易使人产生严重的晕动症,车、船、飞机都可能产生这种低频运动。有趣的是,人的自发身体摇摆(spontaneous body sway),也就是人不由自主产生的运动,它的低频范围也在这个0.06-0.04的区间内(Golding et al., 2003; Golding & Gresty 2005)。于是Riccio和Stoffregen(1991)认为外界发生的低频运动加重了人的自发身体摇摆(因为频率相近),这样人体难以自然地保持姿态稳定性,从而产生了晕动症。已有数个研究表明MS的产生和姿态不稳定性有关。如Merhi等人(2007)发现在玩电子游戏时,喜欢动头部的玩家VIMS更严重。Bonnet等人(2006)也通过实验发现,在暴露在低频运动的环境下时,产生严重MS的被测者比轻微MS的被测者的身体摇摆的变化更大。

姿态不稳定理论认为姿态不稳定性是MS的充分必要条件。然而,该理论的研究也有遭到质疑。如身体的摇摆到底和MS有何相关性 - 是摇摆幅度增加、减少还是前后的摇摆变化程度增加?这个相关性并没有被明确定义。还有身体摇摆为什么就代表了姿态不稳定?(那身体上下晃动或者其他运动呢?)很多学者如Golding和Gresty(2005)、Lubeck等人(2011)都指出了该理论中的一些不足和矛盾的地方。比如,按照理论所说,如果我们借助外界的手段帮助人的身体保持稳定,那么就不应当发生MS,然而有的实验表明外界的稳定性帮助的却可以防止MS,而一些实验却发现没有区别。


Keshavarz, B., Hecht, H., & Lawson, B. D. (2014). Visually Induced Motion Sickness: Causes, Characteristics, and Countermeasures.

虚拟现实中的Motion Sickness晕动症问题 - VIMS的更多相关文章

  1. 虚拟现实中自由步行(free-space walking)

    之前我们讲到了虚拟现实中漫游方式的分类.虚拟现实中的漫游(travel/navigate)方式,即是应用提供给用户的,在虚拟环境中移动的方式.虚拟现实的漫游方式中,有一种被称为“完全动作线索”1,即用 ...

  2. 用原生js写一个"多动症"的简历

    用原生js写一个"多动症"的简历 预览地址源码地址 最近在知乎上看到@方应杭用vue写了一个会动的简历,觉得挺好玩的,研究一下其实现思路,决定试试用原生js来实现. 会动的简历实现 ...

  3. CSS3 animation属性中的steps实现GIF动图(逐帧动画)

    相信 animation 大家都用过很多,知道是 CSS3做动画用的.而我自己就只会在 X/Y轴 上做位移旋转,使用 animation-timing-function 规定动画的速度曲线,常用到的 ...

  4. angular2中的路由转场动效

    1.为什么有的人路由转动效离场动效不生效? 自己研究发现是加动效的位置放错了  如下: <---! animate-state.component.html --> <div sty ...

  5. cocos2dx中的实现地图卷动的两种方式

    在游戏当中,实现地图卷动是最基本的功能,具体的实现的方法,大致有两类: 方法一:加载两张图片,轮流显示, 优点: 1.无论是地图上下卷动,还是左右卷动都可以 2.支持各种图片,(png,jpg...) ...

  6. 视频转成在github的readme中展示项目的gif动图

    本文中涉及的FastStone Capture和FFmpeg两个软件的百度网盘链接: 链接:https://pan.baidu.com/s/1D5LO9Qmjl-vwJZfnbAloyQ 提取码:56 ...

  7. 剖析虚幻渲染体系(15)- XR专题

    目录 15.1 本篇概述 15.1.1 本篇内容 15.1.2 XR概念 15.1.2.1 VR 15.1.2.2 AR 15.1.2.3 MR 15.1.2.4 XR 15.1.3 XR综述 15. ...

  8. VR电竞游戏在英特尔®架构上的用户体验优化

    作为人与虚拟世界之间的新型交互方式,VR 能够让用户在模拟现实中获得身临其境的感受.但是,鉴于 VR 的帧预算为每帧 11.1ms (90fps),实现实时渲染并不容易,需要对整个场景渲染两次(一只眼 ...

  9. VR元年,VR虚拟现实这只风口上的猪有怎样的变化?

    走过了2016年,无论我们承认不承认,这一年到底是不是VR元年,我们都很难否定,在这一年,VR虚拟现实生态圈有很大的变化,那么,这一年VR虚拟现实到底有怎样的改变呢?我们的VR虚拟现实生态圈,发生了什 ...

随机推荐

  1. C语言打印图形

    //输出图形 * * * * * * * * * * * * * * * * * * * * * * * * * //每行5个* void test1(){ //    外层负责行,外层执行一次,内层 ...

  2. poj3666 Making the Grade(基础dp + 离散化)

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  3. HDU 2561 二小整数

    第二小整数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. Unity3D 客户端编程

    Photon Server 和 Unity3D 数据交互: Photon Server 服务端编程 Unity3D 客户端编程. VS2017 之 MYSQL实体数据模 1:打开unity新建新项目, ...

  5. 阿里《JAVA实习生入职测试题—2019最新》之答案详解(连载一)

    力争清晰完整准确(逐步完善,持续更新) 1.String类为什么是final的 首先分析String的源码: public final class String implements java.io. ...

  6. 几个Python爬虫工具介绍

    Request Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用 上面一句话 出自Requests官方文档的第一句,从而奠定了其逗逼的文档风格.类似的还有: 警告: ...

  7. Nginx使用GeoIP模块来限制地区访问

    举例比如限制泰国地区的IP访问: 前提条件,安装了http geoip 或stream geoip模块的Nginx Plus或者开源nginx Maxmind的GeoLite Legacy数据库 1. ...

  8. 自荐RedisViewer一个有情怀的跨平台Redis可视化客户端工具

    自荐一个有情怀的跨平台Redis可视化客户端工具--RedisViewer 转载自 最美分享Coder 2019-09-17 06:31:00 介绍 在以往的文章中曾经介绍过几款Redis的可视化工具 ...

  9. “真”pandas“假”sql

    这篇博客利用了 pandas 对数据像 sql 一样去处理. 读取测试数据 import pandas as pd import numpy as np url = 'https://raw.gith ...

  10. [Spark] 08 - Structured Streaming

    基本了解 响应更快,对过去的架构进行了全新的设计和处理. 核心思想:将实时数据流视为一张正在不断添加数据的表. 一.微批处理(默认) 写日志操作 保证一致性. 因为要写入日子操作,每次进行微批处理之前 ...