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

        ?

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

        2017-02-25 07:21:36高賢強(qiáng)
        關(guān)鍵詞:動(dòng)畫界面程序

        王 濤,高賢強(qiáng)

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

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

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

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

        傳統(tǒng)的游戲設(shè)備缺乏軀體活動(dòng),體感設(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í)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺的綜合型游戲開發(fā)工具[1],是一個(gè)全面整合的專業(yè)游戲引擎,開發(fā)游戲簡單快捷,效果逼真。微軟推出的體感設(shè)備kinect則打破了游戲中人和電腦交互的傳統(tǒng)模式,僅通過肢體語言和聲音就可以實(shí)現(xiàn)用戶的輸入。

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

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

        1.1 游戲的原理

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

        1.2 游戲的功能需求

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

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

        啟動(dòng)游戲后,進(jìn)入游戲主界面并開始播放動(dòng)畫。當(dāng)kinect檢測到有人時(shí),游戲停止播放動(dòng)畫,返回游戲主界面。當(dāng)人物做動(dòng)作一:胸前揮動(dòng)右手,游戲界面向“左方向”切換游戲主題;當(dāng)人物做動(dòng)作二:胸前揮動(dòng)左手,游戲界面向“右方向”切換游戲主題;當(dāng)人物做動(dòng)作三:抬起右手超過頭頂時(shí),游戲根據(jù)當(dāng)前選擇的游戲主題隨機(jī)播放相關(guān)的視頻;當(dāng)人物做動(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è)萬能的模塊,只需要增加新的動(dòng)作識別函數(shù)和模擬鍵盤消息,就可以體感控制windows上的所有應(yīng)用程序。

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

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

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

        3.1.2 程序之間消息接口

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

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

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

        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è)動(dòng)作的識別,在程序中定義了四個(gè)枚舉變量(isWaveRightHand,isWaveLeftHand,isRaiseRightHand和isRaiseLeftHand)來表示四個(gè)動(dòng)作,此處以游戲中“胸前揮動(dòng)右手”為例,其代碼如下:

        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 播放動(dòng)畫幀

        游戲主界面效果是采用播放動(dòng)畫幀的方式來處理,為了靈活播放圖片幀,本程序中寫了一個(gè)播放動(dòng)畫幀的類[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í)都不會(huì)播放相同的視頻(即隨機(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ū)動(dòng)都安裝成功[10],并安裝netframework4.5以上版本和KinectSDK-v1.8-Setup.exe;

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

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

        (4)安裝Silverlight.exe包,目的是kinect設(shè)備驅(qū)動(dòng)自會(huì)發(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

        猜你喜歡
        動(dòng)畫界面程序
        做個(gè)動(dòng)畫給你看
        動(dòng)畫發(fā)展史
        國企黨委前置研究的“四個(gè)界面”
        我的動(dòng)畫夢
        文苑(2019年22期)2019-12-07 05:28:56
        試論我國未決羈押程序的立法完善
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        人機(jī)交互界面發(fā)展趨勢研究
        我是動(dòng)畫迷
        亚洲av无码专区在线播放中文| 久久99人妖视频国产| 欲女在线一区二区三区| 久久精品欧美日韩精品| 岛国av无码免费无禁网站下载| 欧美日韩亚洲国产无线码| 国产诱惑人的视频在线观看| 少妇真实被内射视频三四区| 夜夜未满十八勿进的爽爽影院| 亚洲免费av电影一区二区三区| 日本一区二区高清在线观看| 精品激情成人影院在线播放| 亚洲国产成人片在线观看无码 | 精品欧美乱码久久久久久1区2区| 精品国免费一区二区三区| 精品少妇一区二区三区入口| 亚洲精品久久久久久久蜜桃| 最近中文字幕视频高清| 亚洲香蕉毛片久久网站老妇人| 男女打扑克视频在线看| 人成午夜免费视频无码| 亚洲va欧美va国产综合| 激情五月婷婷久久综合| 日本第一影院一区二区| 无码欧美毛片一区二区三| 国产成人国产在线观看入口| 国产一级一片内射在线| 日产一区二区三区免费看| 久久99精品久久久久久秒播| 欧美韩日亚洲影视在线视频| 女同久久精品国产99国产精| 一区二区三区美女免费视频 | 韩国一区二区三区黄色录像| 18禁成人黄网站免费观看| 丰满少妇人妻无码专区| 61精品人妻一区二区三区蜜桃| 在线视频国产91自拍| 欧美黑人又粗又硬xxxxx喷水| 老熟女熟妇嗷嗷叫91| 国产亚洲一二三区精品| 中国老熟女重囗味hdxx|