Locomotion,本文中我称之为移位,是VR研究中最重要的话题之一。因为它属于VR中三大元老级操作(Selection选择,Manipulation操纵物体,Locomotion移位),其中,前两个操作是关于物体的,而Locomotion是关于玩家自己的 - 几乎所有的VR应用都避不开这三个操作,而这三个操纵几乎涵盖了所有的VR操作。今天就来解释一下,VR中的Locomotion指的是什么,它有哪些分类和技术。

Locomotion是什么?

Locomotion,用最简单的话解释就是“从一个位置移动到另一个位置”,在VR中,它的指的就是玩家在虚拟环境中从一个位置移动到另一个位置,其本质是玩家视角(viewpoint)的改变:从一个视角变换到另一个视角。Locomotion在中文里尚无一致的翻译,所以这里我暂把它译作“移位”。

虚拟3D环境(包括VR和屏显等)中的Locomotion有三种可能的目的:探索(exploration),搜索(search)和查看(maneuvering)。探索是没有具体目标的移动,其目的一般是搜集环境信息,或者简单的就是享受美景。它讲究一个在环境中移动的自由性,移动的速度要能随心所欲,并且需要能视察大范围的环境全景。搜索则是有一个具体的目标,要在环境中寻找到它。这就要求能够同时顾及远景近景,既能大范围视察,又能有足够的细节,在这中间做一个权衡。maneuvering并没有一个很准确对应的中文翻译,它其实表示的是相对于一个物体的视角控制,一般目的是为了从各个角度观察某个物体或者某个环境,所以我这里把它译作“查看”。比如你如果进入了一个陌生的房间,可能会四周看看,走两步,或者你看到了一个纪念碑,想要绕道正面去看看碑面上写的什么。这时候你不会进行很大范围的运动,但是你会进行很准确的视角控制。查看是三种目的中移动范围最小的,也是最精细的操作,它需要操作的稳定性和精确性。

Locomotion的分类

Locomotion既然是从一个视角变换到另一个视角,那么根据两点之间如何进行变换,可分为两种方式:点对点的移位(target based locomotion)和导航(navigation)。其中点对点移位是直接从一个点跳转到另一个目标点,最常见的例子就是Teleportation传送门,用户选择要去的位置,然后天光一闪,用户就被传送过去了。而导航则是有一个从出发点到目的地的路径。要想导航必须知道当前的方向(spatial orientation)。

很明显的,对于点对点位移,我们只需要知道目的地的空间位置(position)和玩家移位过去以后的朝向(orientation);而导航,除了位置和朝向以外,还需要控制中间的过程。这个多出来的中间过程包括了两个方面的工作:寻路(wayfinding)和视角控制(viewpoint motion control,也称travel)。

其中,寻路主要是一个脑力上的活动,包括了理解空间信息(spatial understanding,理解我的空间位置、我与环境的关系)和计划路径(path planning,选哪个路径走)。关于它有很多认知方面的研究(可见Darken et al., 2014)。设计一种移位方式时,不能违背这些认知的方面的原则。

视角控制就是作为设计师和开发者可控制的部分了。根据我们想要达到的目的,如何让用户操作控制自己的视角。其本质就是开放一个对视角的位置朝向的控制接口。


McMahan, R., Kopper, R., & Bowman, D. (2014). Principles for Designing Effective 3D Interaction Techniques. In K. Hale & K. Stanney, Handbook of Virtual Environments (pp. 285–311). CRC Press. Retrieved from http://www.crcnetbase.com/doi/abs/10.1201/b17360-16
 
Darken, R. P., & Peterson, B. (2014). Spatial orientation, wayfinding, and representation.
 
The VR Glossary, locomotion, http://www.vrglossary.org/glossary/locomotion/

