利用unity3D快速开发虚拟现实(VR)教学课件

1.引言

1.1撰写目的

近年来,各种信息技术飞速发展,给教育教学带来了新思路,VR作为一种展示技术,可以帮助老师改变教学方法,优化教学。本文介绍了一种使用unity3D快速开发VR教学课件的方案,适用于一线教育工作者开发虚拟现实相关教育资源时使用。目前市面上有较多的虚拟现实开发资料,但这些资料存在着一些问题,一方面大量的资料都是零散的,不适合于没有软件开发经验的初学者直接学习,另一方面成体系的资料都以讲解虚拟现实游戏的开发方法为主较少有讲解虚拟现实教育资源开发的资料。

新手开发者可以通过本文了解 VR 教育资源的简易开发流程并尝试开发, 本手册中使用的 VR 设备属于分离式设备,分离式设备造价便宜并且便于携带十分适合于教育场景中应用,开发者只需要将开发好的资源打包成手机应用程序安装包就可以发布给学习者使用。但分体式设备也存在交互手段匮乏,显示效果不佳,不是无缝体验等问题。

1.2文档说明

本文中提到的 VR 教育资源特指沉浸式虚拟环境下的教育课件,文中讲到的开发流程也仅适用于该类型资源的开发。开发过程中需要用到一些辅助软件, 可以在网络上自己寻找下载链接。本文是国家级双创项目(编号:201710065036)的研究成果,是本团队成员通力合作的结果,未经允许不得私自转载。文中有部分图片来自网络,未找到完整版权信息,如有侵权,可联系作者删除,谢谢。

1.3参考资料

  • 阿阳. VR 技术的虚拟教学应用研究[D].华东师范大学,2017.1.15.
  • 徐丽芳,王钰,陈铭.国外 VR 教育出版发展现状与趋势[J].武汉大学数字出版研究所,2017.3,12(3):12-13.
  • 罗高飞,王少杰. 基于虚拟现实技术的多媒体教学方法研究[J].当代教育理论与实践,2015,7(9):95-97
  • 王月蓉.浅谈虚拟现实技术在教学中的应用[J].无线互联科技,2013(11):233-234.
  • 饶跃东.基于虚拟现实技术的校园网络教学建设探讨[J]. 科教导刊 ,2012(36):84-85.
  • 刘华益,汪莉,单磊等(2016). 虚拟现实产业发展白皮书 5.0[R].中华人民共和国工业和信息化部.
  • 刘德建,刘晓琳,张琰等.虚拟现实技术教育应用的潜力、进展与挑战[J].开放教育研究,2016,22(4):25-31
  • Heiling,M.(1962).Sensorama simulator[DB/OL].Re-trieved from http://www.mortonheilig.com/.
  • 黄荣怀,郑兰琴,程薇(2012). 虚拟实验及其学习者可信度认知[J].开放教育研究,18(6):9-15
  • Burdea G, Coiffet P. Virtual reality technology, second edition[M]. New York: John Wiley & Sons, 2003:3-4.
  • M.Travassos Valdez,C. Machado Ferreira,F. P. MacielBarbosa. Distance Education Using a Desktop Virtual Reality (VR) System [J]. EAEEIE Annual Conference (EAEEIE),2013(24):145-150.

2.虚拟现实技术简介

2.1 虚拟现实是什么

虚拟现实技术另称为“计算机模拟显示技术”或“沉浸式多媒体”,涉及到计 算机图形学,传感器技术,多媒体技术,人机接口技术等多领域知识的综合。[5] 虚拟现实技术可以构造真实的三维立体空间,并利用一些辅助设备,使参与者获 得听觉、视觉、触觉等多种感觉的沉浸式体验。用户借用必要的设备还可以与这 个三维仿真虚拟环境进行全方位交互,从而产生“虚拟”的现实体验。实际上, 具有高度沉浸感的虚拟现实技术的出现可以追溯到二十世纪六十年代娱乐业中 的传感影院,其目的是吸引观众的注意。

