气象科普体感游戏开发与设计

    王怿 董珍珍

    摘要:

    利用Unity3D作为游戏引擎构建交互平台,以c#语言为桥梁连接Leap Motion、Kinect、网络摄像头等交互设备,实现体感交互,寻求气象科普体感游戏设计方案,对气象科普形式进行多元化、多感官、新颖互动的气象科普创新探索实践,力求实现气象科普从“被动科普”到“主动科普”的转变。

    关键词:

    体感游戏 气象科普 模型 手势

    前言

    每年我国因气象灾害而造成的经济损失高达2000-3000亿元人民币。如何有效地进行气象知识普及,提高社会民众气象防灾减灾意识十分必要。然而,传统的气象科普方式往往存在一定的局限性,难以激发公众主动参与、学习和探索的热情,气象科普预期目标难以实现。基于我国气象知识普及率不高的现状,气象科普方式进行创新势在必行,在科普形式的互动性、新颖性和娱乐性等方面进行体感交互设计,使“被动科普”转变为“主动科普”。其中,体感游戏是体感交互很好的表达方式。体感游戏的出现为气象科普增添了新的形式。体感游戏是一种通过人的肢体动作进行操作的新型电子游戏,无需键盘、鼠标等设备,人们用肢体进行各种动作,就能够与周边的某种装置或环境产生互动,人机融为一体,让玩家得到身临其境的游戏体验。目前我国尚无气象科普相关的体感游戏,如用体感游戏传载气象科普的内容,将不失为气象科普形式的一种创新尝试。

    1.气象科普体感游戏的可行性

    1.1体感设备分析

    随着数字媒体技术的迅猛发展,人机交互趋向于自然的交互方式。利用计算机图形学技术,把体感传感设备采集的信息转化为骨骼节点数据,再将这些数据导入到计算机,最终实现人们可以通过肢体动作与计算机终端的交互,从而实现某种功能。Wii、Kinect、Xbox360等体感设备,可以捕捉人体的躯干动作,例如弹跳、挥手、弯腰等行为,将其信号反馈给计算机进行相关互动。气象科普游戏可以通过不同动作进行气候转换。前不久面世的Kinect2可以识别人脸面部表情,气象科普游戏可利用面部表情的变化来实现游戏内气象的变化,譬如微笑可以转变为晴天,沮丧可以转变为阴天等。如今,Leap Motion等手势识别设备灵敏度大大增强,人们可以通过简单的手势去实现与电脑的互动。它的出现使基于手势的体感交互成为可能,人机交互中充分发挥手的灵巧性,交互更自然。可以用简单的手势实现气象元素强度和方向的变化。例如,用手所指方向表示风向,伸出的手指数表达风力等。在LeapMotion发布同年,Oculus Rift VR公司发布了虚拟现实头盔——Oculus Rift。Oculus Rift是一款具有代表意义的头戴式全景头盔,该设备中安装有可以控制视角的陀螺仪,可大幅度地提升玩家的游戏沉浸感。通过此设备,人们不再需要通过裸眼3D技术,便可直观地获得在3D游戏环境中最好的体验。与Leap Motion以及Oculus Rift不同,Arduino在气象科普游戏中为输出设备。Arduino是一款对用户开源的电子平台。使用者可以通过使用Arduino lDE对Arduino编写代码。Arduino可以通过电脑给出的指令,完成亮灯、放音乐、开启风扇等一系列功能,也可通过按钮、光敏电阻、热敏电阻等一系列的传感器对计算机进行反馈。在气象科普游中,玩家可以通过选择不同的气象,控制不同的天气等级,从而使电脑将信号发送给Arduino,触发一些开关。例如,玩家选择风,随后Arduino将打开风扇开关并控制风扇转速,让玩家感受到相应风力。

    1.2软件技术分析

    Unity3D作为一款游戏引擎,可以让使用者轻松简单地构建各类游戏、建筑动画等内容,是款多平台的游戏开发工具。此引擎不但可以发布Windows系统的游戏,还可发布到lOS、Linux等操作系统环境中,甚至可以跨平台地与手机、Play Station、XBOX360等设备无缝对接。Unitv3D是可以构建体感交互气象科普游戏较为理想的交互平台。通过计算机语言的辅助,unity3D可与诸多的体感交互设备,如:Leap Motion、Kinect等设备相结合,从而开发不同以往的具有多感官的体感交互游戏。

    在Unity3D中,主要使用的脚本语言有C#、JavaScript以及Boo等。c#语言在c语言、c++语言和JAVA语言的基础上发展而来,其编写方式更为简单,最被现代研发者青睐。以c#语言为桥梁,Unity3D连接了LeapMotion、网络摄像头等交互设备,实现了手势操作、增强现实等多感官的游戏互动体验,从而使人们获得了更为直观、身临其境的感受。当玩家做出象征气象等级的手势“数字1”时,Unity3D引擎根据Leap Motion体感交互设备以及c#语言对相关手势进行识别,随后气象科普游戏中产生与手势“数字1”相对应的一级降雪、降雨或刮风等气候现象,使人们实时地、更为简便、直观地了解气象知识。

    2.气象科普体感游戏设计的程序

    2.1场景模型构建

    通过3D建模的方式实现场景以及天气的构建。建模采用3Ds Max软件以及Unity3D中的Particle System。场景空间部分利用3Ds Max软件完成。由于气象科普游戏应遵循科普的科学性,游戏场景应当使用写实风格。可是,过于写实的游戏模型往往会出现模型细节过多、游戏内存过大的问题。为了避免玩家与电脑产生交互时会出现卡顿的现象,场景空间部分的建模应当采用低面建模的方法,通过材质贴图来弥补细节的缺失。利用unity3D导入3Ds Max制作好的3D模型,按照不同场景的需求,利用笔刷工具在unity3D中给地面赋予小石块、草皮、树木等细节。skybox:为Unity中制作天空的工具。为了节省内存,游戏场景的天空部分,同样利用了材质贴图的方法。设计师通过给skybox的每个面附上天空照片贴图,达到天空制作的目的。

    天气的制作是模型制作过程中的关键。因为气象科普游戏的主要目的是进行气象科普,所以模型不但要有艺术表现性,还需具备科学性。天气通过被观察的方式分为两种:一是具有明显物质存在的天气现象,如雪、雨、雾等;二是只可通过环境观察得到的,如晴、风等。下面笔者将以雨、雪、风三个天气为例,阐述模型制作过程。其中,雨与雪模型通过利用unity3D游戏引擎自带的Particle System完成。Particle System中下分Emission Rate、Speed、Size以及Material等可调节参数。气象模型以气象的属性为参考(例如降雨量)。开发者通过调节参数,达到模拟气象的效果。在贴图选择过程中,为了达到最真实的效果,开发者可利用带透明通道的雨、雪的照片作为天气的贴图。风与前两者模型的制作方法不同,因为虽然风无法直接所见,但是会对周围的环境产生影响,所以需通过调节环境,如大树的摇摆等来侧面呈现风级。unity3D游戏引擎中的wind Zone可实现风的制作。wind zone中下分Mode、wind Main、Wind Turbulence等可调参数。由于此类参数得相互调整,并且需要用unity3D中其他的模型(例如树)的摆动做参照,才能得到接近于真实的风效果,因此,唯有进行多次尝试并进行比对才能完成风模型的制作。最终,将所有上述模型设置为Prefab,方便之后利用代码调取模型实现手势识别控制。

    2.2手势识别控制

    手势识别设备如Leap Motion,其3DK为unity3D开发环境提供了一套完整的文档。气象科普游戏用数字手势来控制天气级别的变化。在研究中发现,人们所做的数字手势“1”至“5”,手指伸直的数量与其数字互相对应。在:Leap Motion SDKI中,代码hand.Fingers.Extended()可以通过识别手指的指向以及手掌的指向,从而判断手指是否屈伸。利用该代码,电脑可以识别伸直的手指数量,再通过利用if语句来执行各类手势情况下的命令。以“下雨”为例,事先在游戏中利用Partide System制作代表小雨、中雨、大雨的三个Prefab。这些Prefab分别模拟了小雨、中雨、大雨的雨量。玩家在做出不同手势后,if语句对其手势进行判定,最终调用不同的Prefab营造不同天气等级下的环境。例如,当玩家做出手势“数字3”时,if语句中的条件语句hand.Fingers.Extended()==3此时为true,其他所有条件语句hand.Fingers.Extended()==1为false。此时,unity开始执行hand.Fingers.Extended0==3条let的执行语句。在该if语句作用下,unity调用了大雨Prefab,从而模拟了大雨的效果。除以上功能外,手势识别设备还可以识别绕圈、单击等手势,气象科普游戏利用这些手势代替鼠标操作,丰富了游戏性。

    2.3增强现实设计模块

    增强现实技术通过摄像头,实时地识别事先所定义的图像,并计算出该图像所在的位置与所成的角度,在图片上(或其他位置)生成相应的模型或动画,最终把虚拟的图像与现实的影像互相叠加,从而达到虚拟世界与现实世界相结合的目的。近年来,运用增强现实技术的游戏在市场上逐渐增多。例如,肯德基在2014年世界杯期间推出了一款增强现实游戏《肯德基K球吧》。该游戏通过利用AIR技术与手机摄像头,识别印在卡片上的图案,在手机中实时生成了球门、草皮等游戏场景。玩家可通过在手机上滑动手指发射小球,与手机生成的画面进行互动。气象科普游戏可运用增强现实技术,通过摄像头定位角色位置,在玩家的周围实时生成天气环境,给玩家带来非常丰富的科普体验。

    2.4基于Arduino的触觉触发装置

    Arduino在气象科普游戏中是一个输出设备。Arduino可以通过利用不同的模块相互拼接,从而实现不同的功能。Arduino有着轻便、多样化的特点,且价格不高,这十分有利于推动气象科普游戏的普及。

    Uniduino是Unity Asset商店所售的一款package。Uniduinol即Unify+Arduino,它将unity与Arduino相结合。气象科普游戏利用Uniduino,实现实时控制Arduino的功能。以刮风关卡为例,使用L9110风扇模块,将其安装在Arduino UNO板上。玩家可以利用手势识别设备通过手势选择风力等级,随后Unity会给Arduino发出相应指令。L9110风扇模块得到指令后,以相对应的转速进行转动,让玩家获得刮风的感受,从而实现玩家沉浸感的增强以及多感官的体验。

    3.结论

    多元化、多感官、新颖互动的气象科普方式是今后的发展趋势。利用体感交互技术和设备将原本枯燥无味的气象科普知识与游戏相结合,提升气象科普方式的互动性与趣味性,寓教于乐,必将有助于气象知识更广泛而深入的普及。气象科普游戏在未来的发展中将会加入更多的感官元素,让人们可以更加直观地感受体验。相信不久的将来,气象科普的体感游戏能够在各大气象科普展览馆中得到普及,改变以往单调的气象科普方式。

    基金项目:2014年江苏省大学生创新创业训练计划项目《气象灾害科普中多感官现代传媒技术的应用开发与设计》(项目编号:201410300050)研究成果。

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建