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

        ?

        基于U3D和kinect1.0月光下舞蹈互動游戲的設(shè)計(jì)與實(shí)現(xiàn)

        2017-02-25 07:21:36高賢強(qiáng)
        關(guān)鍵詞:體感鍵盤動畫

        王 濤,高賢強(qiáng)

        (1.西安航空學(xué)院 教務(wù)處,陜西 西安 710077;2.塔里木大學(xué) 信息工程學(xué)院,新疆 阿拉爾 843300)

        基于U3D和kinect1.0月光下舞蹈互動游戲的設(shè)計(jì)與實(shí)現(xiàn)

        王 濤1,高賢強(qiáng)2

        (1.西安航空學(xué)院 教務(wù)處,陜西 西安 710077;2.塔里木大學(xué) 信息工程學(xué)院,新疆 阿拉爾 843300)

        傳統(tǒng)的游戲設(shè)備缺乏軀體活動,體感設(shè)備kinect的出現(xiàn)解決了這一問題。通過kinect1.0制作體感識別模塊KinectSuperMario;通過untiy3D中U2D制作“月光下舞蹈的游戲”模塊MoonLight;通過體感識別模塊發(fā)送系統(tǒng)鍵盤和鼠標(biāo)消息對游戲進(jìn)行控制,闡釋了“月光下舞蹈的游戲”模塊功能、環(huán)境需求、游戲的開發(fā)流程、測試結(jié)果等。

        體感設(shè)備;kinect;unity3D;月光下舞蹈的游戲

        0 引言

        Unity3D是由Unity Technologies開發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具[1],是一個(gè)全面整合的專業(yè)游戲引擎,開發(fā)游戲簡單快捷,效果逼真。微軟推出的體感設(shè)備kinect則打破了游戲中人和電腦交互的傳統(tǒng)模式,僅通過肢體語言和聲音就可以實(shí)現(xiàn)用戶的輸入。

        本文將兩者結(jié)合開發(fā)的游戲“月光下的舞蹈”介紹給讀者,并從游戲的原理、功能、流程等方面做了闡釋。

        1 月光下的舞蹈體感游戲的設(shè)計(jì)

        1.1 游戲的原理

        該系統(tǒng)將海豚、鯨魚、鯊魚、企鵝、海豹這五種海洋動物的捕食、嬉戲、沖浪、賣萌等高清視頻畫面投影到墻上,通過kinect 1.0傳感器采集人物的各種動作,以人的控制動作為指令控制游戲,互動程序采用VS2012 C#開發(fā)[2-3]。原理見圖1。

        1.2 游戲的功能需求

        從海豚、鯨魚、鯊魚、企鵝、海豹五種海洋動物相關(guān)高清視頻中提取它們捕食、嬉戲、沖浪、賣萌等精彩畫面,制作體感互動操作界面,體感者可根據(jù)操作界面提示選擇調(diào)取相關(guān)精彩畫面。如果30秒內(nèi)無人物被kinect檢測到,返回到游戲主界面,開始隨機(jī)播放各種動物動畫。游戲界面設(shè)置:月光下舞蹈之窗制作成動態(tài)界面作為游戲主界面,二級界面分海豚、鯨魚、鯊魚、企鵝、海豹五個(gè)動態(tài)界面,互動過程中由二級界面進(jìn)入相關(guān)視頻動態(tài)(動畫幀調(diào)取)界面,并匹配合適背景音樂。游戲交互動作的設(shè)定:通過程序識別人體簡單動作,如擺左手或擺右手等,實(shí)現(xiàn)一級、二級到視頻幀序列的切換。

        2 游戲流程的開發(fā)

        啟動游戲后,進(jìn)入游戲主界面并開始播放動畫。當(dāng)kinect檢測到有人時(shí),游戲停止播放動畫,返回游戲主界面。當(dāng)人物做動作一:胸前揮動右手,游戲界面向“左方向”切換游戲主題;當(dāng)人物做動作二:胸前揮動左手,游戲界面向“右方向”切換游戲主題;當(dāng)人物做動作三:抬起右手超過頭頂時(shí),游戲根據(jù)當(dāng)前選擇的游戲主題隨機(jī)播放相關(guān)的視頻;當(dāng)人物做動作四:抬起左手超過頭頂時(shí),由當(dāng)前的游戲主題視頻返回游戲主界面,整個(gè)游戲流程如圖2所示。

        圖2 游戲的流程圖

        3 游戲開發(fā)中關(guān)鍵技術(shù)介紹

        本游戲開發(fā)分為兩個(gè)部分:基于WPF的kinect1.0體感識別程序KinectSuperMario的開發(fā)和基于U3D游戲MoonLight的開發(fā),兩個(gè)模塊通過在KinectSuperMario中增加鍵盤模擬消息進(jìn)行交互控制。本文所寫的KinectSuperMario是一個(gè)萬能的模塊,只需要增加新的動作識別函數(shù)和模擬鍵盤消息,就可以體感控制windows上的所有應(yīng)用程序。

        3.1 基于WPF的kinect1.0體感識別程序KinectSuperMario

        3.1.1 該模塊整體開發(fā)的流程

        該程序模塊使用WPF框架,整個(gè)交互系統(tǒng)的流程為:先完成Kinect的初始化工作并啟動設(shè)備,然后獲取骨骼和語音數(shù)據(jù)[4-5];其次,在空間位置中持續(xù)追蹤游戲玩家的動作,并根據(jù)產(chǎn)生的數(shù)據(jù)來判斷玩家是否滿足四種動作中的一種。如果滿足則模擬鍵盤發(fā)送對應(yīng)的鍵盤消息,該消息會被U3D程序的接口捕獲,并進(jìn)行相應(yīng)處理。

        3.1.2 程序之間消息接口

        此處以“胸前擺左手”消息交互為例,其代碼為:

        if(!isBackGestureActive &&!isForwardGestureActive){isBackGestureActive=true;

        System.Threading.Thread.Sleep(300);//停秒調(diào)節(jié)動作識別的頻率單位毫秒

        Counttime3=0;Counttime4=0;System.Windows.Forms.SendKeys.SendWait(“{A}”);}}。其中函數(shù)System.Windows.Forms.SendKeys.SendWait(“{A}”)為模擬人按下鍵盤中的“A”鍵,用于和U3D游戲模塊預(yù)留“接口”進(jìn)行通信來完成游戲功能。該“體感識別程序”的效果見圖3。

        3.1.3 體感識別KinectSuperMario中的體感識別代碼

        在KinectGestures中實(shí)現(xiàn)四個(gè)動作的識別,在程序中定義了四個(gè)枚舉變量(isWaveRightHand,isWaveLeftHand,isRaiseRightHand和isRaiseLeftHand)來表示四個(gè)動作,此處以游戲中“胸前揮動右手”為例,其代碼如下:

        if(s.Joints[JointType.HandRight].Position.Y>s.Joints[JointType.ElbowRight].Position.Y){

        if(s.Joints[JointType.HandRight].Position.X>s.Joints[JointType.ElbowRight].Position.X)

        {GestureStepRight=1;}}

        mygest=Gestures.WaveRightHand;}}}

        3.2 基于U3D的游戲程序

        3.2.1 游戲邏輯的處理

        以往游戲引擎是配合使用C++、C#或JAVA來進(jìn)行開發(fā),其在邏輯、聲音、視頻播放、UI界面的處理過于復(fù)雜,且效果不好,U3D的出現(xiàn)很好地解決了這個(gè)問題。本文為了簡化邏輯,將游戲分為6個(gè)子模塊(即6個(gè)場景),分別為:游戲主界面、海豚主題模塊、鯨魚主題模塊、鯊魚主題模塊、企鵝主題模塊和海豹主題模塊,讓各個(gè)主題模塊和游戲主界面調(diào)用交互,避免了在一個(gè).C文件中復(fù)雜的完成整個(gè)游戲邏輯功能[6],U3D提供了場景切換函數(shù)為Application.LoadLevel(“three”),該函數(shù)的意思是加載一個(gè)新的場景“three”,并銷毀當(dāng)前運(yùn)行的場景。

        3.2.2 游戲中視頻的播放

        視頻播放的主函數(shù)為void OnGUI(){GetComponent().pitch=1f;//得到音效組件,設(shè)置聲音播放的頻率 GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),movTexture[videoRand1],ScaleMode.StretchToFill);}//在紋理上繪制電影

        3.2.3 播放動畫幀

        游戲主界面效果是采用播放動畫幀的方式來處理,為了靈活播放圖片幀,本程序中寫了一個(gè)播放動畫幀的類[7]:

        class FrameAnimation {private float fps=15f;private Rect drawPos;private float time=0;

        public void DrawFrameAnimation(Texture[]frameTex){}//默認(rèn)方式播放圖片

        public void DrawFrameAnimation1(Texture[]frameTex,int start,int end)//播放指定數(shù)目的圖片

        public FrameAnimation(Rect drawPos,float fps)//加參數(shù)的構(gòu)造函數(shù)}

        3.2.4 體感識別程序KinectSuperMario和U3D游戲程序MoonLight接口

        為了和kinect體感識別程序KinectSuperMario進(jìn)行交互,在該程序中預(yù)留了6個(gè)鍵盤接收接口,分別為:按a鍵往前播放;按b鍵往后播放;按c鍵進(jìn)入某個(gè)場景;按d鍵退出某個(gè)場景;按e鍵表示有人進(jìn)入;按f表示人物離開。接收消息函數(shù)為Input.GetKeyDown (“a”),它的意思是接收用戶的鍵盤輸入值‘a(chǎn)’[8]。而kinect體感識別程序發(fā)送消息函數(shù)為:System.Windows.Forms.SendKeys.SendWait。

        3.2.5 MoonLight中每個(gè)主題模塊的處理效果

        對于每個(gè)主題,都精選了5個(gè)以上的720P視頻片段/2分鐘,并保證主界面進(jìn)入每個(gè)主題時(shí)都不會播放相同的視頻(即隨機(jī)播放視頻),且每個(gè)視頻片段都配置不同的音效,采用聲音切片AudioClip類,播放函數(shù)為PlayClipAtPoint[9],該“U3D游戲程序MoonLight”的效果見圖4。

        4 搭建環(huán)境所需設(shè)備和游戲測試結(jié)果

        4.1 系統(tǒng)主要設(shè)備配置和技術(shù)參數(shù)

        該系統(tǒng)主要設(shè)備的配置和參數(shù):

        (1)計(jì)算機(jī):win7 旗艦版32位;處理器:i5 2.5-GHz或更快的處理器,4GB 內(nèi)存以上,DX11圖形適配器,160G硬盤或以上。

        (2)投影機(jī):4500流明,分辨率1024*768,視現(xiàn)場環(huán)境亮度而定。

        (3)游戲開發(fā)軟件為unity3D 4.6.3及以上版本。

        (4)顯卡的顯存必須要1G以上。

        (5)第一代Kinect for Windows v1和 Kinect SDK 1.8。

        (6)輔材:包括USB 2.0信號放大器,視頻信號放大器,室外屏蔽網(wǎng)線等。

        4.2 游戲的測試結(jié)果

        表1 測試結(jié)果統(tǒng)計(jì)

        *注:對該游戲進(jìn)行24小時(shí)測試,功能正常無宕機(jī)

        4.3 游戲的相關(guān)截圖

        5 游戲的部署

        對于一個(gè)嶄新的環(huán)境,部署如下:

        (1)首先確保WIN7系統(tǒng)所有的驅(qū)動都安裝成功[10],并安裝netframework4.5以上版本和KinectSDK-v1.8-Setup.exe;

        (2)安裝QuickTime_7.79.exe以上版本,用于unity3d視頻播放解碼;

        (3)安裝startup-delayer-v3.0b363.exe,之后把版本moonlight.exe和KinectSuperMario.exe制作為啟動快捷鍵方式,并將moonlight.exe和KinectSuperMario.exe的快捷鍵方式加入到startup-delayer-v3.0b363中,設(shè)置KinectSuperMario.exe延時(shí)啟動時(shí)間為1分30秒,moonlight.exe為2分10秒;

        (4)安裝Silverlight.exe包,目的是kinect設(shè)備驅(qū)動自會發(fā)現(xiàn)。

        至此,整個(gè)游戲的運(yùn)行環(huán)境搭建完畢,現(xiàn)場的效果見圖8。

        [1] 王濤. 人機(jī)交互多媒體教學(xué)系統(tǒng)淺析[J].西安航空學(xué)院學(xué)報(bào),2015,33(1):43-44.

        [2] 鄧見光,袁華強(qiáng). 基于游戲引擎的三維虛擬漫游系統(tǒng)實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(03):122-124.

        [3] 胡興中,吳彬,郭雪峰,等.Unity 4.x從入門到精通[M]. 北京:中國鐵道出版社,2013:32-35.

        [4] 杜釗君.基于體感傳感器的手勢識別及人機(jī)交互系統(tǒng)研究[D].武漢:武漢科技大學(xué),2013:21-24.

        [5] 晏浩. 基于kinect的三維多手指跟蹤算法及應(yīng)用[D].杭州:浙江大學(xué),2013:31-36.

        [6] 翁穎明.卓越游戲的誕生:游戲設(shè)計(jì)內(nèi)幕[M].北京:清華大學(xué)出版社,2010:55-60.

        [7] CREIGHTON R H.Unity3D Game Development by Example Beginner's Guide[M].Birmingham:Packt Publishing,2010:12-43.

        [8] 宣雨松.Unity3D游戲開發(fā)[M].北京:人民郵電出版社,2012:51-70.

        [9] 吳志達(dá).一個(gè)基于Unity3D游戲引擎的體感游戲研究與實(shí)現(xiàn)[D].廣州:中山大學(xué),2012:38-56.

        [10] 朱惠娟.基于Unity3D的虛擬漫游系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(10):41-52.

        [責(zé)任編輯、校對:東 艷]

        Design and Implementation of Interactive Moonlight Dance Game Based on the U3D and Kinect1.0

        WANGTao1,GAOXian-qiang2

        (1.Office of Academic Affairs,Xi'an Aeronautical University,Xi'an 710077,China; 2.College of Information Engineering,Tarim University,Alar 843300,China)

        Traditional game devices lack body movements,and the appearance kinect solves the problem.Somatosensory identification module KinectSuperMario is produced through kinect1.0,"Moonlight"produced through U2D of untiy3D,and game is controlled through somatosensory identification module by sending system keyboard and mouse messages.The paper expounds the design and development flow,module function, environment demand,and test result of the"interactive moonlight dance software".

        somatosensory devices;kinect;unity3D;interactive moonlight dance

        2016-12-21

        王濤(1984-),男,陜西西安人,講師,主要從事圖形圖像處理研究和U3D游戲開發(fā)。

        TP311.52

        A

        1008-9233(2017)01-0068-05

        猜你喜歡
        體感鍵盤動畫
        你知道手機(jī)撥號鍵盤上為什么要有*和#嗎?
        體感交互技術(shù)在腦卒中康復(fù)中的應(yīng)用
        鍵盤貓
        做個(gè)動畫給你看
        動畫發(fā)展史
        人體體感感知機(jī)械手設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:20
        我的動畫夢
        文苑(2019年22期)2019-12-07 05:28:56
        Cлово месяца
        中國(俄文)(2019年6期)2019-11-22 14:41:58
        ikbc R300機(jī)械鍵盤
        非觸控式的體感機(jī)械臂交互控制系統(tǒng)研究
        電子制作(2017年13期)2017-12-15 09:00:05
        精品国产粉嫩内射白浆内射双马尾| 亚洲AV无码久久久久调教| 精品久久一区二区av| 日本道免费一区二区三区日韩精品| 欧美放荡的少妇| 91呻吟丰满娇喘国产区| 亚洲一区二区三区在线更新| 日产精品高潮一区二区三区5月| 亚洲av高清在线一区二区三区| 欧洲中文字幕| 成人一区二区三区蜜桃| 99re66在线观看精品免费| 日本公妇在线观看中文版| 亚洲国产香蕉视频欧美| 日本在线一区二区三区视频| 在线中文字幕乱码英文字幕正常 | 国产小视频在线看不卡| 日本爽快片18禁免费看| 91久久国产自产拍夜夜嗨| 蜜桃在线视频一区二区| 日本另类αv欧美另类aⅴ| 老熟女毛茸茸浓毛| 亚洲人成伊人成综合网中文| 国产av一区二区三区性入口| 97在线观看| 国产性一交一乱一伦一色一情| 熟妇人妻精品一区二区视频| 亚洲熟妇自偷自拍另欧美| 欧美另类视频在线| 少妇激情一区二区三区| 大肉大捧一进一出好爽视频动漫| 竹菊影视欧美日韩一区二区三区四区五区 | 亚洲日韩中文字幕在线播放| 亚洲熟妇av一区二区三区hd| 成年站免费网站看v片在线| 国产精品深田咏美一区二区| 黑人一区二区三区高清视频| 国产精品国产三级第一集 | 精品性影院一区二区三区内射| 亚洲素人日韩av中文字幕| 色欲色香天天天综合网www|