2016 年虽然被称作虚拟现实的“元年”,这并不意味着虚拟现实是一门新兴 的研究领域,我国对于虚拟现实技术的研究自从上世纪 90 年代就开始了。近年 来,虚拟现实以及增强现实产业又呈现爆发式增长,工业与信息化部 2016 年公 布的《虚拟现实产业白皮书》中展示,2015 年中的的虚拟现实行业规模接近 15.4 亿元,到 2020 年预计可超过 550 亿元。大量资本的涌入,使虚拟现实技术在各 行各业都被大量应用,其中军事训练,工业建筑,医疗卫生,游戏娱乐等行业的 应用较为成熟,这也为虚拟现实应用于教育事业提供了宝贵的经验。

虚拟现实技术为传统的中小学教育出版打开了一扇大门,其与教育游戏的结 合有可能改变传统的教育方式-通过提供虚拟现实内容体验层,让中小学学生更 快、更好地吸收文化知识。近几年我们可以看到 VR 虚拟现实技术不断的冲击着 教育领域这块土壤,把经过时间考证而证明优秀的技术与现有的传统教育手段相 结合,会为教育领域带来更多的可能性。

在这个信息技术越来越发达的时代,传统的教育模式已经不能满足社会对人 才培养的需求。国家一直非常重视教育信息化的建设,发布一系列政策推动教育信息化的完善。在宏观政策上,国家对教育信息化的支持是 VR 与教育相结合前 景光明的有力保证。虚拟现实和在教学中的应用潜力巨大、前景广阔,主要体现 在运用虚拟现实具有激发学习动机、创设学习情境、增强学习体验、感受心理沉浸、跨越时空界限、动感交互穿越和跨界知识融合等多方面的优势。虚拟现实的应用,能够为教育工作者提供全新的教学工具,同时能激发学生学习新知识的兴趣,让学生在动手体验中迸发出创新的火花。符合立足于学生的发展观,通过学生利用 VR 技术对知识的自我探索,在掌握基础知识的同时,培养了学生的能力,使对现实世界保持充分的好奇心,有助于促进学生良好学习态度的养成。

2.2虚拟现实技术的表现形式

  1. 利用计算机屏幕画面展示的虚拟现实技术(非浸入式)


    计算机屏幕显示

    单纯利用计算机屏幕展示三维虚拟环境的虚拟现实技术应用最为广泛,使用代价也最为低廉,产品制作也较为简单。典型的应用是对目标、场景、环境等的漫游时虚拟仿真实训,例如虚拟演播室等。M.Travassos Valdez 等人将桌面式虚拟现实技术用在远程教育当中,为学生提供了足够的学习空间,并使他们能更好的与设备进行交互

2.偏振式 3D 立体虚拟现实技术(半浸入式)


偏光式显示原理

根据光线的“振动方向”原理来组织原始图像,并且利用偏振显示器,向体验者展示两幅偏振方向有差异的图像,图像经过偏振眼镜后会在体验者的大脑中合成为立体图像,3D 电影就是其典型应用,现在大部分 AR(增强现实)技术也利用了该原理。

3.使用可穿戴设备的虚拟现实技术(浸入式)


可穿戴设备

使用可穿戴头盔加上辅助性控制设备,可以真正达到真实的“沉浸性”效果,体验者的代入感,现实感也会更强,利用辅助性控制设备可以实现全新的交互效果,代替传统电脑的鼠标键盘交互效果。这种技术也是本文的方案中将要使用的。

