虚拟交互系统开发及关键技术研究

2017-12-20 09:59李婷婷余庆军
计算机技术与发展 2017年12期
关键词:碰撞检测虚拟环境漫游

李婷婷,余庆军

(大连东软信息学院 数字艺术系,辽宁 大连 116023)

虚拟交互系统开发及关键技术研究

李婷婷,余庆军

(大连东软信息学院 数字艺术系,辽宁 大连 116023)

虚拟现实技术发展迅速,但传统的虚拟现实系统大多存在着沉浸感不强、交互性差,不能让体验者沉浸在虚拟系统中等缺陷。综合这些因素,研究基于Unity3D平台,采用3Dmax场景建模工具,采用JavaScript和C#语言实现交互功能,结合Occlus dk2完成交互式虚拟系统的开发并研究系统中所涉及的多项关键技术,包括碰撞体检测技术、三维建模技术、粒子特效技术、虚拟交互技术等等。实验结果表明,该虚拟交互系统能克服以往虚拟漫游的沉浸感不足、交互性差等缺点,用户在虚拟交互系统中可以体验到与真实场景相近的虚拟环境,并且可以与虚拟环境进行交互;将交互行为应用到虚拟漫游中对虚拟现实技术发展具有重要意义,具有简单和易实现等特点,拥有广阔的应用前景。

虚拟漫游;虚拟现实;场景交互;碰撞检测;dk2

0 引 言

随着计算机技术的快速发展,虚拟现实技术[1]的应用在国内外俨然成为一种潮流。目前,人们越来越不满足于现实世界中的图片、文字等信息,对具有良好互动效果的虚拟世界充满好奇。如今,虚拟现实技术应用已经扩展到虚拟旅游、虚拟购物、军事航海、建筑与景观设计等领域[2-3]。虚拟交互系统开发也成为国内外的研究热点。例如,JACOBSON J等利用虚幻引擎技术开发了一种虚拟环境系统[4];北京航空航天大学的赵沁平教授提出了一种新型虚拟互动系统架构[5];浙江大学近年来致力于紫禁城虚拟场景的开发,并提出了一种适用于虚拟环境中的快速漫游算法[6]。

以上研究为本系统开发提供了理论借鉴,但是传统的虚拟现实系统大多存在一些弊端,比如,沉浸感不强,交互性差,不能让体验者沉浸在虚拟系统中,等等[7]。基于此,文中利用Unity3D平台,结合Occlus dk2开发虚拟互动系统,并研究沉浸式虚拟互动漫游系统开发中所使用的关键技术,使虚拟场景建模得到进一步完善,并就系统开发流程、三维建模、场景交互等有关技术进行讨论。

1 系统概述

1.1 系统开发平台

Unity是一个专业级的高质量游戏引擎[8],提供了可视化编辑工具,可以将艺术资源绑定在一起并对可交互对象进行编码,产品可以发布在PC、Web和Mac等平台上,提供了高度跨平台的性能。

1.2 系统开发流程

在分析系统需求的基础上,采用虚拟现实技术配合用户交互,使得用户可以佩戴虚拟现实设备在虚拟场景内漫游,参观展馆内部建筑,了解展品文化历史。基于Unity3D技术,结合Occlus dk2虚拟现实头盔开发沉浸式虚拟交互系统。首先基于3DMAX建模工具构建场景模型;然后将场景模型导入到Unity中构建展馆场景;最后加入碰撞检测,实现用户交互、虚拟漫游等功能。实验结果表明,利用Unity3D技术,结合Occlus dk2开发的虚拟校园能够使用户产生身临其境的感觉,并且具有良好的交互性。

系统开发流程如图1所示。

图1 系统开发流程

2 系统开发关键技术

2.1 系统界面

系统界面实现部分采用UGUI技术[9]。UGUI即UnityGUI,是官方UI的实现方式。UGUI是强大的UI系统,其事件处理通常由开发人员编写C#脚本完成。本系统采用UGUI来提高系统开发效率,增强系统图形用户界面的美感,具体实现时设定2个功能按钮,如图2所示。一个是进入场景Start,一个是系统设置Set,其中系统设置主要实现声音大小的控制,具体实现代码如下所示。

图2 界面效果图

public void StartGame()

{Application.LoadLevel("m10_library_art_office");}

public void OpenSetting()

{StartButton.SetBool("TrueBool",true);

SettingButton.SetBool("true",true);

Setplace.enabled=true;

Setplace.SetBool("TrueBool",false);}

2.2 三维建模

2.2.1 3DS MAX构建模型

3DS MAX有非常好的性价比,它所提供的强大功能适合做场景模型的建模工作[10],因此本系统内的建筑模型采用3DS MAX实现。在模型的构建中尽量采用的是低模,以达到优化场景模型的目的。将制作好的模型保存成.fbx文件,然后导入到Unity3D中。

2.2.2 模型组件场景

