每年,我国因气象灾害造成的经济损失高达2000-3000亿元,有效普及气象知识,提高公众气象防灾减灾意识十分必要。但传统的气象科普方式往往存在一定的局限性,难以激发公众主动参与、学习、探究的积极性,气象科普的预期目标难以实现。基于目前我国气象知识普及率不高的现状,创新气象科普方式势在必行,在科普形式的互动性、新颖性、娱乐性等方面进行体感互动的设计,让“被动科普”转变为“主动科普”。其中,体感游戏就是体感互动的一种很好的表现方式,体感游戏的出现,为气象科普增添了新的表现形式。体感游戏是一种通过人体动作进行操作的新型电子游戏,无需键盘、鼠标等设备,人通过用身体做出各种动作就能与周围的某些设备或环境产生互动,人机合一,给玩家带来身临其境的游戏体验。目前,我国尚无与气象科普相关的体感游戏,若能用体感游戏来传达气象科普内容,将是气象科普形式的一次创新尝试。
1. 气象科普游戏的可行性
1.1 体感装置分析
随着数字媒体技术的飞速发展,人机交互趋向于一种自然的交互方式。利用计算机图形技术,将体感传感设备采集到的信息转换成骨骼节点数据,再将数据导入计算机,最终使人通过肢体动作与计算机终端进行交互,实现一定的功能。Wii、Kinect、Xbox360等体感设备可以捕捉人体躯干动作,如弹跳、挥手、弯腰等,并将其信号反馈给计算机进行相关交互。天气科学游戏可以利用不同的动作来转换气候,前不久推出的Kinect2可以识别人的面部表情,天气科学游戏可以利用面部表情的变化来实现游戏中天气的变化,如微笑可以变成晴天,沮丧可以变成阴天。如今,Leap Motion等手势识别设备的灵敏度大大增强,人们可以通过简单的手势与计算机进行交互。它的出现使得基于手势的体感交互成为可能,充分发挥了人机交互中双手的灵活性,交互更加自然。通过简单的手势即可实现气象要素强度和方向的变化。例如,手的方向表示风向,手指伸出的个数表示风力。在Leap Motion发布的同一年,Oculus Rift VR公司发布了虚拟现实头盔——Oculus Rift。Oculus Rift是一款具有代表性的头戴式全景头盔。该设备配备了可以控制视角的陀螺仪,可以大大增强玩家的游戏沉浸感。通过这个设备,人们不再需要借助裸眼3D技术,就可以直观地在3D游戏环境中获得最佳体验。与Leap Motion和Oculus Rift不同的是,Arduino在气象科普游戏中是一个输出设备。Arduino是一个对用户开放的电子平台,用户可以使用Arduino IDE为Arduino编写代码。 Arduino可以通过电脑发出的指令,完成点灯、播放音乐、开风扇等一系列功能,还可以通过按钮、光敏电阻、热敏电阻等一系列传感器给电脑提供反馈。在气象科普之旅中,玩家可以通过选择不同的天气状况来控制不同的天气等级,这样电脑就会向Arduino发送信号,触发一些开关。比如玩家选择有风,那么Arduino就会打开风扇开关,控制风扇的转速,让玩家感受到相应的风力。
1.2 软件技术分析
Unity3D作为游戏引擎,可以让用户轻松简单的构建各种游戏、建筑动画等内容,是一款多平台的游戏开发工具,这款引擎不仅可以为Windows系统发布游戏,还可以发布到IOS、Linux等操作系统环境,甚至可以跨平台无缝对接手机、Play Station、XBOX360等设备。Unity3D是构建体感互动气象科普游戏的理想交互平台。在计算机语言的辅助下,Unity3D可以与很多体感互动设备程序开发,比如Leap Motion、Kinect等设备相结合,开发出不同于以往的多感官体感互动游戏。在Unity3D中,主要使用的脚本语言有C#、JavaScript和Boo。C#语言是在C语言、C++语言和JAVA语言的基础上发展起来的,它的编写方式更加简单,最受现代开发者的青睐。 Unity3D以C#语言为桥梁,连接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)完成的,粒子系统分为Emission Rate、Speed、Size、Material等可调整参数。气象模型是根据天气的属性(如降雨量)制作的,开发者通过调整参数达到模拟天气的效果。在选择纹理的过程中,为了达到最真实的效果,开发者可以使用带有透明通道的雨雪照片作为天气纹理。风的制作方法和前面两种模型有所不同,因为风虽然不能直接看到,但是会对周围的环境产生影响,所以需要通过调整环境,比如树木的摇曳,从侧面展现风的等级。Unity3D游戏引擎中的Wind Zone可以实现风的制作。Wind Zone分为Mode、WindMain、Wind Turbulence等可调参数。由于这些参数需要互相调整,并且需要以Unity3D中其他模型(比如树木)的摆动作为参考才能得到接近实物的风效果,所以风模型的制作需要经过多次尝试和比较才能完成。最后将以上所有模型都设置为Prefabs,这样以后使用代码调用模型实现手势识别控制就比较方便了。
2.2 手势识别控制
手势识别设备如Leap Motion,其SDK提供了Unity3D开发环境的全套文档。气象科普游戏就是利用数字手势来控制天气等级的变化,在研究中发现,人们做出的数字手势“1”到“5”中,手指伸出的个数与数字是一一对应的。在Leap Motion SDK中,代码hand.Fingers.Extended()可以通过识别手指的方向和手掌的方向来判断手指是屈曲还是伸直。利用这个代码,计算机就可以识别出伸出的手指个数,然后利用if语句来执行各种手势条件下的命令。以“下雨”为例,游戏中预先利用Particle System创建了代表小雨、中雨、大雨的三个Prefab,这些Prefab分别模拟了小雨、中雨、大雨的降雨。玩家做出不同的手势后体感游戏开发,if语句对其手势进行判断,最终调用不同的Prefab来创建不同天气等级下的环境。例如,当玩家做出“数字3”这个手势时,if语句中的条件语句hand.Fingers.Extended()= =3为真体感游戏开发,其他所有条件语句hand.Fingers.Extended()= =1均为假。此时Unity开始执行hand.Fingers.Extended()= =3条件下的执行语句。在这个if语句的作用下,Unity调用了大雨Prefab,模拟大雨的效果。手势识别装置除了上述功能外,还可以识别画圈、点击等手势。气象科普游戏利用这些手势代替鼠标操作,丰富了游戏玩法。
2.3. 增强现实设计模块
增强现实技术利用摄像头实时识别预先设定的图像,计算出图像的位置和角度,在图片上(或其他位置)生成相应的模型或动画,最后将虚拟图像与现实图像叠加,达到虚拟世界与现实世界相结合的目的。近年来,利用增强现实技术的游戏在市场上逐渐增多。例如,肯德基在2014年世界杯期间推出了一款增强现实游戏《肯德基K球吧》,该游戏利用AR技术,手机摄像头识别印在卡片上的图案,在手机上实时生成球门、草皮等比赛场景,玩家可以在手机上滑动手指送出小球,并与手机生成的屏幕进行互动。气象科普游戏可以利用增强现实技术通过摄像头定位人物位置,实时生成玩家身边的天气环境,给玩家带来非常丰富的科普体验。
2.4. 基于Arduino的触觉触发装置
Arduino是气象科学游戏中的输出设备游戏评测,Arduino可以通过拼接不同的模块来实现不同的功能,Arduino轻巧多样,价格低廉,非常有利于推动气象科学游戏的普及。Uniduino是Unity Asset Store中出售的一个包,Uniduino是Unity+Arduino,将Unity和Arduino结合在一起。气象科学游戏利用Uniduino实现了Arduino实时控制的功能。以有风等级为例,使用L9110风扇模块,安装在Arduino UNO板上,玩家可以通过手势识别设备,选择风等级,然后Unity会向Arduino发送相应的指令,L9110风扇模块接收到指令后,按照相应的速度转动,让玩家感受到风,从而增强玩家的沉浸感和多感官体验。
3. 结论
多元化、多感官、互动性新颖的气象科普方式是未来的发展趋势。利用体感互动技术与设备,将原本枯燥的气象科普知识与游戏相结合,提高气象科普方式的互动性和趣味性,将教育性与娱乐性相结合,必将有利于更广泛、更深入地普及气象知识。在未来气象科普游戏的发展中,将加入更多的感官元素,让人们更直观地体验。相信不久的将来,气象科普体感游戏将在各大气象科普展馆普及,改变以往单调的气象科普方式。