999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于U3D和kinect1.0月光下舞蹈互動游戲的設計與實現

2017-02-25 07:21:36高賢強
西安航空學院學報 2017年1期
關鍵詞:動畫界面程序

王 濤,高賢強

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

基于U3D和kinect1.0月光下舞蹈互動游戲的設計與實現

王 濤1,高賢強2

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

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

體感設備;kinect;unity3D;月光下舞蹈的游戲

0 引言

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

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

1 月光下的舞蹈體感游戲的設計

1.1 游戲的原理

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

1.2 游戲的功能需求

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

2 游戲流程的開發

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

圖2 游戲的流程圖

3 游戲開發中關鍵技術介紹

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

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

3.1.1 該模塊整體開發的流程

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

3.1.2 程序之間消息接口

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

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

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

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

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

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

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來進行開發,其在邏輯、聲音、視頻播放、UI界面的處理過于復雜,且效果不好,U3D的出現很好地解決了這個問題。本文為了簡化邏輯,將游戲分為6個子模塊(即6個場景),分別為:游戲主界面、海豚主題模塊、鯨魚主題模塊、鯊魚主題模塊、企鵝主題模塊和海豹主題模塊,讓各個主題模塊和游戲主界面調用交互,避免了在一個.C文件中復雜的完成整個游戲邏輯功能[6],U3D提供了場景切換函數為Application.LoadLevel(“three”),該函數的意思是加載一個新的場景“three”,并銷毀當前運行的場景。

3.2.2 游戲中視頻的播放

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

3.2.3 播放動畫幀

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

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

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

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

public FrameAnimation(Rect drawPos,float fps)//加參數的構造函數}

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

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

3.2.5 MoonLight中每個主題模塊的處理效果

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

4 搭建環境所需設備和游戲測試結果

4.1 系統主要設備配置和技術參數

該系統主要設備的配置和參數:

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

(2)投影機:4500流明,分辨率1024*768,視現場環境亮度而定。

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

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

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

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

4.2 游戲的測試結果

表1 測試結果統計

*注:對該游戲進行24小時測試,功能正常無宕機

4.3 游戲的相關截圖

5 游戲的部署

對于一個嶄新的環境,部署如下:

(1)首先確保WIN7系統所有的驅動都安裝成功[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中,設置KinectSuperMario.exe延時啟動時間為1分30秒,moonlight.exe為2分10秒;

(4)安裝Silverlight.exe包,目的是kinect設備驅動自會發現。

至此,整個游戲的運行環境搭建完畢,現場的效果見圖8。

[1] 王濤. 人機交互多媒體教學系統淺析[J].西安航空學院學報,2015,33(1):43-44.

[2] 鄧見光,袁華強. 基于游戲引擎的三維虛擬漫游系統實現[J].計算機應用與軟件,2012,29(03):122-124.

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

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

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

[6] 翁穎明.卓越游戲的誕生:游戲設計內幕[M].北京:清華大學出版社,2010:55-60.

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

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

[9] 吳志達.一個基于Unity3D游戲引擎的體感游戲研究與實現[D].廣州:中山大學,2012:38-56.

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

[責任編輯、校對:東 艷]

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游戲開發。

TP311.52

A

1008-9233(2017)01-0068-05

猜你喜歡
動畫界面程序
做個動畫給你看
動畫發展史
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
人機交互界面發展趨勢研究
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
主站蜘蛛池模板: 人妻少妇久久久久久97人妻| 国产精品护士| 欧美精品高清| 台湾AV国片精品女同性| 97国产精品视频自在拍| 久久精品aⅴ无码中文字幕| 国产精品亚洲一区二区在线观看| 亚洲综合精品第一页| 免费激情网站| 成人午夜视频在线| 婷婷午夜天| 熟女日韩精品2区| 亚洲欧美日韩综合二区三区| 日韩高清无码免费| 青青操国产视频| 成人国产精品一级毛片天堂| 免费看美女毛片| 午夜人性色福利无码视频在线观看| 欧洲成人免费视频| 国产sm重味一区二区三区| 91视频99| 国产极品嫩模在线观看91| 欧美亚洲一区二区三区在线| 婷婷丁香在线观看| 国产精品美女免费视频大全| 国产在线八区| 日本不卡在线视频| 国产区在线观看视频| 国产网友愉拍精品| 亚洲va欧美ⅴa国产va影院| 成人午夜免费观看| 久久鸭综合久久国产| 欧美精品v欧洲精品| 亚洲av日韩av制服丝袜| 午夜福利网址| 日本三区视频| 欧美成人aⅴ| 欧美中文字幕第一页线路一| 国产日韩精品欧美一区灰| 日韩不卡高清视频| 99久久精品免费看国产电影| 99在线观看免费视频| 久久婷婷五月综合色一区二区| 国产精品刺激对白在线| 久久人搡人人玩人妻精品| 亚洲欧美日本国产专区一区| 国产麻豆永久视频| 日韩123欧美字幕| 中国一级特黄大片在线观看| 强奷白丝美女在线观看| 精品视频在线一区| 色综合久久久久8天国| 亚洲午夜国产精品无卡| 亚洲h视频在线| 熟女成人国产精品视频| 欧美性精品| 久青草国产高清在线视频| 国产一区二区三区精品欧美日韩| 国产在线精品人成导航| 亚洲精品老司机| 亚洲第一成人在线| 国产丝袜91| 国产午夜一级毛片| 日本人妻一区二区三区不卡影院| 依依成人精品无v国产| 久久精品国产电影| 国产免费怡红院视频| 成人在线欧美| 一级毛片免费观看不卡视频| 色悠久久综合| 国产AV毛片| 亚洲AV一二三区无码AV蜜桃| 激情六月丁香婷婷四房播| 欧美高清日韩| 免费午夜无码18禁无码影院| 亚洲第一天堂无码专区| 亚洲精品视频网| 欧美日本在线观看| 国产成人1024精品下载| 91系列在线观看| 蜜芽一区二区国产精品| 天天干天天色综合网|