场景空间包括场景地形、建筑物、环境装饰、光源等内容,将导入到Unity3D中的场景模型设置为prefab(预制件),添加到场景中,场景整体效果如图3所示。

图3 场景模型顶视图

2.3 碰撞检测

虚拟漫游时,当用户在操控手柄进行前后左右移动时,如果碰到场景内的物体应该发生碰撞的本能反应,所以碰撞检测功能是提高虚拟漫游体验的核心功能[11]。本系统在设计时采用AABB包围盒碰撞检测算法,其基本算法是将2个包围盒分别向3个坐标轴投影,只有2个包围盒在3个坐标轴上的投影区间都相交时才能判断2个包围盒相交[12],如图4所示。

图4 AABB碰撞检测原理示意

设A,B为2包围盒,x为投影轴,CA,CB分别为A和B的中心点;PA,PB分别为点CA和CB在x轴上的投影;LA,LB分别为包围盒A和B在x轴向的半条边在x轴上的投影。若LA+LB

2.4 虚拟交互

虚拟交互系统构建了一个参观者与展品间交流互动的平台,丰富的虚拟交互将大大提升参观者的互动体验,使参观者在参观过程中与展品交流互动、发现探索。本系统中主要的虚拟交互包括场景漫游和视频播放交互。

2.4.1 场景漫游

场景漫游是虚拟交互的关键[13]。系统漫游功能主要采用C#语言实现,通过WSAD控制人物的行走方向,它们分别代表了前、后、左、右四个方向,通过鼠标实现视角旋转,具体实现代码如下所示。

if(Input.GetKey(KeyCode.W))

{zm+=m_movSpeed*Time.deltaTime;}

else if(Input.GetKey(KeyCode.S))

{zm-=m_movSpeed*Time.deltaTime;}

if(Input.GetKey(KeyCode.A))

{xm-=m_movSpeed*Time.deltaTime;}

else if(Input.GetKey(KeyCode.D))

{xm+=m_movSpeed*Time.deltaTime;}

m_ch.Move(m_transform.TransformDirection(new Vector3(xm,ym,zm)));

2.4.2 视频播放交互

Unity3D中播放游戏视频的方式有两种,一种是在游戏对象中播放,通过摄像机照在一个平面上实现;另一种是在GUI层面上播放视频。本系统采用的是第一种方法,效果如图5所示。首先构建一个播放视频的plane,然后再在平面上添加视频播放代码即可。具体实现代码如下所示:

void OnGUI()

{if(GUILayout.Button("播放/继续"))

{if(!movTexture.isPlaying)

{movTexture.Play();}}

if(GUILayout.Button("暂停播放"))

{movTexture.Pause();}

if(GUILayout.Button("停止播放"))

{movTexture.Stop();}

}

图5 展厅播放建筑动画效果图

2.5 声音实现

系统中的声音播放在整个系统中占据非常重要的地位。系统声音分两种,一种是背景音乐,通过在Camera上挂载Audiosouce声音控件实现,另一种是特效音乐,挂载在第一人称上实现脚步走路的声音。

2.6 粒子特效

为了给场景添加丰富的展示效果,为系统场景添加粒子系统[14]。粒子系统中粒子会随着时间的推移不断变形和运动,而且系统会自动产生新的粒子,提高系统内场景物体的可观赏性。具体实现时首先加载粒子系统资源,然后通过属性面板设置粒子系统参数,duration=5.0f;Start Delay=0;Strat Lifetime=0.1;Start Speed=0;Strat Size是一个随机值,介于0.1~0.5之间;Strat Roataion=0;Max Particles=10 000。

2.7 显示输出

系统显示输出部分采用occlus dk2[15],如图6所示。dk2是外接式头戴设备,屏幕分辨率达到1 080*960,感应器刷新率为1 000 Hz,内置了丰富的配件以保证使用者的沉浸式感受。在Unity Free integration for Oculus平台上提供了免费的Oculus integration包,可以在Unity5.x平台上运行,开发沉浸式虚拟现实漫游系统。具体实现时,首先需要把Unity 4 Oculus integration package导入到Unity5.x中,然后找到OVRPlayer Controller prefab,将其拖入Hierarchy面板中替代MainCamera即可。

3 实验与分析

实验基于Unity3D平台,其中所用的移动设备是在内存Intel CoreTM2 Quad CPU,Q8200@3.22 GHz,4 GB内存,NVIDIA GT9800显卡的PC测试通过,软件环境为Unity3D5.x和3DS Max2014。系统可以发布到PC、Web等多种平台上,并能流畅运行,获得了较好的效果。由此证明,该系统具有较好的移植性,支持多种软硬件平台运行。

启动系统后,体验者可以在展览馆中进行个性化的自主参观,欣赏展览馆内景观或是详细了解展馆内藏品。实验结果表明,该系统能克服传统虚拟漫游沉浸感不足的缺点,用户可以体验到与真实场景相近的虚拟环境,并且可以与虚拟环境进行交互,提高了体验者和展品的交流互动,具有简单和易实现等特点。场景测试效果如图6所示。