2.3虚拟现实技术的主要教学应用情境

  1. 用于知识本体的学习
    教师可利用 VR 的信息呈现功能,将一些难以利用传统教学工具表现的自然
    现象、运动现象等通过 VR 技术转化为肉眼可见的动态变化过程展示给学习者。 例如学习外国建筑文化时无法带领学习者真正出国观察,则可利用 VR 将外国建 筑建模后给予学习者观察,使学习者产生初步的直观体验。

  2. 实验环境搭建
    VR 特有的沉浸与交互特性可以将搭建虚拟的实验环境,以此作为真实实验 的预备或某些危险实验的模拟。例如《虚拟驾驶系统》可以使学生在学习初期不 必要在真实车辆上操作,也可利用系统模拟驾驶过程。此外,还可利用 VR 对某 些危险实验进行预演,例如广西大学的《无机化学虚拟实验实》允许学生在进行 真实实验前首先利用虚拟实验室进行一次实验,这样可使学生更加熟悉实验流程, 减少实验事故的发生。

  3. 虚拟环境的构造
    该种形式通常用于构造虚拟的环境,常用于远程教育网络教育或减少环境构造的成本。例如使用 VR 技术搭建虚拟教室,可以使地理位置分离的师生同时登录虚拟教室,进行实时教学,或是搭建虚拟演播室减少实际演播室的使用成本。Bertram 等对警务人员在虚拟显示环境中和真实情境相比较,观察到警务人员在虚拟模拟场景中习得的知识与技能在真实场景应用中的迁移情况与传统的现场培训结果是一样的,充分显示了构造实验环境的作用。

3.课件的教学设计

3.1传统多媒体教育资源与 VR 教育资源比较

多媒体课件与VR课件比较

VR 课件与传统课件相比开发难度大,耗费时间长,修改困难。但之所以大量的教育工作者还投入大量的时间与精力在虚拟现实教育应用的研究,是因为其特有的技术特性,即沉浸性,交互性以及环境的创设能力。这些特性给教育变革带来了新的机会,也鼓舞着人们不断去研究它,优化它。

3.2教学设计流程

教学设计流程

在开发VR教育课件前首先需要对其中的内容进行教学设计,教学设计的任务是完成图3-1设计流程图中的前两个部分,即前端分析和学习设计。前端分析中需要确定教育资源所承载的学习内容,接着确定具体的学习目标,同时还需要对使用这一课件的潜在学生的特点进行调查,了解他们的情况,包括预备知识的掌握情况及认知能力的发展程度。前端分析部分VR课件的教学设计和传统课程的教学设计很类似。而学习设计模块是对VR课件进行教学设计时需要重点关注的。内容设计部分主要是需要将学习内容进行合理的分类并且设计相应的学习步骤,明确学生在使用课件每一部分时应达成的目标。学习情景设计指的是为不同类型的学习内容设计不同的学习情境以帮助学习者对知识内容进行建构,例如学习医学就需要设计医院或具体手术室的情境,学习机械制造则需要设计相应车间或工厂的情境。学习评价也需要提前设计,通常来说需要设置形成性评价和总结性评价两种,形成性评价是在使用VR课件的过程中记录学习者的学习情况,活动完成情况等数据来进行评价,总结性评价是在学习结束后以测试的方式来对学习者进行评价。接下来课件的界面和交互也需要根据教学设计的情况来进行考虑和设计,要使用合适的界面和交互方式来表现教学设计的结果。

3.3VR教育资源中的界面和交互设计策略

3D虚拟环境下的学习界面需要遵循人机交互的界面设计相关原则,人机交互界面经历了几个阶段从最早的CLI命令行界面到现在通用的GUI图形用户界面以及最新也是目前效果最好的NUI自然用户界面。
图形交互界面不同的使用情况下有各异的呈现方式,就VR而言也不仅仅只存在一种交互方式,理论上来说VR可以提供比GUI更加丰富自然地交互形式,但受限于硬件设备的功能原因,本文开发方案中只会采用较为普遍的交互形式,现在介绍相关VR人机交互形式。

1)动作捕捉式交互
该交互形式可以通过设备传感器以及相应的可穿戴设备以及协同算法,计算出使用者动作改变在虚拟情境中产生中的影响,例如使用者在现实世界进行物理位移,则虚拟环境中用户视角也会产生成比例位移。。但是这种交互形式,用户需要耗费大量的时间进行初始校准,不便于使用,辅助设备的价格也过高。总体来说该交互技术使用不广泛,技术难度也较高,所以本课件不采用。

