劉 楊
(1.同濟(jì)大學(xué) 上海200092;2.天津生態(tài)城產(chǎn)業(yè)園運(yùn)營(yíng)管理有限公司 天津300467)
基于Unity和Leap M otion的國(guó)家動(dòng)漫園虛擬漫游的研究與實(shí)現(xiàn)
劉 楊1,2
(1.同濟(jì)大學(xué) 上海200092;2.天津生態(tài)城產(chǎn)業(yè)園運(yùn)營(yíng)管理有限公司 天津300467)
近年來(lái),利用Unity開(kāi)發(fā)的Android、iOS、Xbox等不同類型的平臺(tái)游戲發(fā)展迅猛,已成為帶動(dòng)游戲行業(yè)發(fā)展的新生力量。Leap Motion的出現(xiàn),不僅改變了游戲世界的操控方式,也改變了許多產(chǎn)業(yè)的應(yīng)用方式。以Unity為開(kāi)發(fā)工具,利用Leap Motion硬件并結(jié)合C#腳本語(yǔ)言,開(kāi)發(fā)了國(guó)家動(dòng)漫園虛擬漫游應(yīng)用程序,使用戶足不出戶就能在國(guó)家動(dòng)漫園里進(jìn)行三維空間漫游,增添了用戶的體驗(yàn)樂(lè)趣。
Unity Leap Motion 虛擬漫游 手勢(shì)控制
隨著虛擬現(xiàn)實(shí)交互技術(shù)的飛速發(fā)展,虛擬漫游的開(kāi)發(fā)變得如火如荼。全球不少知名公司開(kāi)發(fā)了 3D引擎,如美國(guó)公司開(kāi)發(fā)的 Unreal Engineer、德國(guó)公司開(kāi)發(fā)的 CryENGINE等,不僅功能強(qiáng)大,而且畫面效果突出,受到不少開(kāi)發(fā)人員的喜愛(ài)。本文以國(guó)家動(dòng)漫園虛擬漫游為研究對(duì)象,借助Unity和目前最流行、最熱門的 Leap Motion整合開(kāi)發(fā)應(yīng)用程序。Unity引擎不僅支持游戲創(chuàng)作,還可通過(guò)插件或者二次開(kāi)發(fā)支持各種交互設(shè)備,如 Kinect、Leap Motion等。通過(guò)這些交互設(shè)備,可以讓用戶獲得更逼真、更生動(dòng)的虛擬互動(dòng)體驗(yàn)效果。
1.1 Unity
Unity是一款國(guó)際領(lǐng)先的專業(yè)游戲引擎,其編輯器可以在Windows和Mac OS X平臺(tái)上運(yùn)行,游戲作品可以直接一鍵發(fā)布到所有主流的游戲平臺(tái),一般無(wú)須任何修改,節(jié)省了大量的時(shí)間和人力。除了游戲開(kāi)發(fā)領(lǐng)域,Unity引擎還被廣泛應(yīng)用于航空航天、軍事國(guó)防、工業(yè)仿真、教育培訓(xùn)、建筑漫游等領(lǐng)域。
1.2 LeapM otion
Leap Motion手勢(shì)體感控制器(見(jiàn)圖1)是美國(guó)公司制造出的一種支持手和手指動(dòng)作作為輸入的計(jì)算機(jī)硬件感應(yīng)設(shè)備,類似于一個(gè)鼠標(biāo),但不需要手的接觸或觸摸。Leap Motion可以追蹤全部 10個(gè)手指,能達(dá)到百分之一毫米的精確程度,是Kinect的100多倍。該設(shè)備可以實(shí)現(xiàn)用手指瀏覽網(wǎng)頁(yè)、閱讀文章、玩切水果或割繩子等游戲。即使不使用任何畫筆,直接用手指也可以繪畫、涂鴉和設(shè)計(jì)。
圖1 Leap M otion手勢(shì)體感控制器Fig.1 Leap M otion gesture controller
1.3 CSharp(C#)語(yǔ)言
C#語(yǔ)言是一種強(qiáng)大的、面向?qū)ο蟮某绦蜷_(kāi)發(fā)語(yǔ)言,是在C、C++語(yǔ)言的基礎(chǔ)上重新構(gòu)造的。作為一個(gè)全新的編程語(yǔ)言,開(kāi)發(fā)人員可以使用 C#來(lái)開(kāi)發(fā)、實(shí)現(xiàn)多種功能、多種類型的應(yīng)用程序,如 Windows應(yīng)用程序、Web應(yīng)用程序、X游戲等。Unity可使用的程序語(yǔ)言有 3種,即 JavaScript、C#和 BooScript,目前 C#比較普及,相對(duì)的參考資料比較豐富。C#本身有很多強(qiáng)大的語(yǔ)言特性,總體來(lái)講,比 JavaScript更適合進(jìn)行深入開(kāi)發(fā),大多數(shù)的Unity第三方插件都是用C#編寫的。特別注意的是,Unity的C#語(yǔ)言是基于Mono的.Net平臺(tái)上運(yùn)行,Mono框架是.Net的跨平臺(tái)框架。
2.1 下載LeapMotion的Unity插件包
打開(kāi)Unity編輯器,單擊Window s-Asset Store,或者快捷鍵Ctrl+9打開(kāi)Asset Store對(duì)話框。通過(guò)搜索欄搜索到Leap Motion Examples,并單擊“Download”按鈕下載 Unity插件包,如圖2所示。
圖2 Asset Store對(duì)話框Fig.2 Dialog box of Asset Store
2.2 模型導(dǎo)入
通過(guò)3,ds Max、Maya或Softimage XSI等建模軟件制作出國(guó)家動(dòng)漫園的模型,并導(dǎo)出FBX格式,然后導(dǎo)入到Unity編輯器并調(diào)整布局、材質(zhì)等。特別注意的是場(chǎng)景中的模型面數(shù)會(huì)影響到 CPU的性能,所以應(yīng)盡量減少場(chǎng)景中的模型面數(shù)和材質(zhì)數(shù)量。
3.1 創(chuàng)建第一人稱角色控制器
導(dǎo)入Leap Motion Example插件和國(guó)家動(dòng)漫園模型后,新建場(chǎng)景,刪除Main Camera并添加First Controller,如圖3所示,這樣即可以通過(guò)第一人稱角色控制器的視角來(lái)進(jìn)行漫游。
圖3 創(chuàng)建第一人稱控制器Fig.3 Creating a first person controller
3.2 第一人稱角色控制器的綁定
將 Project面板里的 LeapScripts文件夾下的 LeapManager.cs腳本文件附加到第一人稱角色控制器的子物體——Main Camera里,如圖4所示。
圖4 Leap M anager參數(shù)Fig.4 Leap M anager param eters
3.3 手勢(shì)感應(yīng)腳本的實(shí)現(xiàn)
新建C#腳本文件,重命名為Walk.cs,并綁定到First Controller物體,此腳本功能是讓用戶用手指控制人物在國(guó)家動(dòng)漫園中前、后、左、右任意方向的行走,腳本描述如下:
該代碼實(shí)現(xiàn)的功能是用 Leap Motion捕捉并識(shí)別用戶手指的運(yùn)動(dòng),實(shí)現(xiàn)人物的移動(dòng)。
3.4 發(fā)布PC平臺(tái)
最后一步是將已經(jīng)完成的國(guó)家動(dòng)漫園虛擬漫游發(fā)布到PC平臺(tái),并進(jìn)行測(cè)試。
單擊 File-Build Setting,打開(kāi)發(fā)布平臺(tái)對(duì)話框(見(jiàn)圖 5)。點(diǎn)擊Add Current添加場(chǎng)景,設(shè)置完就可以單擊“Build”按鈕進(jìn)行發(fā)布。
特別注意的是,發(fā)布后的文件夾里面必須有4個(gè)DLL文件(見(jiàn)圖6),否則無(wú)法使用Leap Motion控制器控制應(yīng)用程序。
圖5 對(duì)話框Fig.5 Dialog box of Build Setting
圖6 發(fā)布成功后的應(yīng)用程序文件夾Fig.6 Folder of the successfully released app lication program
虛擬現(xiàn)實(shí)是交互設(shè)計(jì)中一個(gè)令人興奮的領(lǐng)域。在用戶和計(jì)算機(jī)的交互中,鍵盤和鼠標(biāo)是目前最常用的工具,但對(duì)于三維空間來(lái)說(shuō),它們并不適合。本文借助 Leap Motion控制器,并利用 Unity技術(shù)與 C#腳本的結(jié)合,實(shí)現(xiàn)了通過(guò)幾根手指控制國(guó)家動(dòng)漫園虛擬漫游角色的一種新技術(shù),不僅功能更加完善,而且人機(jī)界面更加友好?!?/p>
[1] Unity Technologies. Unity 4.x 從入門到精通[M]. 北京:中國(guó)鐵道出版社,2013.
[2] 金璽曾. Unity 3,D手機(jī)游戲開(kāi)發(fā)[M]. 北京:清華大學(xué)出版社,2013.
[3] Leap Motion開(kāi)發(fā)文檔[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