刘金磊

同济大学,上海 201800

Leap Motion交互在民机上的应用

刘金磊

同济大学,上海 201800

近年来,随着用户体验概念的不断推广,人机交互的设计也在不断发展,但键盘鼠标依旧是目前人们操作电脑的主流方式。一方面在改进传统键盘鼠标的操控方式,比如触控操作的出现,让手指代替光标直接与屏幕接触;另一方面则又设法开创全新的人机交互方式,如手势操作、人脑控制等。硬件体感交互设备也在层出不穷,像微软的Kinect,任天堂的Wii,谷歌的Google Glass等,其中Leap Motion作为去年刚在市面上出售的硬件交互设备,承载着很多人的期待。所以,本文借助民机展示的应用平台来探索一下Leap Motion这个新的交互设备的实际应用,在提高其实用性的同时找出其交互方式上的优缺点,为其未来发展空间做一个评估。

Leap Motion;Unity3D;人机交互;展示系统

如果说微软Kinect 正在从游戏走向更广阔的应用天地,那幺Leap Motion 无疑是在把游戏中的“酷体验”做到极致。Leap Motion 的精髓在于,它不仅能够识别用户的粗放动作,还能侦测比较精细的肢体运动,几乎让人手和影像融为一体,通过手指运动,用户可以直接控制电脑,包括图片缩放、移动、旋转、指令操作、精准控制、隔空书写等,其精确度可以达到毫米级别。而在实际环境中,软硬件的良好配合能保证Leap Motion轻松“看到”用户的十个手指,为第三方应用开发者提供了一个充满想象力的创造空间。

1 Leap motion交互

1.1关键技术

Unity 3D虚拟现实技术:Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎,可以利用一些C#或JavaScript编写的脚本文件做开发,并支持3dsMax导入的fbx、obj等格式的模型,同时由于Leap Motion对C#语言的支持,使得Unity也可与Leap Motion进行交互,这使得Leap Motion的多平台特点得到了拓展和延伸。

3dsMax建模技术:该交互所使用的模型均由3dsMax制作,配合PhotoShop制作贴图文件。

Leap Motion 交互在民机中的应用主要通过基于Leap Motion操作的民机展示系统来实现。本系统的架构可以用MVC框架表示,如图1所示。

其中,模型为一些后台存储数据;视图即为Unity发布的不同平台的系统客户端,作为系统和用户的交互接口;控制器即为系统数据和前端窗口交互的工具,在本系统中有两种交互方式,一为鼠标操作的事件处理,二为Leap Motion的手势识别子系统。

1.2系统功能需求

根据系统架构需求中提出的功能模块划分,分别对各模块的功能需求进行了规范,如图2系统功能需求所示。Leap Motion飞机展示系统客户端作为系统和用户的交互接口,负责管理后台存储数据和调用场景内容的呈现。客户端通过Unity3D下的场景构建来实现,不同功能模块通过场景的切换来实现。

1.3系统架构设计

根据本系统需求分析的要求,采用系统分层体系架构的设计方式进行系统体系结构设计,分为前台表现层、交互接口层、后台逻辑资源层。

1)前台表现层。

系统前台表现层负责为系统外部用户提供交互入口和信息展示。

2)交互接口层。

系统接口层负责为系统功能模块内部或模块之间进行数据交换或业务逻辑控制等操作提供相应的接口。

3)后台逻辑资源层。

后台逻辑资源层负责为系统存储所有数据和封装所有的业务逻辑,实现各模块的功能与接口。

1.4系统实现

客户端方面主要通过Unity实现场景渲染和构建。脚本语言为JavaScript和C#,在MonoDevelop下编写,同时配合3dsMax制作模型,PhotoShop进行图片处理,制作UI和贴图等。

1.4.1模型动画

主界面中飞机模型一直按照路径在移动,实现方式为使用iTweenPath的插件绘制飞机行驶路径“flyIn”,并在flyIn.cs脚本中调用,实现飞机的飞行动画。iTweenPath绘制的路径如图3飞机行驶路径所示。

1.4.2数据读取

加载主界面前,需先读取用户设置数据,通过三个bool值变量即可读取PlayerPrefs中的数据:

boollanguage_en = PlayerPrefs. HasKey(“language_en”) && PlayerPrefs. GetInt(“language_en”) == 0 ? false : true;

boolbgmOn = PlayerPrefs.HasKey(“bgmOn”)&& PlayerPrefs.GetInt(“bgmOn”) == 0 ? false : true;

boolrightHand = PlayerPrefs. HasKey(“rightHand”) && PlayerPrefs. GetInt(“rightHand”) == 0 ? false : true;

2 结论

Leap Motion作为刚刚起步的交互设备,目前还没有得到非常普遍的推广,我认为主要原因一是缺少一个比较完善的应用,能发挥出其特长并且有良好的用户体验。现在的Leap Motion应用的用户体验做得不够好,没有一个能像鼠标或触摸屏操作一样让人觉得既方便快捷又直观的。二是硬件设备自身的识别技术有限,设备经常会受到光线等的干扰,使识别出现偏差。

[1]Leap Motion. Airspace应用商店[DB/OL]https:// airspace.leapmotion.com.

[2]宜雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012:1-334.

[3]冯海超.Leap改变世界的小野心[J].英才,2013(10):23.

[4]江于超.体感来势汹汹不一样的Leap motion[J].电脑迷,2013(11):32-33.

[5]乔岩.Leap能否革鼠标的命[N].中国计算机报,2013-03-11(2).

[6]唐澳,丁杰,王俊渊.交互享乐感应生活 Leap Motion人体感应控制器[J].移动信息, 2013(8):108-109.

[7]吴德新.从Kinect和Leap Motion谈体感的开发[EB/ OL].[2013-07-17].http://www.leiphone.com/d-gesturectrl-dev.html.

The application of Leap Motion in the interaction of civil aircraft

Liu Jinlei
TongjiUniversity,Shanghai 201800

With the spreading of the concept of User Experience,the design of Human-computer Interaction is developing at the same time. However, keyboard and mouse are still the most popular way of operation. On the one side, we are developing this operating way. For example, the emergence of “Touch”operation can let finger rather than mouse to touch the screen. On the other side, we are creating new Human-computer interactive way as well, including gesture operation, brain control and so on. Interactive hardware, such as Kinect in Microsoft, Wii in Nintendo and Goole Glass, has more and more types. Among them, Leap Motion, which was came out in the last year, is the most attractive one. The article is to explore some practical application of leap motion — a new interactive devices with the help of civil aircraft display platform .While in improving actually use and find out the interactive way on the advantages and disadvantages at the same time. And also make an assessment for the future development.

Leap Motion;Unity3D; Human-computer Interaction;Display System

TP3

A

1674-6708(2015)147-0063-02