2)触觉反馈式交互
触觉反馈式交互通过辅助设备例如手柄,头盔等提供点击式触感和振动式触感,技术原理不复杂,应用成本也较低,大多数VR厂商都提供该交互功能的编程借口,其反馈效果也适用于大多数需要反馈的情境,例如在虚拟环境中进行菜单选项选择时产生震动感。本课件采用此交互作为主要交互方式。

3)手势跟踪交互
目前行业内成熟的手势跟踪交互解决方案包括两种,第一种是使用光学的手势跟踪传感器例如leapmotion。这种方式的好处是不需要使用者穿戴复杂的跟踪设备,利用一体式VR头盔的光学追踪功能记录手部操作,用户可以像真实世界一样进行交互,不足在于光学设备的稳定性较差,有识别盲区,而且实验证明没有触感反馈的交互用户易于疲劳。
第二种是使用实体数据追踪手套,优点在于没有视场限制提供触感反馈以及较为精准的手势追踪,该方式缺点也很明显,设备沉重,校准复杂。未来的发展趋势是两种方案的融合即光学传感器和物理传感器的结合使用,生产出更为轻便、灵活准确的设备。因为该交互形式对于硬件要求过高,所以本课件也不使用该种交互。

4)方向追踪交互
该交互形式是让使用者可以720度全方位控制视角的方向,这一特性也是VR设备沉浸性最好的体现。也是VR交互功能的核心所在。在方向追踪的情况下,还可以提供定时瞄点的功能,定时瞄点是操作者穿戴设备后视角有一个圆形瞄点,也被成为注视点,该点固定在用户视角的中心,用户可以通过一定时间的瞄点实现交互,例如在VR课件中提供跳转链接,学习者可以通过3到5秒对该链接的凝视实现交互,就像计算机操作中鼠标的单击操作。本课件主要使用此交互方式。

5)语音交互
语音可以作为学习者操作的提示音,而VR既然作为真实世界的虚拟技术,自然世界中本来就具有大量的音频信息所以在VR课件中也应该提供语音交互。真正意义上的语音交互要求系统不仅能够播放提前设计好的声音,还要能够识别用户的语音同时做出及时的响应,例如Siri。但由于这其中用到了语音识别技术、人工智能算法等技术,技术难度过大。本课件不采用双向的语音交互,只采用单向的语音提示功能。

6)真实场景碰撞
作为现实的虚拟,场景构建要尽量真实,同时场景中的物体也要符合现实的逻辑,所以本课件把系统内出现的所有物体都设计为“刚性”即和真实物体一样会产生碰撞,挤压。而不会产生重叠,降低真实性。

4.课件开发流程

4.1 课件开发整体流程

图4-1 开发流程

VR课件开发流程如上图所示。在进行VR课件开发时,首先是对其教学内容和教学策略加以考虑和设计即上一章所讲的内容,在确定主要的教学内容设计后,开发者再行确认应该设计何种交互,如何设置课件结构来表现教学内容。设计阶段完成后,分别选择不同软件编辑3D模型,2D图片以及音视频,最后整体导入unity平台编辑,添加脚本,所有工作完成后导出原型进行测试,最后发布。

在教学设计完成后,按教学设计的单元,建立对应的场景,使用建模软件构造好相应的环境和课件对象后导入场景中,分别对其进行交互设计编写脚本,最后搜集录制所需的音频文件,将其置入课件中,则课件的开发基本完成。

4.2 前期素材准备与编辑

在进行开发前需要准备一些相应素材,通常必要素材的是3D模型,因为VR课件展示的真实情境所以需要相应的模型,模型可以自己制备也可以下载一些开源的模型然后进行编辑。可用的编辑软件有很多,这里推荐cinema4D软件,也可以选择Maya或3Dmax之类的其他工具,编辑完成之后导出FBX后缀文件即可。
除了最重要的3D模型外,也可以在VR课件中加入图片、音频、视频等相关素材,这些素材也需要使用相应的软件进行制作和加工,例如图片可以使用PS或AI软件,音频可以使用Au,视频选用final cut pro 或premier等软件。

