劉 楊
(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 虛擬漫游 手勢控制
隨著虛擬現實交互技術的飛速發展,虛擬漫游的開發變得如火如荼。全球不少知名公司開發了 3D引擎,如美國公司開發的 Unreal Engineer、德國公司開發的 CryENGINE等,不僅功能強大,而且畫面效果突出,受到不少開發人員的喜愛。本文以國家動漫園虛擬漫游為研究對象,借助Unity和目前最流行、最熱門的 Leap Motion整合開發應用程序。Unity引擎不僅支持游戲創作,還可通過插件或者二次開發支持各種交互設備,如 Kinect、Leap Motion等。通過這些交互設備,可以讓用戶獲得更逼真、更生動的虛擬互動體驗效果。
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.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.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
虛擬現實是交互設計中一個令人興奮的領域。在用戶和計算機的交互中,鍵盤和鼠標是目前最常用的工具,但對于三維空間來說,它們并不適合。本文借助 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