什么是VR中的Locomotion?的更多相关文章

  1. VR中的“寻路(wayfinding)”

    虚拟现实(VR)中很重要的一个问题就是Locomotion(用户在VR中的移动).这个Locomotion分为两种,一种是点对点的,如传送门的方式,一种是包含了可以操控的中间过程的,这种被称为“导航( ...

  2. VR中射线点击按钮的实现

    VR中实现UI的Button点击,主要是需要实现IPointerClickHandler接口,因为在Unity将所有的按钮操作都封装成了相应的接口,需要相应的功能只需要去实现对应的接口就好了.在这里我 ...

  3. VR中为什么需要把游戏音频放在聚光灯里?

    VR中为什么需要把游戏音频放在聚光灯里? 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/de ...

  4. 什么是VR中的vection?

    Vection是VR领域的一个专有名词,其义指“在虚拟现实中给人带来‘移动’(self-motion)感觉的认知因素”1.也就是说,vection就是指那些给玩家带来“我正在这个虚拟环境中移动”这种感 ...

  5. 浅谈html5在vr中的应用

    使用过HTML5制作动画过程的开发者都知道,HTML5页面给人一种逼真的感觉,同时HTML也是可以制作VR页面,但是需要你熟练HTML5与JavaScript开发过程,所以在有必要的情况下,我们可以用 ...

  6. VR中的Redirection

    在虚拟现实(Virtual Reality,VR)中,很重要的一点就是用户的在虚拟环境中的漫游(navigation).除了固定视点的VR电影,一般的VR应用,特别是游戏或者其他交互式的应用,都会依赖 ...

  7. VR中运动控制器的传送系统

    创建一个VRPawn 新建一个BluePrint,父类选择Pawn,我们命名为VRPawn,打开它. 添加一个Scene命名为CameraRoot 在CameraRoot节点下添加一个Camera 在 ...

  8. 使用鼠标左键事件实现VR中的Eye Gaze Input

    1.光标以及光标动画的显示 using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...

  9. 期待中冷静前行,专家预测2017年VR产业5大发展趋势

    VR在90年代火过一阵后,在2016年迎来了爆发.今年的VR领域,除了Oculus.HTC.索尼等发布的各家硬件,还有许多VR内容争奇斗艳的迸发,但是VR会一直保存热度吗? 事实上,对于科技圈巨头而言 ...

随机推荐

  1. FEL,项目实装记录

    FEL,即Fast EL ,版本0.8,具体内容我就不贴了,自行百度 实装遇到的问题: Spring Boot 打包后无法进行表达式编译. 根据百度以及源码,确定这东西是在用JavaCompiler将 ...

  2. Solr7.0搭建过程

    小李经过Elasticsearch和solr之我为什么选择solr之后决定使用使用Solr作为项目的搜索引擎,然后和同事们开始讨论细节问题. 小李:虽然我会solr4.7版本的搭建,但是人总要有点梦想 ...

  3. cogs249 最长公共子串(后缀数组 二分答案

    http://cogs.pro:8080/cogs/problem/problem.php?pid=pxXNxQVqP 题意:给m个单词,让求最长公共子串的长度. 思路:先把所有单词合并成一个串(假设 ...

  4. POJ2723 Get Luffy Out解题报告tarjan+2-SAT+二分

    今天看到讲2-SAT比较好的blog,感觉微微的理解了2-SAT 传送门 参考: https://blog.csdn.net/leolin_/article/details/6680144 题意:你有 ...

  5. Codefroces 374 B Inna and Sequence (树状数组 || 线段树)

    Inna and Sequence 题意:先给你一个n,一个m, 然后接下来输入m个数,表示每次拳击会掉出数的位置,然后输入n个数,每次输入1或0在数列的末尾加上1或0,如果输入-1,相应m序列的数的 ...

  6. bzoj 1051 [HAOI2006]受欢迎的牛(tarjan缩点)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1051 题解:缩点之后判断出度为0的有几个,只有一个那么输出那个强连通块的点数,否者 ...

  7. JXOI 2017 颜色 题解

    T3 颜色 100/100 对于这题由于数据范围小,有一种神奇的做法,我们可以把每个值随机赋值,但是保证相同颜色的和为0,就代表消去了这个颜色,我们只要取寻找合法区间就行,合法区间的寻找只要找相同前缀 ...

  8. 技术漫谈 | 远程访问和控制云端K8S服务器的方法

    对于部署在云端的K8S容器编排系统,可以先通过SSH远程登录到K8S所在主机,然后运行kubectl命令工具来控制K8S服务系统.然而,先SSH登录才能远程访问的二阶段方式,对于使用Linux桌面或者 ...

  9. 【Redis】主从复制

    一.概述 1.redis的复制功能是支持多个数据库之间的数据同步.一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从 ...

  10. 6.final和static

    一.final final修饰类表示该类为最终类,不可被继承. final修饰方法表示该方法为最终方法,不可被重写. final修饰属性表示该属性不可变,不可变有两种含义.当其修饰基本类型变量时表明其 ...