4.3 初始化设置

4.3.1 工程的创建及编辑器简介

图4-2 unity编辑器

打开unity开发平台后,创建一个工程文件(可选择3D或2D模式)后出现初始界面如图4-2所示,其中主要包括以下几个本次开发工作常用到的视图:

  • 场景试图(scence):如图4-3,用于场景的编辑同时操作要使用的对象,可以切换场景渲染模式,3D\2D视角,切换灯光开关,切换声音开关,切换天空盒、雾效、光晕的开关。


    图4-3 场景试图
  • 项目视图(project):存放了整个项目工程的资源汇总和管理,包括脚本、材质、字体、贴图、模型等。


    图4-4 项目视图
  • 层级视图(Hierarchy):用于显示当前场景中所有操作对象的层级关系,并且可以创建新的新的对象。


    图4-5 层级视图

    图4-6 Google SDK

4.3.2 初始环境配置

由于本次开发最后产品是在谷歌的VR头盔式穿戴设备上发布,并且以Android平台作为载体,所以需要在unity开发环境中导入Google VR SDK以及Android SDK。
1)导入Google SDK
谷歌的软件开发工具包可以直接在Google VR的官网上下载,直接导入即可。
在菜单栏选择:Assets——Import Package——Custom Package。选择GoogleVRForUnity_1.120.0.unitypackage(谷歌VR开发SDK)导入。如图4-6。
2)搭载Android SDK
需要:安装JDK——安装Eclipes——下载并安装Android SDK——在unity中发布Android平台。
3)导入预先使用cinema 4D构建好的人体器官模型
用cinema 4D软件建模完成后生成FBX后缀文件,然后直接在unity的项目试图中拖入即可导入成功。

4.4 创建场景

4.4.1通过脚本创建VR场景

需要先建立一个场景命名为“主界面”,选择Main camera并将脚本stereocontroller.cs附加到Main Camera上,在层次结构面板中选择摄像头,然后执行主菜单命令Component——Cardboard——Update Stereo Cameras。此命令也可以在摄像头组件的上下文菜单中找到:在Inspector面板中找到stereocontroller脚本,该脚本具有Update Cameras按钮,点击可将立体摄像头与主摄像头同步。

4.4.2通过预制件创建VR场景

除了通过脚本创建场景还可以通过SDK中提供的预制件添加VR,采用这种做法,可以节省工作时间,同时基本摄像机,灯光等对象已经是预设好的,只要删除预制件中的场景,添加自己的场景就可以进行基本的开发了。
首先从项目面板中打开assets——GoogleVR——Demos——scenes。然后选择一个预设的场景直接拖入Hierarchy面板即可,如图4-7所示


图4-7 预制件

本案例开发采用第二种场景创建方式,直接导入SDK的GVRDemo然后删除其原有的cuberoom组件,设置本课件主菜单场景所需要的自然环境情境命名为natural。同时导入本场景所需要的静态物体,调整距离。最后主场景如图4-8所示。


图4-8 主场景界面

4.5 GUI设置

4.5.1 VR场景中的焦点设置

在图4-9所在目录下,找到Gvrcontroller放置在stereocontroller脚本所依赖的对象下面,作为stereocontroller所依赖游戏对象的子物体,选择层级试图中的payer组件中GvrControllerPointer的属性,将焦点打开,这样设置后运行时,在屏幕中心位置会有一个白色焦点。


图4-9

4.5.2 GUI事件触发

  1. 创建button按钮,通过gameobject——UI——buttom创建一个按钮。
  2. 选择Canvans,将render mode设置为wordsapce,并调整按钮的位置。
  3. 点击play后将会看到镜头中的UI按钮。
  4. 设置button高亮并设置按下颜色,以便较为清晰地观察焦距和点击效果。
  5. 同时给场景中的eventsystem对象添加gazeinputmodule脚本并删除其上的standard alone mudule组件,这时候焦点对准按钮时会产生不一样的变化。如图4-10.


    图4-10

