基于移动端的VR 技术及在英语学习的运用
秦宇
摘要:对VR在移动终端的开发进行了研究,基于unity游戏引擎,设计和开发了一款运行在移动终端上的VR应用,把对英语的学习融汇到VR环境中,极大提高了学习兴趣和学习效率。
关键词:VR;英语学习;移动终端
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)13-0191-02
1 背景
虚拟现实(VR)是对真实世界的模拟,VR利用计算机生成一种三维模拟环境,通过多种传感设备使用户“投入”到该环境中,实现用户与该环境直接进行自然交互的技术[1] 。VR正从PC端向移动端进行扩展,在移动端实现VR具有较大的市场价值。研究并设计基于移动设备上的VR应用具有重要的意义。
2 VR原理和应用
VR是多种技术的综合,包括实时三维计算机图形技术,广角(宽视野)立体显示技术,对观察者头、眼和手的跟踪技术,以及触觉/力觉反馈、立体声、网络传输、语音输入输出技术等。
人看周围的世界时,由于两只眼睛的位置不同,得到的图像略有不同,这些图像在脑子里融合起来,就形成了一个关于周围世界的整体景象,这个景象中包括了距离远近的信息。当然,距离信息也可以通过其他方法获得,例如眼睛焦距的远近、物体大小的比较等。在VR系统中,双目立体视觉起了很大作用。用户的两只眼睛看到的不同图像是分别产生的,显示在不同的显示器上。有的系统采用单个显示器,但用户带上特殊的眼镜后,一只眼睛只能看到奇数帧图像,另一只眼睛只能看到偶数帧图像,奇、偶帧之间的不同也就是视差就产生了立体感。
VR有着广泛的应用领域,医学中,可以建立虚拟的人体模型。娱乐方面,英国开发了称为“Virtuality”的VR游戏系统。军事中,模拟训练一直是军事与航天工业中的一个重要课题, 美国国防部高级研究计划局DARPA自20世纪80年代起一直致力于研究称为SIMNET的虚拟战场系统,在室内设计中,大大提高了设计和规划的质量与效率。北京航空航天大学在分布式飞行模拟方面的应用;浙江大学在建筑方面进行虚拟规划。
VR应用于教育是教育技术发展的一个飞跃。它营造了“自主学习”的环境,由传统的“以教促学”的学习方式代之为学习者通过自身与信息环境的相互作用来得到知识、技能的新型学习方式。
到2020年,全球增强现实(AR)与VR市场规模将达到1500亿美元,其中增强现实市场将会达到1200亿美元,而VR市场则为300亿美元[2]。
3 开发原理和过程。
沉浸式VR在英语的学习中也起到了重要的作用。由于在沉浸式VR中,学习者佩戴上了有感应设备的头盔,更加能投入到逼近真实的虚拟环境中,所以更加提升了英语的学习效果。但当前的VR设备中,大部分还是和计算机搭配使用,这样的不足之处是固化了学习者的学习地点,学习者无法灵活的在其它地方进行学习。另外沉浸式的VR设备价格还比较昂贵,学习者很多时候只是在多媒体课室才能进行学习,下课后,就又只有回到普通的学习环境中。为了解决以上缺点,基于unity游戏引擎,在移动终端上设计和开发了VR英语学习软件。Unity 是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品。用 Unity 作为VR开发平台,开发效率高,效果逼真,交互能力强,数据量小[3]。Unity引擎提供了对occulus眼镜的支持,其需要连接计算机,才能运行。Google公司提出的cardboard眼镜,极大的简化了沉浸式VR眼镜,制作方便。国内的暴风影音公司推出的暴风魔镜在价格和使用方便性上进行了折中,推出了暴风魔镜产品,把VR内容放到了移动终端的同时,还提供了方便的调节功能和操作手柄,给体验者提供了更加亲切的感觉。比较了上述几款产品后,选择了基于暴风魔镜的硬件和unity平台来开发此款英语学习软件。魔镜VR开发平台为基于unity引擎开发VR应用提供了开发包。
开发流程如下:
从魔镜开发平台下载开发包mojing.unitypackage。
在unity开发引擎里面导入魔镜VR开发包。每一个VR开发包都对应了相应的unity引擎版本。由于VR开发包里面的函数是根据一定的unity引擎版本编写的,所以如果unity引擎的版本不对,会让这些函数无法执行,导致在unity的编译阶段就会报错。具体每一个VR开发包所对应的unity版本,在VR开发包手册里面能够查到。
VR开发包中主要包含了用于显示的函数,蓝牙手柄控制函数和几个案例以及几个预制体。其中VR服务的函数主要分为以下几类:
1) 陀螺仪头部跟踪函数;
2) 图像抗镜片畸变函数;
3) 魔镜蓝牙手柄适配及交互控制函数,其中主要包含:蓝牙连接检测,蓝牙断开检测,蓝牙设备按键按下响应函数。
预制体主要有第一人称角色控制器和第三人称角色控制器
在第一人称角色控制器中,附加了三个组件:
n Character Controller组件,是unity自带的组件,用来定制角色的参数。
n Mojing1stController 脚本组件,控制第一人称角色漫游,跳跃、惯性、碰撞检测等参数。
n MojingInputManager 脚本组件,接收蓝牙外设输入,并响应。
VR开发和普通游戏开发的区别有以下两点:
1) 普通的游戏画面的输出没有特殊要求,而VR由于要形成立体视觉,所以要模拟人的双眼视觉,因此必须将同一个游戏画面进行适当的分配,形成好似人的左右眼进行观看的左右两个画面,最后利用双目视差的成像原理形成立体视觉。
在unity中,默认的只有一个照相机物体,而且只能呈现一个画面,在VR开发包中,利用图1的游戏物体组合来模拟人的双眼:
其中,mojingmain带有位置组件,用来包含所有摄像机,模拟了人的头部,其子物体mojingvrhead用来控制移动终端显示的开关以及VR功能的开关,VR camera left摄像机用来模拟人的左眼,VR camera right摄像机用来模拟人的右眼,VR camera left相对于头部中心在水平方向向左偏移0.03单位,VR camera right相对于头部中心在水平方向向右偏移0.03单位,左摄像机显示图像到屏幕的左半边,右摄像机显示图像到屏幕的右半边,当把移动终端放置到VR头盔中以后,左眼只能看到左半边显示屏的画面,右眼只能看到右半边显示屏的画面,这样就在人脑中形成了立体视觉。
2) 普通游戏可以用移动终端的触摸屏作为输入设备,在移动VR游戏中,由于为了产生沉浸感,用户带上了VR头盔,无法再使用触摸屏作为输入。作为替代产生了以下的输入设备:
l 基于动作捕捉的 VR 输入设备,如惯性导航和光学捕捉设备。
l 动作感侧VR设备,如kinet,采用光线飞行时间法技术。
l 手套式VR设备。
l 手势识别VR设备。
l 手柄VR设备。
本项目采用了手柄式VR输入设备,魔镜蓝牙手柄。蓝牙手柄配备了一个方向键,确认键,返回键。和蓝牙手柄的通信通过相关的蓝牙控制函数完成。具体通过附加在mojinginputmanager游戏对象上的mojinginputmanager.cs脚本中的onDeviceAttached()等手柄控制函数实现。其中,OnButtonDown(string currentBtn) 函数用来接收无线手柄的输入,MojingKeyCode.KEYCODE_DPAD_UP ,MojingKeyCode.KEYCODE_DPAD _DOWN,
MojingKeyCode.KEYCODE_DPAD_LEF, MojingKeyCode.KEYCODE_DPAD_RIGHT 分别表示了手柄上下左右方向的摇动,MojingKeyCode.KEYCODE_BUTTON_A 代表了手柄的跳跃按键,在软件的开发中,相应的移动和跳跃的逻辑代码放在相应的函数中。
本英语软件设计的总体框架是把学习者置身在一个模拟真实世界的虚拟环境中,软件中的主角经历了从出生,到慢慢长大的过程。在刚刚学会讲话,看到很多新鲜的事物,说出第一个英语单词等学习过程中,学习者可以从最基本的英语单词开始学习,以比较感性的方式进行英语的学习。整个故事分为多集,学习者也可以依据自己的英语水平,选择从相应的故事情节开始学习。
场景中的各种游戏物体,用3dmax,maya等3d建模软件制作而成,导出为带有动画效果的FBX文件,然后导入到unity中。
4 结束语
VR技术在近几年得到了快速的发展,各个国际巨头纷纷投入巨资到VR的开发中。本文对VR在移动端中的开发进行了分析,并且基于移动终端VR,开发了英语学习软件,在学习者的英语学习过程中,起到了较大的作用。
参考文献:
[1] CHRIS DEDE.The evolution of constructivist learning environments: immersion in distributed ,virtual word[J] .Education Tech-nology , 1998, 35(5): 46-52.
[2] 白利倩. 虚拟现实中的真金白银[J]. 理财, 2016(1): 48-49
[3] 曾林森. 基于 Unity3D 的跨平台虚拟驾驶视景仿真研究[D]. 长沙: 中南大学, 2013.