基于Unity和Leap M otion的国家动漫园虚拟漫游的研究与实现
2015-06-27刘杨
刘 杨
(1.同济大学 上海200092;2.天津生态城产业园运营管理有限公司 天津300467)
基于Unity和Leap M otion的国家动漫园虚拟漫游的研究与实现
刘 杨1,2
(1.同济大学 上海200092;2.天津生态城产业园运营管理有限公司 天津300467)
近年来,利用Unity开发的Android、iOS、Xbox等不同类型的平台游戏发展迅猛,已成为带动游戏行业发展的新生力量。Leap Motion的出现,不仅改变了游戏世界的操控方式,也改变了许多产业的应用方式。以Unity为开发工具,利用Leap Motion硬件并结合C#脚本语言,开发了国家动漫园虚拟漫游应用程序,使用户足不出户就能在国家动漫园里进行三维空间漫游,增添了用户的体验乐趣。
Unity Leap Motion 虚拟漫游 手势控制
0 引 言
随着虚拟现实交互技术的飞速发展,虚拟漫游的开发变得如火如荼。全球不少知名公司开发了 3D引擎,如美国公司开发的 Unreal Engineer、德国公司开发的 CryENGINE等,不仅功能强大,而且画面效果突出,受到不少开发人员的喜爱。本文以国家动漫园虚拟漫游为研究对象,借助Unity和目前最流行、最热门的 Leap Motion整合开发应用程序。Unity引擎不仅支持游戏创作,还可通过插件或者二次开发支持各种交互设备,如 Kinect、Leap Motion等。通过这些交互设备,可以让用户获得更逼真、更生动的虚拟互动体验效果。
1 开发环境
1.1 Unity
Unity是一款国际领先的专业游戏引擎,其编辑器可以在Windows和Mac OS X平台上运行,游戏作品可以直接一键发布到所有主流的游戏平台,一般无须任何修改,节省了大量的时间和人力。除了游戏开发领域,Unity引擎还被广泛应用于航空航天、军事国防、工业仿真、教育培训、建筑漫游等领域。
1.2 LeapM otion
Leap Motion手势体感控制器(见图1)是美国公司制造出的一种支持手和手指动作作为输入的计算机硬件感应设备,类似于一个鼠标,但不需要手的接触或触摸。Leap Motion可以追踪全部 10个手指,能达到百分之一毫米的精确程度,是Kinect的100多倍。该设备可以实现用手指浏览网页、阅读文章、玩切水果或割绳子等游戏。即使不使用任何画笔,直接用手指也可以绘画、涂鸦和设计。
图1 Leap M otion手势体感控制器Fig.1 Leap M otion gesture controller
1.3 CSharp(C#)语言
C#语言是一种强大的、面向对象的程序开发语言,是在C、C++语言的基础上重新构造的。作为一个全新的编程语言,开发人员可以使用 C#来开发、实现多种功能、多种类型的应用程序,如 Windows应用程序、Web应用程序、X游戏等。Unity可使用的程序语言有 3种,即 JavaScript、C#和 BooScript,目前 C#比较普及,相对的参考资料比较丰富。C#本身有很多强大的语言特性,总体来讲,比 JavaScript更适合进行深入开发,大多数的Unity第三方插件都是用C#编写的。特别注意的是,Unity的C#语言是基于Mono的.Net平台上运行,Mono框架是.Net的跨平台框架。
2 开发前准备
2.1 下载LeapMotion的Unity插件包
打开Unity编辑器,单击Window s-Asset Store,或者快捷键Ctrl+9打开Asset Store对话框。通过搜索栏搜索到Leap Motion Examples,并单击“Download”按钮下载 Unity插件包,如图2所示。
图2 Asset Store对话框Fig.2 Dialog box of Asset Store
2.2 模型导入
通过3,ds Max、Maya或Softimage XSI等建模软件制作出国家动漫园的模型,并导出FBX格式,然后导入到Unity编辑器并调整布局、材质等。特别注意的是场景中的模型面数会影响到 CPU的性能,所以应尽量减少场景中的模型面数和材质数量。
3 功能实现
3.1 创建第一人称角色控制器
导入Leap Motion Example插件和国家动漫园模型后,新建场景,删除Main Camera并添加First Controller,如图3所示,这样即可以通过第一人称角色控制器的视角来进行漫游。
图3 创建第一人称控制器Fig.3 Creating a first person controller
3.2 第一人称角色控制器的绑定
将 Project面板里的 LeapScripts文件夹下的 LeapManager.cs脚本文件附加到第一人称角色控制器的子物体——Main Camera里,如图4所示。
图4 Leap M anager参数Fig.4 Leap M anager param eters
3.3 手势感应脚本的实现
新建C#脚本文件,重命名为Walk.cs,并绑定到First Controller物体,此脚本功能是让用户用手指控制人物在国家动漫园中前、后、左、右任意方向的行走,脚本描述如下:
该代码实现的功能是用 Leap Motion捕捉并识别用户手指的运动,实现人物的移动。
3.4 发布PC平台
最后一步是将已经完成的国家动漫园虚拟漫游发布到PC平台,并进行测试。
单击 File-Build Setting,打开发布平台对话框(见图 5)。点击Add Current添加场景,设置完就可以单击“Build”按钮进行发布。
特别注意的是,发布后的文件夹里面必须有4个DLL文件(见图6),否则无法使用Leap Motion控制器控制应用程序。
图5 对话框Fig.5 Dialog box of Build Setting
图6 发布成功后的应用程序文件夹Fig.6 Folder of the successfully released app lication program
4 结 语
虚拟现实是交互设计中一个令人兴奋的领域。在用户和计算机的交互中,键盘和鼠标是目前最常用的工具,但对于三维空间来说,它们并不适合。本文借助 Leap Motion控制器,并利用 Unity技术与 C#脚本的结合,实现了通过几根手指控制国家动漫园虚拟漫游角色的一种新技术,不仅功能更加完善,而且人机界面更加友好。■
[1] Unity Technologies. Unity 4.x 从入门到精通[M]. 北京:中国铁道出版社,2013.
[2] 金玺曾. Unity 3,D手机游戏开发[M]. 北京:清华大学出版社,2013.
[3] Leap Motion开发文档[EB/OL]. http://www.leapmotion.com.
Research and Realization of Virtual Roam ing in National Animation Industry Park based on Unity and Leap M otion
LIU Yang1,2
(1. Tongji University,Shanghai 200092,China;2. Tianjin Eco-city Industry Parks Operation Management Co.,Ltd.,Tianjin 300467,China)
In recently years,fast grow ing Unity platform games,which are based on Android,iOS and Xbox etc,have become a new development engine for the game industry. Besides,the emergence of Leap Motion has not only changed ways of manipulation in the gam ing world,but also ways of industrial applications. Taking Unity as a development tool and Leap Motion hardware and C# scripting language as supporting means,this paper describes the development of a virtual roam ing application program,which enables 3-D roam ing in National Animation Industry Park and enriches visitors’ experience.
Unity;Leap Motion;virtual roam ing;gesture control
TP312
:A
:1006-8945(2015)03-0038-02
2015-02-16