4.6凝视触发操作的实现

凝视触发是对课件中物体进行交互的基本方法,可以通过视点的变化,使对象产生交互。下面以对象cube为例设置凝视触发。
1)用Photoshop制作一个圆形的进度条导入unity,将其命名为gaze。点击该图标,在inspector面板下找到Texture Type属性,将其设置为Sprite。同时将要进行凝视触发的对象名设置为cube。
2)创建一个image,在unity中选择GameObject——UI——image就可以创建一个image。在Inspector面板中的Image组件中找到source image属性,将上一步中处理的图片gaze拖动到该属性对对话框上,将Image Type设置为filled,调整为合适的大小。
3)选择Canvas,在inspector面板中删除canvans scaler以及Graphic Raycaster两个组件对象,将Canvas组建的渲染模式调为World Space。在层级试图中将canvas放置在Camera上,使其成为Camera的子对象。
4)调整Canvas对象与Camera和要触发对象cube的相对位置,使图标gaze出现在场景中并处于camera 和cube之间。
5)在层级面板中选择EventSystem对象,在其Inspector面板中移除标准输入组件,在asset试图下选择InputModule拖到EventSystem对象上。
6)编写脚本GazeEventObject //该脚本将搭载到被凝视物体上

using UnityEngine;
using system.collections;
using UnityEngine.EventSystems:
//焦点进入事件
//焦点退出事件
public class GazeEventObject : MonoBehaviour, IPointerEnteerHandler , IpointerExitHandler
{
public delegate void CazeEnter( );
public static GazeEnter OnGazeEnter;
public delegate void GazeExit( );
public static GazeExit OnGazeExit;
public void OnPointerEnter (PointerEventData eventData)
{
    if (OnGzeEnter!=null) { OnGazeEnter( ); }
}
public void OnPointerExit(PointerEventData eventData)
{
    if(OnGazeExit!=null){ OnGazeExit( ); }
}
}

7)编写脚本CubeEvent

using UnityEngine;
using system.collections;
{   
    void start( )
{ GazeObject.OnwaitEvent+=OnWaitOver; }
void OnwaitOver( )
{ transform.Rotate(0,60,0); }
}

8)将脚本GazeEventObject和脚本CubeEvent保存后挂载到凝视对象cube上。
9)编写脚本GazeObject

using UnityEngine;
using system.collections;
using UnityEngine.UI;

public class GazeObject : MonaBehaviour
{
    public delegate void OnWaitTrigger( );
puclic static OnWaitTrigger OnWaitEvent;

public float WaitTime=5;
private bool start=false;
private float timeGo=0;
void Start()
{
    GzenEventObject.OnGazeEventEnter += OnGazeEventEnter;
    GzenEventObject.OnGazeEventExit += OnGazeEventExit;
start=false;
timeGo=0;
}
void Update()
{
    if(start)
{
timeGo+=Time.deltaTime;
    img.fillAmount=1-(timeGO/WaitTime);
    if(timeGo>WaitTime)
    {
        start=false;
        if(OnWaitEvent!=null)
{
OnWaitEvent!=null)
{
    OnWaitEvent();
    timeGo=0;
}
}
}
}
void OnGazeEventEnter
{ start=true; }
void OnGzeEventExit( )
{
    Image img=GetComponent( );
img.fillAmount=1;
start= false;
}
}

10)将脚本GazeObject挂载到Camera中Canvas的image对象上,等待时间设置为1。
11)将两个对象设置完成,三个脚本挂载完成后,点击play运行,当视点凝视cube 1s后,对象物体会进行旋转。通过编写不同的脚本,对象物体也可以进行不同的操作。

4.7 音视频播放的实现

VR课件展示音视频信息就需要用到本节所述技术,通过在VR课件中插入音频和视频文件可以实现通过多种渠道传递信息。