4 结束语

基于3DS Max建模技术和Unity3D虚拟现实技术,结合虚拟现实头盔Occlus dk2开发的沉浸式虚拟交互漫游系统,可以给人以身临其境的感觉。系统运行流畅,画面真实感强,人机交互效果良好,拥有广阔的应用前景。未来,随着虚拟现实技术的不断成熟,沉浸式虚拟交互系统将在沉浸感、真实感等方向继续向前发展,增添更加丰富的内容。

图6 近距离观察效果图

[1] FENG Y F.Design and realization of roaming system of a virtual community based on Virtools[J].Computer Simulation,2009,29(6):285-286.

[2] AGHINA M A C,ML A C A,JORGE C A F,et al.Non-conventional interfaces for human -system interaction in nuclear plants' virtual simulations[J].Progress in Nuclear Energy,2012,59:33-43.

[3] LONG P,ZENG Q,HE T,et al.Development of a geometry-coupled visual analysis system for MCNP[J].Progress in Nuclear Science and Technology,2011,2:280-283.

[4] JACOBSON J,RENARD M L,LUGRIN J L,et al.The CaveUT system:immersive entertainment based on a game engine[C]//Proceedings of the 2005 ACM SIGCHI international conference on advances in computer entertainment technology.Valencia,Spain:ACM,2005:184-187.

[5] 赵沁平,郝爱民,王莉莉,等.实时三维图形平台BH_GRAPH[J].计算机研究与发展,2006,43(9):1491-1497.

[6] 马登武,叶 文,于凤全.虚拟现实技术及其在飞行仿真中的应用[M].北京:国防工业出版社,2005.

[7] 仲于姗.基于Unity的3D虚拟校园漫游系统的开发[D].云南:云南大学,2015.

[8] 朱惠娟.基于Unity3D的虚拟漫游系统[J].计算机系统应用,2012,21(10):36-39.

[9] 张 璐.基于虚拟现实技术的用户界面设计与研究[D].上海:东华大学,2013.

[10] 袁 林.基于虚拟现实技术的三维建模方法研究[D].乌鲁木齐:新疆大学,2008.

[11] 张 颖.虚拟视景漫游中碰撞检测技术研究[D].长春:吉林农业大学,2014.

[12] 王梅亮,万华根,顾键萍.基于游戏模式的行人横穿道路技能辅助训练系统研究[J].系统仿真学报,2016,28(6):1406-1411.

[13] 张典华,陈一民.基于Unity3D的多平台虚拟校园设计与实现[J].计算机技术与发展,2014,24(2):127-130.

[14] 熊 耀.基于Unity3D粒子系统的三维影视特效开发研究[J].软件导刊,2012,11(11):134-136.

[15] 高 源,刘 越,程德文,等.头盔显示器发展综述[J].计算机辅助设计与图形学学报,2016,28(6):896-904.

ResearchonKeyTechnologiesandRealizationofVirtualInteractiveSystem

LI Ting-ting,YU Qing-jun

(Department of Digital Art,Dalian Neusoft University of Information,Dalian 116023,China)

Virtual reality technology has developed rapidly,but the traditional virtual reality system is lack of scene immersion,with poor interaction,which cannot let the users immersed in the virtual system.In synthesis of these factors,based on the Unity3D platform,using 3Dmax as the scene modeling tool,the interaction is realized by JavaScript and C#.Combined with Oculus dk2,the virtual interactive system is developed and its corresponding technologies are researched including collision detection,3D modeling,particle effects,virtual interaction and so on.Experimental results show that the system can overcome the shortcomings of poor immersion of virtual roaming and bad interaction.The users can experience the virtual environment close to the real scene and interact with it.It is significant for virtual reality technology to apply interaction into virtual roaming,simple and easy to implement,with broad application prospects.

virtual roaming;virtual reality;scene interaction;collision detection;dk2

TP391

A

1673-629X(2017)12-0124-04

10.3969/j.issn.1673-629X.2017.12.027

2017-01-20

2017-05-24 < class="emphasis_bold">网络出版时间

时间:2017-09-27

辽宁省自然科学基金计划项目(ZX2016KJ008)

李婷婷(1985-),女,硕士,讲师,研究方向为虚拟现实技术;余庆军,博士,教授,研究方向为增强现实技术。

http://kns.cnki.net/kcms/detail/61.1450.TP.20170927.0959.070.html

猜你喜欢
碰撞检测虚拟环境漫游
基于动力学补偿的机器人电机力矩误差碰撞检测
全新预测碰撞检测系统
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
如何通过虚拟环境有效管理Python第三方库
基于BIM的铁路信号室外设备布置与碰撞检测方法
霹雳漫游堂
霹雳漫游堂
基于Virtools的虚拟灭火系统碰撞检测设计与实现
动画广告设计中虚拟环境的构建方法与运用
论高校思想政治教育网络虚拟环境的特征