正文 基於Leap Motion 和Unity3D 的體感遊戲開發與集成

類別:都市言情 作者:電腦知識與技術(2015年13期) 本章:正文 基於Leap Motion 和Unity3D 的體感遊戲開發與集成

    基於Leap Motion 和Unity3D 的體感遊戲開發與集成

    多媒體技術及其應用

    作者:袁田琛 胡新榮 趙儉輝

    摘要:隨著人機交互技術的發展,體感技術是當今遊戲開發領域中的一個重要研究方向。Leap Motion是帶有兩個攝像頭和其他傳感器的體感控製器,能高精度實時檢測手掌、手指的位置和速度等信息,為體感遊戲應用開發提供了一種有效途徑。本文以Unity3D遊戲引擎開發第三人稱射擊遊戲為例,采用Leap Motion控製器對遊戲中的角色進行操作控製,包括用手勢控製遊戲角色的行走、瞄準、射擊以及攝像機鏡頭的全方位移動等動作控製,擺脫了傳統的鍵盤和鼠標操作,實現了Leap Motion控製器和Unity3D遊戲引擎的交互式體感遊戲的開發與集成。

    關鍵詞: 人機交互;Leap Motion控製器;Unity3D;體感遊戲

    中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2015)13-0201-04

    遊戲和電腦動畫是多媒體和虛擬現實技術中一個迅速發展的領域。市場調查發現,近年來,遊戲在大眾娛樂中所占的比例越來越大,其中手機遊戲占有很大部分,其次是電腦中的網絡遊戲和單機遊戲。然而,這些遊戲在創造了很多經濟價值和社會價值的同時也出現很多不利的一麵,在這些遊戲中,多數的設計需要遊戲者沉溺其中,並投入很多時間和金錢,這在很大程度上影響了遊戲者的正常生活和身體健康,因此利弊摻半的手機遊戲設計和開發是許多人不讚成的。隨著人機交互技術的發展,人機交互向著多元化、多功能的方向邁進,如語音識別、手勢識別等更加接近人的自然行為將成為未來遊戲發展的方向[1]。

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

    Unity3D不僅是一款單純的遊戲引擎,而且是涉及多種不同領域的一個跨平台的三維遊戲與虛擬現實開發工具,該工具從一開始就被設計成易於使用的產品,包括用戶界麵、支持多腳本語言以及強大的物理引擎等特點,這些讓Unity3D成為深受廣大虛擬現實工程師歡迎的開發平台。Unity3D 支持眾多領域的3D交互開發,主要包括遊戲開發、增強現實、3D Web、建築、時裝、商品宣傳等,所有領域的開發都支持跨平台發布,能在很短時間內開發出需要的產品,並且是最好的開發工具之一[4-5]。

    截止目前,國內還未見將Leap Motion和Unity3D結合起來進行應用研究與開發方麵的報道。本文以Unity3D遊戲引擎開發第三人稱射擊遊戲為例,采用Leap Motion控製器對遊戲中的角色進行操作控製,包括用手勢控製遊戲角色的行走、瞄準、射擊以及攝像機鏡頭的全方位移動等操控,從而擺脫鍵盤和鼠標操作,實現Unity3D遊戲引擎和Leap Motion控製器的一種交互式遊戲應用開發。首先介紹Leap Motion與Unity3D遊戲引擎集成方法和Unity3D遊戲場景、遊戲角色的建模過程;然後,闡述Leap Motion與Unity3D體感遊戲開發與集成步驟,最後給出相關的實驗結果。

    1 Leap Motion與Unity3D集成方法

    Leap Motion係統是可以檢測並跟蹤手掌、手指和類似手指的物體,而且該控製器能在高精確度和高跟蹤幀率下工作。這與Kinect將整個人視為控製器的設計理念有著本質上的區別。

    不論是精確地模擬隔空取物,還是實現科幻電影中用手勢去控製智能電腦、機器人的操作,無一不展現其強大。從Leap Motion設備中展現出的體感控製技術更為精準、穩定,基於Leap Motion的新應用和遊戲在App Home上動態更新發布。

    隨著電腦的普及,人們對娛樂休閑的需求一直在增加,PC遊戲的發展速度也不斷加快,不少遊戲開發平台應運而生。開發者渴望一款高效便捷的遊戲引擎,Unity3D的及時出現滿足了他們的期盼。功能完備的編輯器,更安全的編程方式,可實時編輯查看效果的功能,代碼驅動的開發模式,良好的生態圈等使它成為了遊戲開發平台中的佼佼者。

    關於應用程序編程接口(API: Application Program Interface),Leap Motion提供良好的開發環境和Unity3D遊戲引擎進行集成。Unity3D遊戲引擎能通過Leap開發包(SDK: Software Development Kit)中提供的API與Leap Motion集成,Leap SDK支持 C++、C#、JavaScript 等程序設計語言,用Leap Motion控製器代替原有的鼠標和鍵盤,從而實現對Unity3D第三人稱射擊遊戲的體感控製。Leap SDK提供兩種API從Leap Motion服務中獲取追蹤數據,第一種是原生接口(Native Interface),第二種是網頁套接字(Web Socket)。原生接口能讓開發者創建新的Leap應用程序動態鏈接庫(DLL: Dynamic Link Library)。網頁套接字接口和JavaScript客戶端庫能方便便開發者創建基於Leap的應用程序[6]。

    本文采用的是原生接口,其API由動態鏈接庫(DLL)提供。該庫能連接到Leap Motion服務,並為應用程序提供追蹤數據,這使用C#和Java綁定鏈接。

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

    Unity3D遊戲場景、遊戲角色建模主要內容如下:(1)將Maya中設計好的3D模型以FBX格式導出,3D模型具體製作過程此略,FBX格式文件導出時需檢查法線是否正確、貼圖是否完整等。(2)在Unity3D中建立地形、導入模型並將其擺放到合適的位置,布置好燈光、陰影以及天空盒。(3) 添加遊戲角色、遊戲管理模塊、武器係統,進行相關設置。(4)添加第三人稱攝像機,以便對遊戲角色進行跟隨。(5)所有參與運動的模型需添加各自的腳本代碼並完成碰撞器的設置。

    這以Unity3D遊戲引擎開發一種第三人稱射擊遊戲為例,采用Unity3D遊戲引擎對遊戲場景及遊戲角色建模後,得到遊戲場景全局視圖,遊戲角色近景圖示。

    3 Leap Motion與Unity3D體感遊戲開發與集成

    當Leap Motion接入電腦的USB後,若采用Leap Motion作為人機交互設備,需要設置Leap Motion設備、修改遊戲角色腳本代碼、修改第三人稱攝像機腳本以及Leap Motion操作可視化等,這樣Leap Motion設備便可取代鼠標或鍵盤操作,從而借助Leap Motion體感設備用手勢實現遊戲角色的操控功能。為了實驗Leap Motion與Unity3D的融合,需要將Leap Motion與Unity3D進行集成並添加相應的腳本代碼。Leap Motion與Unity3D體感遊戲腳本開發與集成步驟闡述如下。

    步驟1:下載安裝Leap SDK

    Leap Motion提供了用於Unity3D的SDK,能使開發人員便捷地將Leap Motion設備集成到要開發的遊戲應用程序中。Leap SDK下載安裝成功後,需要檢測其是否連接有效,可在Leap Motion App Home中運行一個簡單的應用程序以檢測Leap Motion設備是否連接至電腦。

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

    在此步驟中,先查找SDK安裝目錄中關於Unity3D的examples文件夾,複製其assets目錄中的plugins文件夾,plugins文件夾中包含了Leap Motion設備接口的三個DLL文件,它們分別是leap.dll、leapCSharp.dll和leapCSharp.net3.5.dll,將plugins文件夾粘貼到Unity3D遊戲工程的assets文件夾中;再查找script文件夾中的leap文件夾,複製LeapUnityExtensions.cs並將其粘貼到plugins文件夾中。

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

    為了編製LeapInput.cs C#腳本代碼,這給出了圖6所示的Leap Motion三維XYZ坐標係和鼠標在屏幕中的XY坐標係。借助該圖中的兩個坐標係,可幫助我們理解作為主控製器的Leap Motion所實現的主要功能:

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


>>章節報錯<<

如果您喜歡,請把《電腦知識與技術(2015年13期)》,方便以後閱讀電腦知識與技術(2015年13期)正文 基於Leap Motion 和Unity3D 的體感遊戲開發與集成後的更新連載!
如果你對電腦知識與技術(2015年13期)正文 基於Leap Motion 和Unity3D 的體感遊戲開發與集成並對電腦知識與技術(2015年13期)章節有什建議或者評論,請後台發信息給管理員。