亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Leap Motion 和Unity3D 的體感游戲開發(fā)與集成

        2015-07-13 21:45:16袁田琛胡新榮趙儉輝
        電腦知識(shí)與技術(shù) 2015年13期
        關(guān)鍵詞:人機(jī)交互

        袁田琛 胡新榮 趙儉輝

        摘要:隨著人機(jī)交互技術(shù)的發(fā)展,體感技術(shù)是當(dāng)今游戲開發(fā)領(lǐng)域中的一個(gè)重要研究方向。Leap Motion是帶有兩個(gè)攝像頭和其他傳感器的體感控制器,能高精度實(shí)時(shí)檢測手掌、手指的位置和速度等信息,為體感游戲應(yīng)用開發(fā)提供了一種有效途徑。本文以Unity3D游戲引擎開發(fā)第三人稱射擊游戲?yàn)槔捎肔eap Motion控制器對(duì)游戲中的角色進(jìn)行操作控制,包括用手勢控制游戲角色的行走、瞄準(zhǔn)、射擊以及攝像機(jī)鏡頭的全方位移動(dòng)等動(dòng)作控制,擺脫了傳統(tǒng)的鍵盤和鼠標(biāo)操作,實(shí)現(xiàn)了Leap Motion控制器和Unity3D游戲引擎的交互式體感游戲的開發(fā)與集成。

        關(guān)鍵詞: 人機(jī)交互;Leap Motion控制器;Unity3D;體感游戲

        中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)13-0201-04

        游戲和電腦動(dòng)畫是多媒體和虛擬現(xiàn)實(shí)技術(shù)中一個(gè)迅速發(fā)展的領(lǐng)域。市場調(diào)查發(fā)現(xiàn),近年來,游戲在大眾娛樂中所占的比例越來越大,其中手機(jī)游戲占有很大部分,其次是電腦中的網(wǎng)絡(luò)游戲和單機(jī)游戲。然而,這些游戲在創(chuàng)造了很多經(jīng)濟(jì)價(jià)值和社會(huì)價(jià)值的同時(shí)也出現(xiàn)很多不利的一面,在這些游戲中,多數(shù)的設(shè)計(jì)需要游戲者沉溺其中,并投入很多時(shí)間和金錢,這在很大程度上影響了游戲者的正常生活和身體健康,因此利弊摻半的手機(jī)游戲設(shè)計(jì)和開發(fā)是許多人不贊成的。隨著人機(jī)交互技術(shù)的發(fā)展,人機(jī)交互向著多元化、多功能的方向邁進(jìn),如語音識(shí)別、手勢識(shí)別等更加接近人的自然行為將成為未來游戲發(fā)展的方向[1]。

        作為一種新穎的交互式設(shè)備,Leap公司于2013年推出了Leap Motion雙目體感攝像機(jī),它依賴于內(nèi)置雙目相機(jī)和紅外LED高精度地捕獲、跟蹤和分析手指和手的運(yùn)動(dòng),再通過軟件處理圖像數(shù)據(jù),將其轉(zhuǎn)化為手勢和觸摸事件。目前國內(nèi)展開的Leap Motion相關(guān)應(yīng)用研究及開發(fā)的數(shù)量較少。在應(yīng)用研究方面,陳童等人實(shí)現(xiàn)基于Leap Motion的中國古琴聲畫結(jié)合的交互設(shè)計(jì),通過基于虛擬現(xiàn)實(shí)設(shè)備與手勢識(shí)別技術(shù)的古琴音樂的虛擬演奏,真實(shí)表現(xiàn)了中國傳統(tǒng)音畫的意蘊(yùn)與氣韻,提供了更具視覺震撼力的古琴互動(dòng)體驗(yàn)[2]。Leap Motion的功能有點(diǎn)類似Kinect,它能在PC及Mac上通過手勢控制電腦,只需揮動(dòng)手指即可瀏覽網(wǎng)頁、閱讀文章、翻看照片及播放音樂。Leap Motion在體感游戲領(lǐng)域有著自身的獨(dú)特優(yōu)勢就是其高精度的手勢識(shí)別。人與電腦間的開闊空間,現(xiàn)已成為雙手和手指的舞臺(tái)。不論他們的每一次移動(dòng)多么細(xì)微,又或是多么大幅度,Leap Motion 控制器都能精確地追蹤,從技術(shù)上說,這就是一個(gè) 8 立方英尺的可交互式 3D 空間,深度體現(xiàn)了人機(jī)交互的理念。 正因?yàn)長eap Motion能高精度實(shí)時(shí)檢測、手掌、手指的位置和速度等信息,它為體感游戲應(yīng)用開發(fā)提供了一種有效的技術(shù)途徑[3]。

        Unity3D不僅是一款單純的游戲引擎,而且是涉及多種不同領(lǐng)域的一個(gè)跨平臺(tái)的三維游戲與虛擬現(xiàn)實(shí)開發(fā)工具,該工具從一開始就被設(shè)計(jì)成易于使用的產(chǎn)品,包括用戶界面、支持多腳本語言以及強(qiáng)大的物理引擎等特點(diǎn),這些讓Unity3D成為深受廣大虛擬現(xiàn)實(shí)工程師歡迎的開發(fā)平臺(tái)。Unity3D 支持眾多領(lǐng)域的3D交互開發(fā),主要包括游戲開發(fā)、增強(qiáng)現(xiàn)實(shí)、3D Web、建筑、時(shí)裝、商品宣傳等,所有領(lǐng)域的開發(fā)都支持跨平臺(tái)發(fā)布,能在很短時(shí)間內(nèi)開發(fā)出需要的產(chǎn)品,并且是最好的開發(fā)工具之一[4-5]。

        截止目前,國內(nèi)還未見將Leap Motion和Unity3D結(jié)合起來進(jìn)行應(yīng)用研究與開發(fā)方面的報(bào)道。本文以Unity3D游戲引擎開發(fā)第三人稱射擊游戲?yàn)槔?,采用Leap Motion控制器對(duì)游戲中的角色進(jìn)行操作控制,包括用手勢控制游戲角色的行走、瞄準(zhǔn)、射擊以及攝像機(jī)鏡頭的全方位移動(dòng)等操控,從而擺脫鍵盤和鼠標(biāo)操作,實(shí)現(xiàn)Unity3D游戲引擎和Leap Motion控制器的一種交互式游戲應(yīng)用開發(fā)。首先介紹Leap Motion與Unity3D游戲引擎集成方法和Unity3D游戲場景、游戲角色的建模過程;然后,闡述Leap Motion與Unity3D體感游戲開發(fā)與集成步驟,最后給出相關(guān)的實(shí)驗(yàn)結(jié)果。

        1 Leap Motion與Unity3D集成方法

        Leap Motion系統(tǒng)是可以檢測并跟蹤手掌、手指和類似手指的物體,而且該控制器能在高精確度和高跟蹤幀率下工作。這與Kinect將整個(gè)人視為控制器的設(shè)計(jì)理念有著本質(zhì)上的區(qū)別。

        不論是精確地模擬隔空取物,還是實(shí)現(xiàn)科幻電影中用手勢去控制智能電腦、機(jī)器人的操作,無一不展現(xiàn)其強(qiáng)大。從Leap Motion設(shè)備中展現(xiàn)出的體感控制技術(shù)更為精準(zhǔn)、穩(wěn)定,基于Leap Motion的新應(yīng)用和游戲在App Home上動(dòng)態(tài)更新發(fā)布。

        隨著電腦的普及,人們對(duì)娛樂休閑的需求一直在增加,PC游戲的發(fā)展速度也不斷加快,不少游戲開發(fā)平臺(tái)應(yīng)運(yùn)而生。開發(fā)者渴望一款高效便捷的游戲引擎,Unity3D的及時(shí)出現(xiàn)滿足了他們的期盼。功能完備的編輯器,更安全的編程方式,可實(shí)時(shí)編輯查看效果的功能,代碼驅(qū)動(dòng)的開發(fā)模式,良好的生態(tài)圈等使它成為了游戲開發(fā)平臺(tái)中的佼佼者。

        關(guān)于應(yīng)用程序編程接口(API: Application Program Interface),Leap Motion提供良好的開發(fā)環(huán)境和Unity3D游戲引擎進(jìn)行集成。Unity3D游戲引擎能通過Leap開發(fā)包(SDK: Software Development Kit)中提供的API與Leap Motion集成,Leap SDK支持 C++、C#、JavaScript 等程序設(shè)計(jì)語言,用Leap Motion控制器代替原有的鼠標(biāo)和鍵盤,從而實(shí)現(xiàn)對(duì)Unity3D第三人稱射擊游戲的體感控制。Leap SDK提供兩種API從Leap Motion服務(wù)中獲取追蹤數(shù)據(jù),第一種是原生接口(Native Interface),第二種是網(wǎng)頁套接字(Web Socket)。原生接口能讓開發(fā)者創(chuàng)建新的Leap應(yīng)用程序動(dòng)態(tài)鏈接庫(DLL: Dynamic Link Library)。網(wǎng)頁套接字接口和JavaScript客戶端庫能方便便開發(fā)者創(chuàng)建基于Leap的應(yīng)用程序[6]。

        本文采用的是原生接口,其API由動(dòng)態(tài)鏈接庫(DLL)提供。該庫能連接到Leap Motion服務(wù),并為應(yīng)用程序提供追蹤數(shù)據(jù),這里使用C#和Java綁定鏈接。

        2 Unity3D游戲場景、游戲角色建模

        Unity3D游戲場景、游戲角色建模主要內(nèi)容如下:(1)將Maya中設(shè)計(jì)好的3D模型以FBX格式導(dǎo)出,3D模型具體制作過程此略,F(xiàn)BX格式文件導(dǎo)出時(shí)需檢查法線是否正確、貼圖是否完整等。(2)在Unity3D中建立地形、導(dǎo)入模型并將其擺放到合適的位置,布置好燈光、陰影以及天空盒。(3) 添加游戲角色、游戲管理模塊、武器系統(tǒng),進(jìn)行相關(guān)設(shè)置。(4)添加第三人稱攝像機(jī),以便對(duì)游戲角色進(jìn)行跟隨。(5)所有參與運(yùn)動(dòng)的模型需添加各自的腳本代碼并完成碰撞器的設(shè)置。具體建模過程見圖1-圖3所示。

        這里以Unity3D游戲引擎開發(fā)一種第三人稱射擊游戲?yàn)槔捎肬nity3D游戲引擎對(duì)游戲場景及游戲角色建模后,得到游戲場景全局視圖如圖4所示,游戲角色近景圖如圖5所示。

        3 Leap Motion與Unity3D體感游戲開發(fā)與集成

        當(dāng)Leap Motion接入電腦的USB后,若采用Leap Motion作為人機(jī)交互設(shè)備,需要設(shè)置Leap Motion設(shè)備、修改游戲角色腳本代碼、修改第三人稱攝像機(jī)腳本以及Leap Motion操作可視化等,這樣Leap Motion設(shè)備便可取代鼠標(biāo)或鍵盤操作,從而借助Leap Motion體感設(shè)備用手勢實(shí)現(xiàn)游戲角色的操控功能。為了實(shí)驗(yàn)Leap Motion與Unity3D的融合,需要將Leap Motion與Unity3D進(jìn)行集成并添加相應(yīng)的腳本代碼。Leap Motion與Unity3D體感游戲腳本開發(fā)與集成步驟闡述如下。

        步驟1:下載安裝Leap SDK

        Leap Motion提供了用于Unity3D的SDK,能使開發(fā)人員便捷地將Leap Motion設(shè)備集成到要開發(fā)的游戲應(yīng)用程序中。Leap SDK下載安裝成功后,需要檢測其是否連接有效,可在Leap Motion App Home中運(yùn)行一個(gè)簡單的應(yīng)用程序以檢測Leap Motion設(shè)備是否連接至電腦。

        步驟2:添加支持Leap Motion的DLL文件

        在此步驟中,先查找SDK安裝目錄中關(guān)于Unity3D的examples文件夾,復(fù)制其assets目錄中的plugins文件夾,plugins文件夾中包含了Leap Motion設(shè)備接口的三個(gè)DLL文件,它們分別是leap.dll、leapCSharp.dll和leapCSharp.net3.5.dll,將plugins文件夾粘貼到Unity3D游戲工程的assets文件夾中;再查找script文件夾中的leap文件夾,復(fù)制LeapUnityExtensions.cs并將其粘貼到plugins文件夾中。

        步驟3:編寫LeapInput.cs C#腳本代碼

        為了編制LeapInput.cs C#腳本代碼,這里給出了圖6所示的Leap Motion三維XYZ坐標(biāo)系和鼠標(biāo)在屏幕中的XY坐標(biāo)系。借助該圖中的兩個(gè)坐標(biāo)系,可幫助我們理解作為主控制器的Leap Motion所實(shí)現(xiàn)的主要功能:

        (1) Leap Motion體感交互中的歸一化

        Leap Motion控制游戲角色行走動(dòng)作引入了交互盒類(Interaction Box),該類支持Leap Motion體感交互中的歸一化操作,即將手掌原始空間坐標(biāo)轉(zhuǎn)換為游戲角色中的相對(duì)位置等效值。從編程角度而言,就是用交互盒類描述Leap Motion視野中的物體運(yùn)動(dòng),將Leap Motion體感交互范圍中的坐標(biāo)歸一化到[0,1]區(qū)間范圍。具體來講,在LeapInput.cs C#腳本代碼中,若所設(shè)置的手掌消失范圍在[-0.5,+0.5]區(qū)間外,返回值需進(jìn)行換算,當(dāng)返回值小于-0.5時(shí)返回-1 ,大于+0.5返回+1,其余情況返回0。

        圖7是圖6中Leap Motion控制器X、Z軸所圍成的平面XZ直角坐標(biāo)系示意圖。在該圖XZ坐標(biāo)系中,若坐標(biāo)返回值valX=0、valZ=-1,那么游戲角色就向前移動(dòng)(即向Z軸負(fù)方向移動(dòng));若坐標(biāo)返回值valX=+1、valZ=-1,則游戲角色向右前方移動(dòng)。這樣,Leap Motion就可代替鍵盤的輸入行為,從而用Leap Motion控制游戲角色的行走。

        (2) Leap Motion對(duì)屏幕XY坐標(biāo)系中鼠標(biāo)移動(dòng)的支持

        為了控制第三人稱攝像機(jī),需要添加Leap Motion對(duì)屏幕XY坐標(biāo)系中鼠標(biāo)移動(dòng)的支持功能(鼠標(biāo)在屏幕中的XY坐標(biāo)系見圖6所示),它用于獲取手掌的位置、方向,因此游戲玩家觀察視角并非固定。移動(dòng)手掌游戲玩家便能觀察游戲場景中的上下左右四個(gè)方向。

        (3) Leap Motion手勢操控游戲角色

        借助Leap Motion設(shè)備手勢操控游戲角色中的瞄準(zhǔn)、射擊動(dòng)作。當(dāng)Leap Motion設(shè)備識(shí)別的手指數(shù)超過兩只時(shí)(如手指叉開),腳本代碼表示執(zhí)行開火動(dòng)作,當(dāng)然也可設(shè)計(jì)為其他手勢動(dòng)作。當(dāng)鼠標(biāo)X軸正偏移值大于0.5、負(fù)偏移值小于0.25時(shí),則開啟持續(xù)瞄準(zhǔn)模式,即表示槍的準(zhǔn)心縮小、攝像機(jī)觀察鏡頭放大一定倍數(shù)。

        若手離開Leap Motion設(shè)備識(shí)別范圍,則Leap Motion返回默認(rèn)軸信息,游戲角色返回初始設(shè)定的Idle動(dòng)畫狀態(tài)。

        步驟4:修改游戲角色控制Java腳本代碼

        Leap Motion捕捉手的位置如圖7所示X、Z軸的對(duì)應(yīng)表示。在此步驟中,將游戲角色與Leap Motion綁定以實(shí)現(xiàn)角色移動(dòng),將所規(guī)定的手勢(如瞄準(zhǔn)、開火等手勢動(dòng)作)與Leap Motion綁定。

        步驟5:添加Leap Motion關(guān)于第三人稱攝像機(jī)的Java腳本代碼

        此步若設(shè)置了Leap Motion開關(guān),則可用Leap Motion控制第三稱攝像機(jī)。當(dāng)游戲玩家處于無操作狀態(tài)時(shí),游戲角色將重置idle動(dòng)畫動(dòng)作行為。

        步驟6:Leap Motion操作可視化

        這是Leap Motion集成及程序開發(fā)的最后步驟,此步中需添加可視化虛擬面板及其腳本代碼,其主要目的是將Leap Motion操作可視化,操作游戲角色的各動(dòng)作都將顯示在可視化虛擬面板中。

        可視化虛擬面板見圖8所示。在圖9中,(a)圖是鼠標(biāo)X、Y軸可視化虛擬面板,該面板中央的手掌圖標(biāo)用于顯示第三人稱攝像機(jī)的上下左右擺動(dòng);(b)圖從左到右是Leap Motion鍵盤虛擬面板,分別表示游戲角色9個(gè)方向的運(yùn)動(dòng)(其中第五個(gè)為靜止?fàn)顟B(tài)或者手離開狀態(tài))。

        4 實(shí)驗(yàn)結(jié)果

        本文硬件實(shí)驗(yàn)環(huán)境為:Intel第三代酷睿i7-3612@2.1GHZ四核CPU,4GB內(nèi)存,NVIDIA GeForce 740M 2GB顯卡,Leap Motion體感控制器。本文使用的軟件開發(fā)工具為Unity3D 4.10,Autodesk Maya 2012, Adobe Photoshop CS6,MonoDevelp。軟件開發(fā)工具中,MonoDevelp是一種開源代碼開發(fā)環(huán)境,利用它可開發(fā)跨平臺(tái)的應(yīng)用程序。

        軟件硬件平臺(tái)搭建成功后,便可按前面所述開發(fā)與集成方案設(shè)計(jì)并實(shí)現(xiàn)Leap Motion與Unity3D融合的體感游戲,我們設(shè)計(jì)實(shí)現(xiàn)的一種Leap Motion融合Unity3D操控第三人稱射擊游戲的典型實(shí)驗(yàn)過程截圖見圖9所示。

        在圖9中,(a)圖表示手向前移動(dòng)、游戲角色前進(jìn);(b)圖表示手向后移動(dòng)、游戲角色后退;(c) 圖表示手向左和向右擺動(dòng),游戲角色執(zhí)行向左和向右移動(dòng)動(dòng)作,第三人稱攝像機(jī)隨之轉(zhuǎn)動(dòng);(d) 圖表示手壓低和抬高,第三人稱攝像機(jī)向下和向上擺動(dòng);(e) 圖表示手指叉開,Leap Mtion檢測到手指數(shù)大于2時(shí),執(zhí)行開火動(dòng)作;(f) 圖表示手離開Leap Motion設(shè)備,Leap Motion返回默認(rèn)軸信息,游戲角色返回初始設(shè)定的Idle動(dòng)畫狀態(tài)并循環(huán)。

        設(shè)備啟動(dòng)無異常,游戲場景數(shù)據(jù)讀取調(diào)用正常,游戲視角可以通過手部動(dòng)作來控制,游戲角色能正確執(zhí)行行走、瞄準(zhǔn)、開槍這些基本動(dòng)作。從圖9可以看出開發(fā)者借助Leap Motion能實(shí)現(xiàn)穩(wěn)定地控制Unity3D第三人稱射擊游戲,表明Leap Motion與Unity3D游戲的結(jié)合從技術(shù)上是可行的。

        在實(shí)驗(yàn)過程中,我們發(fā)現(xiàn)用手完成復(fù)雜的動(dòng)作并不是一件容易的事情,畢竟只有一只手在完成原來兩只手的鍵鼠操作。雖然Leap Motion能過濾細(xì)微的晃動(dòng),但是較久的保持手的懸空狀態(tài)難免會(huì)發(fā)生少量的操作失誤。

        5結(jié)束語

        本文完整闡述了融合Leap Motion體感控制器和Unity3D游戲引擎進(jìn)行體感游戲的開發(fā)與集成技術(shù)。Leap SDK能使開發(fā)者方便地建立游戲的實(shí)時(shí)手勢交互、創(chuàng)建出更多不同種類的游戲應(yīng)用程序或其他應(yīng)用程序。結(jié)果表明,采用Leap Motion與Unity3D游戲引擎相結(jié)合的方法進(jìn)行游戲集成與軟件應(yīng)用開發(fā)具有較高的應(yīng)用價(jià)值,對(duì)下一代體感游戲及其他虛擬現(xiàn)實(shí)應(yīng)用軟件開發(fā)提供了新的思路。

        參考文獻(xiàn):

        [1] 劉晉鋼, 劉衛(wèi)斌, 劉晉霞. Kinect與Unity3D數(shù)據(jù)整合技術(shù)在體感游戲中的應(yīng)用研究[J]. 電腦開發(fā)與應(yīng)用,2014, 27(11): 7-11.

        [2] 陳童, 王妍, 趙琦. 基于LeapMotion的中國古琴聲畫結(jié)合交互設(shè)計(jì)研究[J]. 文藝評(píng)論, 2014(9): 77-81.

        [3] 徐崇斌, 周明全, 沈俊辰,等. 一種基于Leap Motion的直觀體交互技術(shù)[J]. 電子與信息學(xué)報(bào), 2015, 37(2): 354-359.

        [4] 郭海新. Unity3D與HTML交互機(jī)理研究[J]. 煤炭技術(shù), 2011, 30(9): 228-229.

        [5] 曾勇. 基于Unity3D的挖掘機(jī)模擬訓(xùn)練系統(tǒng)研究[D]. 長安大學(xué), 2013.

        [6] Mischa Spiegelmock. Leap Motion Development Essentials. Published Packt Publishing Ltd., UK., 2013.

        猜你喜歡
        人機(jī)交互
        某型柴油機(jī)虛擬維修系統(tǒng)研究
        基于虛擬現(xiàn)實(shí)技術(shù)的九江城市交通事故模擬系統(tǒng)設(shè)計(jì)
        人機(jī)交互課程創(chuàng)新實(shí)驗(yàn)
        人形交互式服務(wù)機(jī)器人研究現(xiàn)狀及發(fā)展趨勢
        基于任務(wù)規(guī)劃的家庭仿真服務(wù)機(jī)器人的研究
        多點(diǎn)噪聲遠(yuǎn)程自動(dòng)采集系統(tǒng)設(shè)計(jì)
        基于智能手機(jī)的盲人語言應(yīng)用軟件的設(shè)計(jì)與開發(fā)
        基于Intel Realsense技術(shù)的感知展示系統(tǒng)的設(shè)計(jì)與開發(fā)
        一種靜態(tài)手勢數(shù)字識(shí)別的實(shí)現(xiàn)及應(yīng)用
        圖像處理耦合模板定位的答題卡識(shí)別研究與應(yīng)用
        99热这里只有精品69| 在线视频夫妻内射| 国产91精品高潮白浆喷水| 国产av激情舒服刺激| 亚洲综合色区另类av| 香蕉视频一级| 一区二区三区熟妇人妻18| 久久国产精品亚洲va麻豆| 欲求不満の人妻松下纱荣子| 熟妇人妻无乱码中文字幕| 亚洲精品理论电影在线观看| 精品久久免费一区二区三区四区 | 在线精品无码一区二区三区| 青青草在线成人免费视频| 国产精品高清国产三级国产av| 无码乱肉视频免费大全合集| a级毛片在线观看| 久久久久成人精品免费播放网站| 日本在线中文字幕一区| 国产av一区二区三区在线播放| 台湾佬中文网站| 伊人久久无码中文字幕| 国产精品亚洲A∨天堂| 美腿丝袜一区在线观看| 青青草成人免费在线视频| 久久天天躁狠狠躁夜夜躁2014| 国产综合激情在线亚洲第一页| 国产精品成人久久一区二区| 国产精品自拍午夜伦理福利| 黄片视频免费在线播放观看| 门卫又粗又大又长好爽| 精品人妻无码一区二区三区蜜桃一| 亚洲av日韩aⅴ无码电影| 国产精品中文字幕日韩精品| 国产高清av在线播放| 放荡的闷骚娇妻h| 日韩av在线不卡观看| 国产亚洲综合另类色专区| 国产午夜福利久久精品| 在线va免费看成| 国产精品丝袜在线不卡|