1、基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究摘要基于 unity 3D 的垃圾处理场的虚拟漫游与人机交互研究是一个重要课题,它将图像图形技术、计算机技术与虚拟现实技术等领域集合在了一起。本文主要根据现有的垃圾处理厂场景图片进行了相应的 3D 场景建模,根据需要我们在导入unity3D 后对模型进行了相应的调整编辑。由于我们对于垃圾处理场漫游功能的要求,本文使用了 C#编程语言对我们的模型对象进行了脚本编写,使用 charactercontroller 的功能来实现我们第一人称漫游的交互设计。另外,介于我们希望本文的研究可以使用
2、到垃圾处理场的推广以及环保宣传方面,我们在 3D 场景搭建完成后,我们对于场景中的建筑都进行了相应的 UI 设计,在我们漫游的过程中走到处理厂的一些关键的设备时,将用户可以选择查看相应的设备介绍,这样用户可以在身临其境的同时详细的了解我们垃圾处理场各部分的功能,这一部分的脚本编写也是由 C#来完成交互设计的。本设计另外一个创新点在于,由于我们是设计完成垃圾处理厂的交互体验,考虑到环保宣传的角度,我们利用 unity 的天空盒子功能设计了一个变换天空颜色的交互体验,这样用户可以切身体会到垃圾处理场污染治理前后的天空变化。关键词:Unity,三维建模,垃圾处理场,C#脚本编写,虚拟漫游基于 uni
3、ty3D 的垃圾处理场虚拟漫游与人机交互研究RESEARCH ON VIRTUAL ROAMING AND HUMAN-COMPUTER INTERACTION OF WASTE DUMP BASED ON UNITY3DAbstractThe research of virtual roaming and humanoid interaction in the garbage disposal field based on unity3D is a significant project, it brings the fields of image graphics technology,
4、computer technology and virtual reality technology together. This article mainly carried out the corresponding 3D scene modeling based on the existing garbage disposal plant scene pictures, according to the need to import unity3D after the model has been adjusted accordingly. Because of our requirem
5、ents for the roaming function of the garbage disposal site, this article uses the C # programming language to script our model object, and use the function of the character controller to realize the interactive design of our first person roaming.In addition, we hope that the study of this article ca
6、n be used to promote the garbage disposal site and environmental publicity, after we completed the building of 3D model, we design some UIs for the buildings in the scene. In the process of our roaming to some of the key devices, the user can choose to view the corresponding equipment introduction,
7、so that users can at the same time know about the function of our plants devices when they are roaming in the waste dump, this part of the script writing is written by C # to complete the interactive design.The another innovation of our design is that, because we are designed to get an interactive e
8、xperience of waste dump, taking into account the perspective of environmental advocacy, we use the unity of the sky box function which is designed to基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究complete an interactive experience of transforming the sky color, so that users can experience the changes of the sky befor
9、e and after pollution control.Key words: VR, Unity, 3D modeling, C-sharp scripting, Virtual Tour基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究目 录1 绪论 11.1 引言 .11.2 本设计的目的与意义 . 11.3 国内外发展概况 . 21.3.1 国外发展概况 21.3.2 国内发展概况 21.4 本设计的主要内容 . 32 Unity3D 系统开发流程分析与设计 52.1 开发引擎的选择 . 52.2 系统策划与准备 . 92.3 框架结构设计 . 102.4 建模工具分析与选择
10、. 122.5 两大插件 NGUI 和 iTween 122.6 Unity 场景漫游技术 . 132.7 本章小结 . 133 虚拟现实系统设计 153.1 产品开发流程 . 153.2 三维真实场景的建模 . 163.3 系统交互设计方案 . 183.4 本章小结 . 184 垃圾场漫游功能的实现 194.1 漫游功能的实现 . 194.2 虚拟场景的建立 . 254.3 本章小结 . 305 结论与展望 31基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究5.1 结论 .315.2 环保、工程与经济应用讨论 .315.3 展望 .31参考文献 33致 谢 37基于 unity3D
11、 的垃圾处理场虚拟漫游与人机交互研究1 绪论1.1 引言随着工业 4.0 时代的到来,以德国为主体的工业 4.0 在汉诺威工业博览上,通过一些展出方案显示,将新材料,软件硬件,虚拟与现实,大小企业,国内外工业标准融合发展,是工业 4.0 的发展主线 1 ,通过各项工业技术的结合向人们展现未来智能生活生产的蓝图。其中,以“人为中心“的虚拟现实技术是其中一大发展趋势 2。虚拟现实的英文名称为 Virtual Reality, 简称 VR。virtual 意思为虚拟的,意味着用户感受到的一切都是虚幻的而并非真实接触的,是通过计算机技术构建而成的;reality 意为现实,是我们日常生产生活中存在的真
12、实的事务,两词结合称为虚拟现实,也因此我们可以将虚拟现实技术大概理解为,使用者能够通过引擎工具创造的事物获取现实感受。我们可将其定义为:采用以 IT 技术为重点的现代化方式和相应设备仿真虚拟世界 3。1.2 本设计的目的与意义虚拟现实技术在很多方面有所应用,它可以在学校做虚拟实验室,战事上模仿虚拟斗争、医学上仿真虚拟手术、学校课程虚拟智力活动、工业上制造仿真等等 4 。工业仿真是其应用的一大方面。工业仿真就是将实体工业转化为虚拟的场景中,在虚拟的场景中实现实体工业的每一项工作和流程,人们用第一人称实现在其中漫游实现人机交互 5 。由于本文是基于 unity3D 的垃圾处理厂的人机交互设计,我们
13、以垃圾处理场的工业仿真为例说明虚拟现实工业仿真的意义。(1)展会及市场推广。首先,垃圾处理场作为每个城市甚至乡镇所必需的一个工厂,对于其建造数量的要求会非常的高。在向政府或者公司展示垃圾处理1基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究厂的构造,无疑利用虚拟漫游是胜过于其他形式的介绍的 6 。让企业沉浸在垃圾场的构造中去考察垃圾场建成后的效果和运行,简单直观,简化了推广的过程,并收获很好的效果。(2)垃圾厂的监控管理。垃圾处理厂难免会有很大的味道,在企业日常对垃圾处理厂的管理和控制上,通过虚拟漫游,工作人员可以非常快捷的指出工厂运作中出现的问题 7。(3)培训教学的使用。垃圾处理场
14、的发展将会日益智能化,并且考虑到垃圾处理场的应用广泛,对于垃圾处理场工人的培训也是亟待解决的问题。我们通过虚拟漫游系统,可以更加高效的对员工进行培训教学,并且还没有健康的威胁。本文只是对漫游垃圾场作一个指引作用,作为展示作用,以此来显示垃圾处理厂的功能配置,同时也可以作为教育意义去呼吁人们关注环保,这里采用的就是一种新的宣传方式。1.3 国内外发展概况1.3.1 国外发展概况最早的开发起源于发达的国家,从 1990 年开始,很多发达国家就开始大力发展游戏引擎。许多的欧美国家都在致力于发展虚拟现实技术的相关应用,英国德国更是为此设立了许多相关的会议和展会,这使得这些国家对于这方面的研究一直保持着
15、更新。另外,在亚洲,日韩和新加坡等国家也都在虚拟游戏开发方面抢占了大量的市场,很多芯片厂商也对相关头戴式设备进行相关升级。1.3.2 国内发展概况在相关文献中描述了在一些工地的现场,一些工人在漫游的角度来看遇到的一些问题的解决办法,这对游戏中用户体验来说是很大进步的研究。各种文献对基于计算机的 Kinect2 体感游戏也有相关的研究和讨论,这也是在虚拟体验上的很好的研究方向 8 。很多文献中也描述了一些基于 unity3D 构造的一些野外生存2基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究环境的一些事件,都有借鉴意义。我国对于三维游戏的发展还比较浅,发展时间较短,对于一些三维软件的应
16、用还未达到熟能生巧的地步,市场占有率非常小,但是虚拟游戏在国内的出现频率越来越高,也有越来越多的人开始从事相关的工作 9 ,许多的高校也设立了相关的专业,一些 unity 开发工程师也有非常高的年薪,这些表明我们已经开始向发达国家靠拢,大大的提高了这一方面的关注度。中国的相关研究开始于 20 世纪 90 年代,浙大计算机辅助设计和图形学国家重点实验室主要研究虚拟环境的高效构建和呈现、自然人机交互技术、增强现实技术、虚拟现实应用等。北京航空航天大虚拟现实技术主要研究一些理论方面的知识和增强现实方面的平台应用开发。它们开发了一批软件系统,如模拟培训系统、奥运会开幕式创新真实演示场景、数字展览馆等
17、10 。由于本课题是基于 unity3D 实现,unity3D 作为实现这个功能的引擎工具,是当下使用较多的一个三维场景设计引擎。相应的 VR 游戏开发引擎还有 Virtools软件、Converse3D 引擎、VRP 等等。但是由于 unity3D 的综合性开发功能多平台发布,上手快等特点目前国内主要使用该引擎来实现虚拟现实的场景搭建,各种体感游戏、校园工厂漫游系统,相应的开发都有了较为成熟的发展 11。1.4 本设计的主要内容本文研究基于 Unity3D 软件平台的使用方法,对相关的 game 设计的主要技能进行了讨论,研究和开发了电脑端的虚拟漫游。分析了垃圾处理场漫游系统的一些功能意义及
18、要求,以及软件选择,三维场景搭建的设计和交互脚本的编写。第一章为绪论,介绍了本文研究垃圾处理场虚拟漫游的缘由、以及 VR 国内外研究现状以及论文的架构。第二章主要介绍了 Unity 3D 系统的研发的相关步骤,重点介绍了下 Unity3D设计引擎的基本操作介绍,包括它的框架、优缺点和各类插件,其中包括 NGUI、iTween 等多款插件。3基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究第三章对垃圾处理场如何实现漫游功能,列出了系统的研发流程,并且实现了垃圾场搭建,系统交互逻辑的编写方案。第四章对垃圾漫游场功能的实现,相关界面的搭建与实现,虚拟场景的建立做了相关的研究。第五章是概括本文
19、对垃圾处理场的研究探讨,并且分析了本文设计在环保工程经济发展方面的用处和意义,并解析了设计的不足和提升的空间巨大。4基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究2 Unity3D 系统开发流程分析与设计电脑是游戏漫游研发中不能缺少工具,而且游戏的创造更需要一些三维软件的协助,在本章将会介绍协助研发的各种应用,一个是用于场景建模的 3DsMax,还有插件 NGUI 和 iTween,还有一个是我们主要的引擎软件 Unity3D,下面我们简单的解析一下这些软件应用,先来说一下 Unity 。2.1 开发引擎的选择Unity 3D 软件是一个全球都广泛应用的综合游戏开发软件,同时,可以制
20、作出数字交互产品、虚拟漫游和产品数字展示。它是 3D 研发的领导者,目前我们可以下载的版本都支持我们现在的微软平台下的使用,并且它们的互通性很高,在苹果系统中也可以使用 unity。作为一个综合的三维设计引擎,它被用于设计三维广告,动漫等互动内容,最近几年却突然发展迅速,目前中国一流的相关开发公司都首选 unity 作为开发的工具,其具有文档齐全,平台互通性高,编程简便,费用低廉,BBS 热闹,可搭配使用各种丰富的配件等突出特征 12 。相对于其他游戏研发方式,它所支持的模型文件的类型也非常的多。其次,其引擎具有功能强大的控制系统:(1)渲染系统:全屏后处理,批处理,遮挡剔除;(2)灯光系统:
21、延后光照处理,当下暗影,体积光,光照贴图,:(3)瑜入控制:手柄,鼠标键盘,手机触摸输入;(4)地形系统:刷地形,刷纹理,树,河流:(5)物理系统:柱体,物理模型之汽车,软物体:(6)粒子特效:烟、雾、瀑布、火、雨、水:(7)音响系统:MP3,WAV:(8)脚本系统:Java Script,Boo(Python) ,C#:(9)寻路系统:(10)网路支持:Real time Networking,Web Browser,Backend Connectivity;( 11)性能分析系统5基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究同时编辑器支持分类如下:(1)材料集成及其组合(游戏对
22、象管理)(2)场景创建:快速创建(3)资源管道(工具建模):快速迭代(模型和纹理图像)(4)资源商店:提供免费资源,同时也可以有偿共享资源(5)资源管理服务器(6)编辑器的扩展(7)性能分析我们使用的 unity3D 是 unity5 版本,unity3D 的游戏组织结构是使用资源(Asset)生成游戏对象(GameObject ),游戏对象组成游戏场景(Scene),各种游戏场景构成了游戏工程(Game Project) 13 。作为一个简便操作方便的游戏开发引擎,unity 的菜单界面也容易学习,其中菜单有如下几种:(1)动画面板:渲染其中出现的各种场景。我们无法在这里编辑物体,但可以预览
23、编辑后的整个动态结果。我们可以调整摄像头的参数来调整看的角度。图 2-1 Game 动画界面6基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究(2)层次清单栏:展示在面板中所有的物体对象。图 2-2 Hierarchy 界面(3)场景面板:场景面板为 Unity 3D 的操作的领域,设计时,将我们需要的所有的素材和渲染要求放入其中,最后形成渲染和动画效果。图 2-3 Scene 场景界面7基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究(4)对象属性栏:显示出所有 project 对象的本质属性,包括对象 xyz值、缩放程度、脚本的变量和对象等等。图 2-4 Inspector
24、 界面 图 2-5 项目文件界面(5)菜单栏:菜单选项: File、Component、Edit、Terrain、Assets、Help。图 2-6 菜单栏界面(6)项目文件栏:所有的资源、文件夹都可以在这个区域找到。包括物体、字体大小,project 的各个场面文件等。(7)场景调整 T 具:改变编辑过程中的物体视图、位置、通过移动旋转缩放等等操作来实现所见即所得的效果。图 2-7 场景调整工具8基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究2.2 系统策划与准备现在,各种立体感的游戏已经渗透进入人们的日常社交,工作和生活。各种题材,各种形式,以及基于 pad、手机、电脑端等不同操
25、作方式的应用成批进入眼帘,所以在设计过程中我们对于整个设计的方案的构造和点子都是至关重要的。面对创新进行大量的改造和呈现,开发者让使用者眼前一亮也是一项非常重要的工作。在本文中,我们对垃圾处理场漫游的设计很重视,我们提前作出设计方案有两点是很重要的:1、在开始实现之前先进行测试。如果设计有非常大的缺陷在实施后又无法弥补,将会损伤惨重 2、策划方案作为一个书面的文件,我们可以反复的修改,使之更加完美,在设计过程中有什么问题,也可以随时标注,最后尽量减少漏洞,使最后的产品稳定运行,降低不确定带来的风险 14 。在虚拟现实设计中很关键的是软件研发的规范准则,其涉及到软件的研发逻辑、必须遵循的原则以及
26、该领域的行为职业准则,unity3D 作为一个引擎平台,对于对象占据的储存空间也有相关的要求,因此才能保证游戏和系统的运行。对于模型面数我们可以在 3D max 中看到,最好在 2k 及 2k 以下 15 。本次设计对于 3D 的程序技术进行阐述。由虚拟现实研发的固有属性,在很多的情景下,代码和技术的应用都会出现重复和相类似的地方,这对于其他的应用软件来说,是可以学习的。我们课程的题目就是基于 unity3D 设计的一种漫游系统,利用游戏引擎来设计虚拟漫游是一个非常好的选择。而 unity3D 在游戏设计方面应用及其广泛,是漫游设计的首选,因此我们选择常用的游戏引擎 unity3D 来进行虚拟
27、漫游的设计。我们在后面会详细的接受 unity3D 的优点特征。9基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究对于 unity3D 来说,unity5 版本之前一直支持三种语言:C#、Java Script 和Boo。 Boo 语言相对使用较少,我们就不再考虑。另外的两种语言,我们可以选择用两种语言来实现脚本的编写,最后它们都会被编译成 unity3D 中内置的中间代码 16 。但是由于 C#是面向对象的语言成分比较多,面向对象的特性完整,更加利于程序设计。另外,C#是 mono develop 的原生语言(mono develop 的框架用的是.net),对于熟悉 visual
28、studio 的编程用户使用 c 也更加方便。图 2-8 monodevelop 脚本编写的界面2.3 框架结构设计软件开发都有互通性,三维游戏开发也不例外。Unity 本身的设计就有是分层化的,我们的结构框架也是这样。整个设计从下至上的层级是:操作、构架、数据、控制、视图,如图 2-9 所示:10基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究图 2-9 游戏分层设计示意图系统层,即游戏最终运行在什么平台上。我们都知道,Unity 3D 可链接各种平台,可发布游戏至 苹果、安卓、Windows phone 8 等。框架层,根据其表面含义,游戏研发的通用底层支撑,可轻松复用于各类游戏的
29、开发,包含 UI 框架、message 管控器、游戏物体缓存池等最根本组件。上面 3 层为大家所熟悉的框架,模型视图控制器。模型层用于处理游戏数据思维,我们将数据划分为两大类:持久化数据和运行时数据。视图层包含 UI 层和多种游戏对象的行为表达。UI 层即使用者观察的相应界面,用以呈现相关数据。控制层是游戏开发中集中表现在其物体的产生与掌控 17 。采用这种分层,可以让我们的文件和逻辑分开,让我们的研发效率提升。下面介绍了结构框架的几个重点插件的完成。在我场景设计过程中,整个设计的构思框架都至关重要,不容小觑。我们构思好了一个完善的游戏框架可以使整个设计都更加的高效。在 Unity 3D 中,
30、每一个模型都可以改变他们的固有属性,我们对于不用的需求可以使其表现出不同的特征。例如使用 Javascript 或是 C#语言来编写的交互脚本,放在不同的对象上就会有不同的效果。Prefab 的资源不会直接体现在我们的编辑界面中,但是我们可以在层级目录下更改他的固有性质,那么再次显示在场景中的时候就会有不同的表现。另外,将大场景划分为小场景也是一个提高研发速度的方式,这可以使我们的加载速度变快。11基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究2.4 建模工具分析与选择在三维场景漫游建模是一个必要的过程。目前较为普遍的建模软件有3DMAX,MAYA,CAD 以及 SKETCH Upl
31、l31 等。市面上的 3D 建模软件非常的多,不同行业也会根据需要选择不同的三维建模软件,例如在机械制造行业用的比较多的是 solidworks ,在制作电影广告动画领域用得比较多的是 maya、softimage 等等 18 。我们基于以下几个因素选择 3Ds max 软件来进行 3D 建模:(1)3D max 是一款中端设计软件,其对于 pc 系统的配置要求低,对于多种平台都很适用。(2)我们进行工业仿真设计,3Dmax 在建筑设计、工业设计、工程可视化、游戏制作等领域都有广泛的应用,并且可以通过代码来实现动画,是我们进行工业仿真系统建模的最佳选择。(3)3Dmax 性价比高、应用广泛,简
32、单易学、非常容易使用。另外由于使用者很多,我们也有丰富的资源进行学习和交流。(4)强大的角色动画制作能力。我们课程的题目就是基于 unity3D 设计的一种漫游系统,利用游戏引擎来设计虚拟漫游是一个非常好的选择。而 unity3D 在游戏设计方面应用及其广泛,是漫游设计的首选,因此我们选择常用的游戏引擎 unity3D 来进行虚拟漫游的设计 19 。我们在后面会详细的接受 unity3D 的优点特征。如果还需要渲染,那还是 3DMAX 要好一些。如果模型很简单,这是最好的绝佳选择,使用 3DMAX 建模方便很多,材质不会重叠,也不会出现漏面的现象。2.5 两大插件 NGUI 和 iTweenU
33、nity 3D 软件中 NGUI 插件是游戏中非常常见的一种插件,他可以为游戏开始提供导航,也可以在游戏过程随时提供游戏重要信息,它是基于 C#语言编写的, unity3D 提供了两种 GUI 组件,一种是 GUI Text,一种是 GUI Texture. 其中 NGUI 插件提供事件通知的框架和 UI 系统 20 。代码的编也很简单,这对开发者和研究者而言,更加容易操控和学习 unity3D 的相关内容,也可以搭建简单的界面。12基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究对于 NGUI 插件来说,作为研究开发者可以直接查看到它的结果,而不需要点击其他按钮。而且 NGUI 插件
34、的使用方式与 Unity 的使用方式是完全一样的,当它在工作的时候。Unity 的另一款插件是 iTween 插件。iTween 插件和 NGUI 最大的不同是 iTween 插件非常简便,只是需要把一些资源插入 unity 当中即可。iTween 插件是一个动画库,在编辑行走路线的时候我们会用到 ITweenpath,给漫游用户设定行程等等 21 。各种产品里需要的动作设置,和颜色的有无变化等都可以通过 iTween组件来完成。iTween 插件的主要核心是数值的插值,即只需要确定开端和末尾,而中间过程可以自然而然的形成。2.6 Unity 场景漫游技术我们要设计一个场景漫游,简单来说分为两
35、步:第一步构建模型,第二步设计场景。由于 unity 也是一个系统引擎,因此如果我们的所有对象都按照真实纹理放在上面势必会使运行减慢,造成很大的资源浪费。因此我们在制作模型时,尽量使用纹理图片代替复杂的模型,尽量减少模型的大小和数量,使用复制的功能将大幅减少资源占用比例。在一般的情景下,在 Unity 里创建的场景占用空间较多,不可能完全的将其一次性全数呈现。因此我们需要挑选一些物体对其实施渲染的操作。我们将大的场景进行分割,分割成若干小场景,每次运行时速度就会大幅提升 22 。要在垃圾处理场里漫游,不管是在我们生活中的垃圾处理场,还是我们模拟出的处理场场景,都需要有观看者的存在。在 Unit
36、y 里面,我们可以把观看使用者者作为照相机,人眼为地面,来观察模拟垃圾处理场的各个地方。2.7 本章小结本章主要介绍了本次虚拟漫游研究中用到的一些三维软件和游戏引擎 unity的介绍。让论文读者对于本次研究开发所用到的软件有个清晰的了解,我们首先分析了本次交互研究用到的主要引擎 unity 的开发流程和简单的界面介绍,其中也包括了一些开发脚本的介绍,真对 unity 的特点我们分析了我们的策划准备,13基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究选择所要用的的插件,选择合适的建模软件。最后我们简单介绍了 unity 实现的虚拟漫游技术。总体为了让大家对本次开发运行环境有一个整体的了
37、解。14基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究3 虚拟现实系统设计对于 Unity3D 的使用步骤,主要是为下文的研发给予帮助。Unity3D 总的工作流程分为三步:材料整合、垃圾处理场搭建、发布系统,这个过程下来没有问题,研发进度就会有所提升。资源整合在 Unity3D 中解释想对模糊,能包含 3D模版、组件、图画、逻辑、材料、声音、着色器等等 23。我们对资源的一些整理有很多方面,首先我们要有资源其次设置相关参数再将其运用到相应的场景中去,我们在运用的过程中就回了解到使用他们的益处。垃圾场的场景构建就是将我们所拥有的一些污水处理管道,垃圾处理厂房等等这些资源放入到场景编辑
38、器中进行改造,使其放在一起更加和谐更加逼真的体现垃圾处理场的场景。场景构建主要是两部,第一步拥有场景内的物体,第二步就是将物体编辑加工好。游戏用户、各类插件、交互逻辑是场景元素,摄像机、灯光也是场景元素。编辑场景,通过改造之后形成一个个可以使用的对象,再将对象组织在一起进行下一步的研发设计 24 。而我们最后一步发布,就使我们的研发不仅仅可以在 unity 中运行还可以在其他平台使用。3.1 产品开发流程使用 unity 引擎,我们开发游戏和其他虚拟的场景的时候,是有一个通用的研发模式和步骤的。实际中游戏和虚拟现实产品有差异,但是很大程度上的步骤是相似的。我们研发一个垃圾处理场,首先就要根据我
39、们研发的需求进行设计,包括界面设计等等,然后就进入漫游交互部分的研发和编程阶段 25。在垃圾处理场搭建完成,并可以实现交互后,我们还要进行相应的体验和修改,最后我们才能将其发布投入使用。其中整体的开发流程如下图 3-1 所示。15基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究图 3-1 开发流程图3.2 三维真实场景的建模简单来说,我们在要建模的场景下现场采集图片和视频,然后利用图片和视频在电脑软件上进行三维建模。对于建模使用的图片,需要视角宽阔能够反映场景中物体的比例和位置关系。另外对于一些复杂的建模部分,我们需要正视图,拥有正面视图可以用其来代替以简化建模 26 。简单的概括一下
40、三种实用的建模方法:(1)UVW 贴图uvw 对应着 xyz 轴,我们通过控制 uvw 的值来改变贴图的位置和比例大小,以此达到一个三维逼真的效果。(2)线工具通过线条可以绘制任何需要的形状,不受限制;另外,线工具构建的模型面数少,导入引擎后占用储存空间小。(3)多边形工具我们将构建对象转化为可编辑的多边形,通过改变可编辑多边形的点、线、面、元素、边界对象模式来完成建模,功能性强。首先要到实地进行数据采集,再使用 3D StudioMax 建模。建模方法采用的是 Polygon 建模即用多边形工具,进行 UV 拆分再用图像处理软件进行材质贴图的制作,在安装格式式插件生成 Fbx 文件格式后,导
41、入到 Unity3D 中进行调整。16基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究有时也要为了突出贴图的立体感而重新绘制的 27 。导入到 Unity3D 后,我们就需要对模型的位置和大小进行调整,图 3-2 是在 Unity3D 中实时煊染的效果图。图 3-2 三维场景中的模型图对于我们构建出来的垃圾处理场的场景,简单来说,就是可以让用户切身的体会到垃圾处理场的构造,以及其组成,能够像在真的垃圾场里面一样随意的走动视察和学习这其中的构造。那么为了拥有这种较强的真实感,我们在建模过程中,不仅仅要搭建好模型,更主要的是还要将模型逼真化,同时我们要保证构建模型的过程中按照标准规范来,使
42、其占用的空间尽可能的小。模型优化最基本的原则就是:尽量使模型简单化,降低繁复的点线面的数量 28 。以下几点是最基本的建模要求 29 :(1)模型命名尽量英文采用名称,避免重名,(2)在 3DsMax 中建模时,以米作为最小的单位,以便于 Unity 里使用,(3)建立三维模型时采用多边形工具进行建模,(4)在建模过程中,确定模型的正面视图.(5)尽量共用模型的材质和贴图组件,(6)尽量减少硬边数量,xy 的边缘和顶点数量。17基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究3.3 系统交互设计方案在垃圾处理场的虚拟漫游中,使用者通过交互来进行联系虚拟和现实,而unity 是开发人员的
43、交互研发工具,虚拟现实的整个设计都在 unity 内完成,在本次研发中,有漫游场景的交互,有垃圾处理场设备界面介绍切换的交互,这通过点击设备来实现相应的交互功能 30 。在场景交互中,我们以第一人称在垃圾处理场内漫游,可以随意的在垃圾处理场内走动,并且可以切换天空的颜色,以此来感受垃圾处理场治理前后天空的变化,这也是一种交互。3.4 本章小结在第二章介绍了 unity 的开发准备之后,本章我们介绍了基于 unity 开发准备之后,我们如何设计并形成一个虚拟漫游的场景。其中包括了我们开发流程的介绍和相应的我们在建模过程中用到的主要建模技术,特别值得注意的是,unity作为一个引擎,其运行时也会占
44、用大量的资源空间,我们提到了一些规范以避免浪费资源。最后,我们在搭建好场景后,也讨论确立了我们交互的人称设置,这也是我们下一章介绍漫游功能实现要确立的最基本的问题。18基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究4 垃圾场漫游功能的实现4.1 漫游功能的实现虚拟漫游是我们本次垃圾处理场漫游系统的关键,交互功能是实现我们漫游的重点。我们通过编写交互脚本来实现“上”,“下”“左”“右”“跳跃”“旋转”这些逻辑操作,并将他们封装成角色控制组件,来实现第一人称主角的漫游 控制 31 。具体的步行漫游功能采用的方法如下:通过按键控制该对象的移动,将主摄相机绑定在一个胶囊状对象上,其中主摄像机
45、上还包含了水下效果代码、环境音效代码、鼠标控制代码、环境特效代码、天空显示代码等,主摄像机的改变决定着视窗中所有声音以及图像的相应改变。其中漫游功能的实现是对它的位置或者说是视点控制,然后通过 CharacterController 的包来实现,将 Character Controller 添加为 First Person Controller 的组件即可实现漫游功能。将鼠标控制程序绑定在主摄像机来实现对视角控制,这样就可以达到通过鼠标移动来控制视角 32。在垃圾处理场交互系统中,从而实现了通过头部运动来掌控了三维场景的视角,鼠标控制视角的程序流程图如下:19基于 unity3D 的垃圾处理场
46、虚拟漫游与人机交互研究图 4-1 鼠标控制程序流程图 1图 4-1 所示的程序流程图主要表示了我们要使用鼠标控制人物的旋转,第一步我们在启动引擎之后,我们要将相应的属性设置到菜单栏,然后确定程序编写过程中所用到的旋转变量,并设置好以 xy 轴为旋转轴的旋转系数以及其最大最小的旋转值,这些我们将其归类为初始化设置。20基于 unity3D 的垃圾处理场虚拟漫游与人机交互研究图 4-2 鼠标控制旋转程序流程图 2图 4-2 所示的程序流程图中主要解释了我们是否要使用 xy 轴同时控制旋转,如果是的我们如何去通过编程设置如何通过鼠标旋转角度来计算最后的旋转数值,然后将此数值赋于我们的旋转变量最后计算出我们最后的旋转效果。同理可得入果只有 x 轴的数据或者 y 轴的数据,我们又如何得到最后的旋转效果 33 。图 4-3 的程序流程图主要说明了我们需要固定我们的旋转轴,要在程序编写中来设定它们。另外旋转的角度也有相应的要求,如果小于最小值我们要加相应的度数,如果大于最大值,我们要减掉相应的角度。21