4.7.1视频的播放

1)导入插件EasyMovieTexture、预先在三维建模软件中制作好法线向内的球和全景图片。为导入的球体制作材质球,命名为sphere,将全景图片拖到Inspector面板中Albedo前面的方框中。
2)将导入的球体拖到层级面板,把材质球sphere赋给导入的物体,在Inspector面板中将sphere下的属性设置为Unlit-Texture。
3)在Assets面板中将全景视屏拖动到StreamingAssets文件中。
4)在Assets面板中按照路径EasyMovieTexture-scripts找到脚本MediaPlayerCtrl并将其挂载到导入的球体上,在Inspector面板中找到MediaPlayerCtrl组件,在strfilename属性中手动填如“视频名称.mp4”。
5)再创建一个退出脚本

using UnityEngine;
using system.collections;
public class quit:MonoBehaviour
{
    void Update()
    {
    if(Input.GetKeyDown(KeyCode.Escape)){ Application.Quit( ); }
}
}

4.7.2音频文件的播放

1)在场景中如果要添加画外音,需要选中要添加的物体。以旁白添加为例,选中player下的main camera。
2)点击Inspector面板中的add component,选择预制的脚本Audio Source。如图4-11


图4-11

3)在audioclip选项中选择要播放的音频文件。
4)点击play运行后即可播放相应的声音。

5.教育资源的测试与发布

5.1 课件功能评测

课件的测试采用以白盒测试为主,黑盒测试为辅的软件工程的测试方法。利用白盒测试对课件各个场景分别进行测试,包括如下几个方面:
1)场景中对象相对位置、比例尺是否正确。
2)运行时画面帧率是否达到30hz/s,是否出现卡顿。
3)视点位置是否正确,能否3D全景浏览
4)设计的交互能否实现,视点凝视时是否反应。
5)课件配置音视频能否正常播放。
使用黑盒测试的方法对课件进行整体测试,封装各个场景逻辑模块,确保真实环境下正常运行,不会产生Bug。

5.2 课件发布详解

5.2.1 cardboard简介

cardboard是由Google法国部门的两位工程师大卫·科兹和达米安·亨利最早提出的,这是一款廉价3D眼镜,通过可以将智能手机编程一个虚拟现实的原型设备。cardboard实际上是一个再生纸盒,如图5-1。


图5-1 cardboard眼镜

Cardboard纸盒内包括了磁石、纸板、橡皮筋、魔力贴、双凸透镜以及NFC贴等部件。按照使用说明,只需要花费很少的时间就可以组装出一个可以放入智能手机的纸盒。盒子凸透镜的正前方预留了放置手机的空间,而盒子正后方预留的半圆形凹槽可以供使用者贴合观看。Cardboard只是一副简单的3D眼镜,但这个眼镜加上智能手机就可以组成一个虚拟现实(VR)设备。

Cardboard与一部手机结合在一起就可以产生虚拟现实效果,眼镜片通过透镜加屏幕的原理,将虚像呈现在人的明视距离处实现了沉浸式的虚拟显示感,原理图如屏幕即为手机屏幕,理论上来说手机的分辨率与像素目睹越大显示效果越好。由于该设备价格便宜,一套完整的cardboard设备只需要4到5美金。减少了使用者的本,可以在实际教学中大规模的推广应用。


图5-2 成像原理

5.2.2 课件发布具体操作

课件制作完成后需要发布为一个apk安装包文件,以便在手机上安装使用。首先在菜单栏中选择file——buildsetting,如图5-3。


图5-3

发布设置页面最上面是需要发布的场景有哪些,本次发布共有四个场景,左下角是发布的平台,本次选择的是Android平台。然后点击player settingS按钮打开详细设置平台。


图5-4

如图5-4红框内选项,发布的版本需要选择Android4.4及以上版本,其它设置如图5-4。注意,发布前要先导入Android SDK,否则会发布失败。

你可能感兴趣的:(利用unity3D快速开发虚拟现实(VR)教学课件)