版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計(論文)說明書學 院 軟件學院 專 業(yè) 軟件工程 年 級 2007 級 姓 名 指導教師 2011年 5月 16日畢業(yè)設計(論文)任務書題目:基于視頻的互動游戲平臺研發(fā)學生姓名 學院名稱 軟件學院 專 業(yè) 軟件工程 學 號 指導教師 職 稱 副教授 一、原始依據(jù) 工作基礎 基于視頻的運動捕獲的相關技術,在二維上本實驗室有較為成熟的研究,可以做到實時的二維運動跟蹤,并已經(jīng)有較為完整的應用范例,能給要開發(fā)的游戲系統(tǒng)提供所需要的實時運動信息。游戲開發(fā)需要windows程序設計、圖形學、三維游戲引擎的相關知識可以使開發(fā)更順利的進行。 研究條件開發(fā)平臺:windows開發(fā)工具:microsoft
2、 visual c+ 2010 express 應用環(huán)境基于視頻的人體運動分析可廣泛應用于智能監(jiān)控、體育運動分析、動畫生成、人機交互、視頻會議、醫(yī)療診斷、虛擬現(xiàn)實等方面,具有廣闊的研究和應用前景。使用體感技術作為輸入手段的游戲是新型電子游戲研究的熱門方向,已經(jīng)并將繼續(xù)有研究人員投身于體感游戲制作和游戲設計之中。 工作目的為本實驗室已有的基于視頻的動作捕獲系統(tǒng)提供測試和應用平臺,應用現(xiàn)有算法基礎和開源游戲引擎開發(fā)出開發(fā)出一套具備良好用戶界面的、較完整的應用軟件平臺。同時對體感游戲的設計思路進行深入研究。二、參考文獻1 shakhnarovich g,viola p, darrell t,fast
3、 pose estimation with parameter-sensitive hashing c,ninth ieee international conference on computer vision, vols i and ii, proceedings,2003, 750757.2 c.j.taylor. reconstruction of articulated objects form point correspondences in a single uncalibrated imagec.cviu,80: 346-363, 2000.3 朱強,莊越挺, 潘云鶴, 基于緊
4、身衣的人體動畫研究j,軟件學報。2002, 13(4): 601607.4 barron.c, kakadiaris.ia, . estimating anthropometry and pose from a single image j. computer vision and image understanding, 2001,81(3):2692845 沈軍行, 孫守遷, 基于shape from silhouette方法的虛擬人體構造j,中國圖形圖像學報:a輯,2002,7(10):108910936 莊越挺,劉小明,潘云鶴,一種基于視頻的人體動畫骨架提取技術j,計算機研究與發(fā)展,2
5、000, 37(4): 498506三、設計(研究)內(nèi)容和要求1設計內(nèi)容本課題計劃應用現(xiàn)有基于視頻的動作捕捉算法基礎和開源游戲引擎開發(fā)出開發(fā)出一套具備良好用戶界面的、較完整的應用軟件平臺。2設計目標及要求完成以下的工作內(nèi)容:l 熟悉windows平臺下的c+程序開發(fā)l 查閱資料,了解視頻處理和運動捕獲的算法l 實現(xiàn)基于ogre的游戲系統(tǒng)l 實現(xiàn)已有運動捕捉算法與游戲系統(tǒng)的整合l 完成基于體感輸入的游戲系統(tǒng)開發(fā),進行簡單系統(tǒng)測試l 完成15k-20k字的畢業(yè)設計論文 指導教師(簽字)年 月 日審題小組組長(簽字)年 月 日天津大學本科生畢業(yè)設計(論文)開題報告課題名稱基于視頻的互動游戲平臺研發(fā)學
6、院名稱軟件學院專業(yè)名稱軟件工程學生姓名指導教師一、課題的來源及意義當今世界,電子游戲已經(jīng)在方方面面影響了人們的生活方式和思考方式。電子游戲產(chǎn)業(yè)也以其高額的利潤成為熱門產(chǎn)業(yè)。目前,大部分的電子游戲一般使用一些特定的設備來完成對游戲的控制,例如游戲桿、鼠標、鍵盤等,無疑這些控制器可以完成控制任務,但是缺陷是明顯的:它們強制改變了人體的默認動作,尤其當玩家進行運動類游戲時,游戲的動作和實際從事這些運動的動作完全不同,這大大的破壞了游戲的真實感。玩家對真實感的需求導致了體感技術的出現(xiàn)和發(fā)展。體感技術,也可以稱之為動作感應控制技術,即由計算機通過某些特殊方式對用戶的動作進行識別、解析,并按照預定方式,計
7、算機對相應動作做出反饋。由于體感技術直接使用身體動作作為游戲輸入,因此它的真實感遠高于普通輸入方式,在運動游戲、格斗游戲、舞蹈游戲等與現(xiàn)實密切相關的游戲類型中表現(xiàn)的尤為明顯。除了高沉浸式的游戲體驗以外,體感游戲還一改電子游戲危害身體健康的的缺點,它實現(xiàn)了在游戲中運動,給人們帶來了一種更健康的娛樂方式和更快樂的運動方式。體感游戲的諸多優(yōu)勢,使它一直以來受到各大游戲廠商的特別關注,從跳舞毯、wii到近期發(fā)布的kinect以及基于這些平臺而開發(fā)出來的眾多游戲都證明了體感技術和體感游戲的廣闊前景和其作為未來游戲發(fā)展方向的重要價值。本課題以通過視頻的動作捕獲技術為基礎,結合開源游戲引擎實現(xiàn)一個通過肢體動
8、作直接控制的三維互動游戲,本課題對動作捕捉技術和相關游戲平臺的研究對于游戲技術未來的發(fā)展和游戲設計思路的開闊都具有非常積極的意義。二、國內(nèi)外發(fā)展狀況由于體感游戲?qū)τ谟布母咭蕾囆?,大部分體感游戲都必須在某一特定的運動捕獲系統(tǒng)上運行,運動捕獲系統(tǒng)主要的應用方式:一種是基于遙感器的運動捕獲,另一種是基于視頻的運動捕獲。基于遙感器的動作捕獲使用可手持的傳感器來獲得肢體的運動數(shù)據(jù),任天堂的family computer(即國內(nèi)俗稱的紅白機的主機)上的光電槍可謂是體感控制觀念最原始的體現(xiàn),而此類應用最典型的同樣是任天堂公司的產(chǎn)品:wiimote (即wii主機的遙控器),wiimote使用一塊adxl3
9、30 mems(微機電系統(tǒng))三軸加速度傳感芯片。在x/y/z三個軸向上感知±3g的加速度,采用模擬的方式輸出結果,從而得到玩家手臂的運動數(shù)據(jù)。其他類似產(chǎn)品的原因也大致相同,這里不再贅述。跳舞毯同樣是通過傳感器來獲得運動數(shù)據(jù),只不過和wiimote不同的是它的傳感器位置固定。但在數(shù)據(jù)輸入方式本質(zhì)上并無特殊之處。由于以擁有可手持的傳感器,此類平臺上的游戲以射擊、器械運動(如棒球,網(wǎng)球等)最有特色,著名作品包括:barker bill's trick shooting、wii sports等等。另一種動作捕獲的應用方式為基于視頻的動作捕獲,它沒有傳感器,玩家直接在攝像頭前作出動作,
10、系統(tǒng)即可識別。代表系統(tǒng)有sce公司eyetoy和微軟公司的kinect,eyetoy的原理是:攝像頭以固定的速率采集圖像,當場景內(nèi)無變化時,前后兩幅圖像內(nèi)容一致,當有物體運動時則產(chǎn)生差異,因此通過簡單的對相鄰兩幀圖像相減,得到畫面中不同的部分,即可以感知是否有運動物體及運動物體的一些屬性,比如大小,位置和顏色等。而kinect則更為高級,它使用激光散斑(laser speckle)來獲得攝像頭面前玩家的三維動作信息,在2米范圍內(nèi)其精度可以到達1厘米?;谝曨l的動作捕獲可以獲得全身的運動數(shù)據(jù),使得游戲的設計思路開闊了不少,除了已有的射擊、運動、舞蹈游戲之外,格斗游戲,繪畫和非器械游戲也可以通過體
11、感來控制,著名作品包括:the fight、brunswick、kinect adventures、kinect zoo等等。本實驗的輸入是基于視頻的,故而我們選擇了最為經(jīng)典的體感游戲類型舞蹈類游戲來作為研究對象,從跳舞毯開始舞蹈類游戲一直是體感游戲最具代表的類型,它能非常好的體現(xiàn)出基于視頻的動作捕獲技術的特點和優(yōu)勢,同時舞蹈類游戲在電子游戲發(fā)展史一直占有重要位置,我們可以從前人的努力中獲得大量經(jīng)驗。三、本課題的研究目標本課題計劃應用現(xiàn)有基于視頻的動作捕捉算法基礎和開源游戲引擎開發(fā)出一套具備良好用戶界面的、較完整的應用軟件平臺。四、本課題的研究內(nèi)容 掌握windows平臺下的c+圖形程序開發(fā)的
12、開發(fā)流程和技術,掌握游戲引擎的使用方法,熟悉視頻處理和運動捕獲的算法,并將其較好的整合到游戲系統(tǒng)之中,最后實現(xiàn)以視頻作為輸入以ogre作為核心的游戲系統(tǒng),得到一個較為完整的技術展示平臺和一個具有可玩性的游戲。六、研究手段 microsoft visual c+ 2010 express,ogre,opencv七、進度安排2010年12月20日-2011年3月 10 日 查閱資料,完成任務書 ,完成開題報告2011年 3月11日2011年3月 12日 開題報告會2011年 3月 13日2011年4月24日 確定軟件設計并完成設計的主要功能2011年 4月25日2011年4月30日 畢業(yè)設計中期報
13、告會2011年 5月1日2011年5月22日 對程序進行調(diào)整和完善2011年 5月23日2011年6月22日 完成論文及答辯八、實驗方案的可行性分析本試驗室已經(jīng)完成了從視頻中實時提取二維動作數(shù)據(jù)的全部算法攻關工作,并采用matlab和opencv分別進行了算法的實驗,實驗結果表明算法有效。,可以做到實時的二維運動跟蹤,并已經(jīng)有較為完整的應用范例,能給要開發(fā)的游戲系統(tǒng)提供所需要的實時運動信息。實驗室前期項目中曾經(jīng)完成了三維游戲引擎的研發(fā)工作,對三維游戲的基本框架非常熟悉??梢宰鰹楸敬萎呍O的工作基礎。九、已具備的實驗條件 基于視頻的運動捕獲的相關技術,在二維上本實驗室有較為成熟的研究,可以做到實時
14、的二維運動跟蹤,并已經(jīng)有較為完整的應用范例,能給要開發(fā)的游戲系統(tǒng)提供所需要的實時運動信息。十、主要參考文獻1 shakhnarovich g,viola p, darrell t,fast pose estimation with parameter-sensitive hashing c,ninth ieee international conference on computer vision, vols i and ii, proceedings,2003, 750757.2 c.j.taylor. reconstruction of articulated objects form p
15、oint correspondences in a single uncalibrated imagec.cviu,80: 346-363, 2000.3 朱強,莊越挺, 潘云鶴, 基于緊身衣的人體動畫研究j,軟件學報。2002, 13(4): 601607.4 barron.c, kakadiaris.ia, . estimating anthropometry and pose from a single image j. computer vision and image understanding, 2001,81(3):2692845 沈軍行, 孫守遷, 基于shape from s
16、ilhouette方法的虛擬人體構造j,中國圖形圖像學報:a輯,2002,7(10):108910936 莊越挺,劉小明,潘云鶴,一種基于視頻的人體動畫骨架提取技術j,計算機研究與發(fā)展,2000, 37(4): 4985067 周松華,肖靚,郭敏,基于svm的圖像分類研究 j,井岡山學院學報,2009, 30(6): 43458 sahbi h.coarse-to-fine support vector machines for hierarchical face detection.(d),university of versailles,20039 welch g, bishop g. a
17、n introduction to kalman filterc. unc-chapel hill, tr 95-041, july 24, 2006:11610 趙懷勛,鄭敏, 李志強. 一種自適應光照的膚色識別算法j. 微電子學與計算機,2009,28(6): 158164選題是否合適: 是 否課題能否實現(xiàn): 能 不能指導教師(簽字)年 月 日選題是否合適: 是 否課題能否實現(xiàn): 能 不能審題小組組長(簽字)年 月 日摘 要基于視頻的運動捕獲技術是計算機視覺領域的重要課題之一,基于該技術的互動游戲是未來電子游戲發(fā)展的重要方向之一。本文探索基于視頻的人體運動捕獲技術在3d游戲中的應用。集中于
18、游戲?qū)崿F(xiàn)及與已有算法的對接。 首先依靠開源引擎ogre實現(xiàn)游戲?qū)?d的支持,并使用cegui支持玩家與游戲功能的交互,使用fmod音樂引擎提高游戲的樂趣。其次,探索從基于視頻的人體運動捕獲技術中獲得的人體運動數(shù)據(jù)和ogre引擎動畫模塊的連接,本文以自定義數(shù)據(jù)格式來完成這個任務。本文同時研究了如何應用opencv以及directshow來實現(xiàn)對攝像頭的支持。 最后,通過對游戲的測試,保證游戲的穩(wěn)定性和可用性。關鍵詞:ogre;opencv;電子游戲;體感abstractvideo-based motion capture technology is an important topic in c
19、omputer vision, the interactive game based on this technology is the future direction of electronic games development. this article explores the human body motion capture based video game in 3d applications. focus on the game implementation and docking with the existing algorithms.first, open-source
20、 3d game engine ogre support implementation and cegui support for players to interact with game features, the fmod music engine to improve the game.secondly, to explore the human body from a video-based motion capture technology to obtain data and human motion animation module ogre engine connected
21、to a custom data format this article to accomplish this task.this paper also studied how to achieve the opencv and directshow camera support.finally, test the game to ensure the stability and availability of the game.key words:ogre; opencv; electronic games; somatosensory目 錄abstract10第一章 概述11.1 研究的背
22、景和意義11.2 基于視頻捕獲的電子游戲在國內(nèi)外的發(fā)展狀況11.3 本課題所作的工作21.3.1 實現(xiàn)舞蹈游戲21.3.2 與運動捕獲技術的交互31.3.3 基于軟件工程思想的項目管理31.4 論文結構3第二章 本課題所用技術4第三章 系統(tǒng)需求53.1 需求概述53.2 用例描述53.3 模塊描述73.3 流程描述9第四章 系統(tǒng)設計124.1 系統(tǒng)邏輯結構124.2 程序流程134.3 類設計15第五章 系統(tǒng)實現(xiàn)175.1 程序啟動順序175.1.1 目的175.1.2 ogre的啟動順序175.1.3 本系統(tǒng)的實現(xiàn)方式175.1.4 資源的加載185.2 游戲流程控制195.3 音樂195.
23、3.1 線程的啟動195.3.2 音樂的試聽和播放195.4 角色和場景選擇195.4.1 位置的記錄195.4.2 動畫的實現(xiàn)205.5 動畫播放205.6 動作數(shù)據(jù)獲取205.6.1 運動捕獲算法概述205.6.2 交互方式及數(shù)據(jù)格式215.6.3 數(shù)據(jù)處理215.7 攝像數(shù)據(jù)的獲取和展示21參考文獻222天津大學2007屆本科生畢業(yè)設計(論文)第一章 概述1.1 研究的背景和意義當今世界,電子游戲已經(jīng)在方方面面影響了人們的生活方式和思考方式。電子游戲產(chǎn)業(yè)也以其高額的利潤成為熱門產(chǎn)業(yè)。目前,大部分的電子游戲一般使用一些特定的設備來完成對游戲的控制,例如游戲桿、鼠標、鍵盤等,無疑這些控制器可
24、以完成控制任務,但是缺陷是明顯的:它們強制改變了人體的默認動作,尤其當玩家進行運動類游戲時,游戲的動作和實際從事這些運動的動作完全不同,這大大的破壞了游戲的真實感。玩家對真實感的需求導致了體感技術的出現(xiàn)和發(fā)展。體感技術,也可以稱之為動作感應控制技術,即由計算機通過某些特殊方式對用戶的動作進行識別、解析,并按照預定方式,計算機對相應動作做出反饋。由于體感技術直接使用身體動作作為游戲輸入,因此它的真實感遠高于普通輸入方式,在運動游戲、格斗游戲、舞蹈游戲等與現(xiàn)實肢體運動密切相關的游戲類型中表現(xiàn)的尤為明顯。除了高沉浸式的游戲體驗以外,體感游戲還一改電子游戲危害身體健康的的缺點,它實現(xiàn)了在游戲中運動,給
25、人們帶來了一種更健康的娛樂方式和更快樂的運動方式。體感游戲的諸多優(yōu)勢,使它一直以來受到各大游戲廠商的特別關注,從跳舞毯、wii到近期發(fā)布的kinect以及基于這些平臺而開發(fā)出來的眾多游戲都證明了體感技術和體感游戲的廣闊前景和其作為未來游戲發(fā)展方向的重要價值。本課題以通過視頻的動作捕獲技術為基礎,結合開源游戲引擎實現(xiàn)一個通過肢體動作直接控制的三維互動游戲,本課題對動作捕捉技術和相關游戲平臺的研究對于游戲技術未來的發(fā)展和游戲設計思路的開闊都具有非常積極的意義。1.2 基于視頻捕獲的電子游戲在國內(nèi)外的發(fā)展狀況由于體感游戲?qū)τ谟布母咭蕾囆?,大部分體感游戲都必須在某一特定的運動捕獲系統(tǒng)上運行,運動捕獲
26、系統(tǒng)主要的應用方式:一種是基于遙感器的運動捕獲,另一種是基于視頻的運動捕獲。基于遙感器的動作捕獲使用可手持的傳感器來獲得肢體的運動數(shù)據(jù),任天堂的family computer(即國內(nèi)俗稱的紅白機的主機)上的光電槍可謂是體感控制觀念最原始的體現(xiàn),而此類應用最典型的同樣是任天堂公司的產(chǎn)品:wiimote(即wii主機的遙控器),wiimote使用一塊adxl330 mems(微機電系統(tǒng))三軸加速度傳感芯片。在x/y/z三個軸向上感知±3g的加速度,采用模擬的方式輸出結果,從而得到玩家手臂的運動數(shù)據(jù)。其他類似產(chǎn)品的原因也大致相同,這里不再贅述。跳舞毯同樣是通過傳感器來獲得運動數(shù)據(jù),只不過和
27、wiimote不同的是它的傳感器位置固定。但在數(shù)據(jù)輸入方式本質(zhì)上并無特殊之處。由于以擁有可手持的傳感器,此類平臺上的游戲以射擊、器械運動(如棒球,網(wǎng)球等)最有特色,著名作品包括:barker bill's trick shooting、wii sports等等。另一種動作捕獲的應用方式為基于視頻的動作捕獲,它沒有傳感器,玩家直接在攝像頭前作出動作,系統(tǒng)即可識別。代表系統(tǒng)有sce公司eyetoy和微軟公司的kinect,eyetoy的原理是:攝像頭以固定的速率采集圖像,當場景內(nèi)無變化時,前后兩幅圖像內(nèi)容一致,當有物體運動時則產(chǎn)生差異,因此通過簡單的對相鄰兩幀圖像相減,得到畫面中不同的部分
28、,即可以感知是否有運動物體及運動物體的一些屬性,比如大小,位置和顏色等。而kinect則更為高級,它使用激光散斑(laser speckle)來獲得攝像頭面前玩家的三維動作信息,在2米范圍內(nèi)其精度可以到達1厘米。基于視頻的動作捕獲可以獲得全身的運動數(shù)據(jù),使得游戲的設計思路開闊了不少,除了已有的射擊、運動、舞蹈游戲之外,格斗游戲,繪畫和非器械游戲也可以通過體感來控制,著名作品包括:the fight、brunswick、kinect adventures、kinect zoo等等。本實驗的輸入是基于視頻的,故而我們選擇了最為經(jīng)典的體感游戲類型舞蹈類游戲來作為研究對象,從跳舞毯開始舞蹈類游戲一直是
29、體感游戲最具代表的類型,它能非常好的體現(xiàn)出基于視頻的動作捕獲技術的特點和優(yōu)勢,同時舞蹈類游戲在電子游戲發(fā)展史一直占有重要位置,我們可以從前人的努力中獲得大量經(jīng)驗。1.3 本課題所作的工作1.3.1 實現(xiàn)舞蹈游戲本文所作的工作為實現(xiàn)一個基于運動捕獲技術(體感技術)的舞蹈游戲,該舞蹈游戲具有電子游戲應該具有的游戲特性:可控的游戲流程,能吸引玩家的游戲方式。同時具有代表未來電子游戲發(fā)展方向的先進的交互手段:基于視頻的運動捕獲。本游戲的主要游戲行為是在攝像頭前做出游戲中的作為指導者身份存在的3d舞蹈者模型所示范的動作,系統(tǒng)將捕獲玩家的舞蹈動作,實時控制游戲內(nèi)另一個代表玩家自己的3d模型。同時系統(tǒng)將對兩
30、者的運動進行比較,來評價玩家的舞蹈動作。出于游戲性的考慮,本游戲還提供了與核心游戲相關的其他功能,包括在舞蹈過程中播放音樂,對該音樂的選擇。指導者以及玩家模型的選擇。舞蹈場景的選擇。由于本游戲同時承擔了由于本游戲同時承擔了對運動捕獲算法的測試工作,所以游戲會提供一個窗口來呈現(xiàn)攝像頭所捕獲的數(shù)據(jù)。1.3.2 與運動捕獲技術的交互(這部分我做完了在寫吧.)1.3.3 基于軟件工程思想的項目管理在課題的進行過程中,每一個部分都按照軟件工程的方法來管理。開發(fā)過程被分為:需求及分析、設計、實現(xiàn)和測試四個階段。因為本系統(tǒng)為實驗性質(zhì),所以需求部分并不會占太大比例,因而這里把需求及分析階段合而為一。各個階段的
31、均有比較嚴格的時間安排和完整的文檔。需求及分析階段編寫了系統(tǒng)用例以及用例的詳細描述,以及系統(tǒng)的主要過程圖。這些文檔描述了系統(tǒng)需求以及未來的實現(xiàn)效果。設計階段編寫了系統(tǒng)的設計文檔,其中描述了系統(tǒng)的邏輯結構,程序流程,類描述等更加細節(jié)的問題。測試階段同樣編寫了測試文檔,用來對測試用例進行管理。1.4 論文結構第一章:介紹了本文的研究背景以及國內(nèi)外的現(xiàn)狀,并對本文的工作進行了概要性描述.第二章:介紹本課題所用的技術,以及應用這些技術的方式。第三章:描述系統(tǒng)的需求第四章:描述針對系統(tǒng)需求而做出的系統(tǒng)設計方案第五章:詳盡描述系統(tǒng)的實現(xiàn)方式第六章:介紹對現(xiàn)有系統(tǒng)的不足,并對未來的工作提出建議。第二章 本課
32、題所用技術本課題通過一系列的開源技術來實現(xiàn)主要功能,其中包括:opencv、ogre、cegui,同時還應用了一些非開源但是免費的技術,包括fmod、directshow。程序還使用了多線程技術。開發(fā)平臺為microsoft visual studio 2010 express。opencv是一個基于bsd許可證授權的跨平臺計算機視覺庫,它可以高效的進行視頻的處理,在本課題中,opencv主要在動作捕獲相關的算法中承擔攝像頭圖像的處理工作,為動作捕獲提供基礎。同時在呈現(xiàn)攝像頭捕獲的圖像的過程中,opencv提供了較為方便的功能。ogre是一個基于lgpl許可證授權的3d圖形引擎,它能提供非常方
33、便高效的3d繪制。同時它具有非常完整文檔和豐富的學習資源。在本課題中,ogre是整個系統(tǒng)的核心,其他系統(tǒng)均以某種方式與它進行著交互。它負責游戲中所有的場景和物體的繪制工作,同時還與那些不是以運動捕獲進行的人機交互有著重要的關系。游戲流程的控制并沒有做到可以完全交給運動捕獲系統(tǒng)來完成,所以依然需要一個傳統(tǒng)的、基于圖形的界面系統(tǒng)。cegui就是這樣的系統(tǒng)。它是一個非常成熟的開源圖形界面庫,能非常方便的完成界面的繪制和對鼠標事件的反應。同時它可以與ogre非常完美的結合到一起。fmod是被廣泛應用的跨平臺聲音引擎,它提供了一些非常方便的借口來實現(xiàn)本系統(tǒng)對音樂的需求。從而避免了直接操作directso
34、und所帶來的麻煩,使整個系統(tǒng)的設計更加的簡潔、清晰。directshow被應用在攝像頭的數(shù)據(jù)提取上。讓玩家直觀的的了解自己做了什么動作。由于游戲過程中需要同時播放音樂、動畫和處理運動捕獲系統(tǒng)所獲得的數(shù)據(jù),所以使用多線程技術是必要的,它是系統(tǒng)能夠并行的完成這些任務。第三章 系統(tǒng)需求3.1 需求概述本系統(tǒng)以攝像頭為輸入設備,獲得人體關節(jié)的運動數(shù)據(jù),來控制游戲中代表玩家的模型。游戲的進行時要求玩家按照系統(tǒng)提示和虛擬模型的指導運動身體,當運動滿足要求時即可得分,而當運動與系統(tǒng)要求不符是則會扣分。系統(tǒng)要求的運動會根據(jù)音樂節(jié)奏決定,當音樂結束本輪游戲結束。游戲分為三個場景:第一選擇歌曲,第二選擇玩家和指
35、導者的3d模型以及游戲場景,第三是游戲的主場景,顯示已經(jīng)選擇好的場景和人物。游戲功能包括:基于視頻的動作捕獲,虛擬指導,運動提示,玩家虛擬模型,測試模式,三維場景模式,3d顯示模式,音樂系統(tǒng),記分系統(tǒng),暫停及重新開始。3.2 用例描述本節(jié)用先用圖片的方式列出用例,然后再對用例進行文字描述。圖3-1 系統(tǒng)用例1 選擇歌曲玩家選擇將在游戲進行中播放的音樂,指導者的動作將與該音樂有關。2 選擇場景選擇在游戲進行時的背景。3 選擇玩家模型選擇在游戲進行時玩家控制的虛擬人物的模型4 選擇指導者模型選擇游戲進行時指導者的模型5 開始游戲開始舞蹈游戲6 退出游戲退出程序7 暫停游戲在游戲進行中停止指導者的運
36、動和玩家對玩家模型的控制,并提供退出游戲和重新開始游戲的選項。8 重新開始游戲重新開始同樣的游戲,歌曲、場景、人物模型均不改變。9 查看分數(shù)顯示玩家的游戲得分10 控制玩家模型玩家通過運動肢體來控制游戲中的模型,它將做出與玩家相似的動作。3.3 模塊描述l 動作捕獲本模塊通過處理攝像頭視頻,得到系統(tǒng)要求的玩家運動數(shù)據(jù)并提供給場景繪制模塊。模塊輸入:分辨率在30萬像素以上、至少20幀/秒采樣速率的攝像頭;攝像頭應放置于顯示器正上方或正前方,用戶(站在攝像頭正前方5-10米處。模塊輸出:玩家運動信息。l 運動數(shù)據(jù)處理通過動作捕獲系統(tǒng)得到的運動信息,需要經(jīng)過處理,把它轉(zhuǎn)化為游戲引擎需要的模型運動數(shù)據(jù)
37、才能使游戲中的人物模型開始運動。模塊輸入:運動捕獲系統(tǒng)傳遞的原始運動數(shù)據(jù)和關卡信息中的運動數(shù)據(jù)。模塊輸出:能被游戲引擎識別的模型運動信息。l 模型及場景繪制 提供游戲內(nèi)主要三維模型的繪制,包括:場景、指導模型和玩家模型。虛擬指導用于幫助玩家作出正確動作。玩家模型用于幫助玩家更直觀的了解自己的動作。本模塊的工作主要由三維游戲引擎ogre完成。名詞解釋:1、場景:根據(jù)關卡數(shù)據(jù)進行的三維場景的繪制,指導模型、玩家模型均位于此場景之中。2、虛擬指導:三維人形模型,由系統(tǒng)根據(jù)關卡數(shù)據(jù)中的模型數(shù)據(jù)生成,游戲開始后會會根據(jù)本關卡的運動數(shù)據(jù)在屏幕上進行運動。3、玩家模型:系統(tǒng)根據(jù)關卡數(shù)據(jù)中的模型數(shù)據(jù)生成的三維
38、模型,游戲開始后根據(jù)運動捕獲系統(tǒng)輸出的運動數(shù)據(jù)在屏幕上運動。l 游戲控制用于收集玩家命令并作出反應。程序前控制:輸出設備設置、游戲視頻設置、游戲音頻設置,這三種設置通過windows菜單方式進行。游戲前控制:指導模型選擇、玩家模型選擇、場景選擇,這三者會給予玩家預覽,玩家通過用鼠標點選預覽模型的方式進行選擇。舞蹈數(shù)據(jù)選擇(其中包括了音樂數(shù)據(jù))、開始新游戲、退出程序、啟用指導、啟用玩家模型、啟用線條提示(包括指導和玩家兩個)。以上選擇通過游戲菜單實現(xiàn)。游戲中控制:1、游戲暫停與繼續(xù):通過玩家肢體動作實現(xiàn),當玩家作出該動作時游戲暫停;而在玩家用鼠標點選繼續(xù)游戲后20秒,游戲?qū)⒗^續(xù)。2、重定位:當游
39、戲暫停時,游戲界面上會出現(xiàn)代表關卡長度的計時條,玩家可用鼠標拖動計時條來重定位關卡進度。3、關卡退出:當游戲暫停時,玩家可以用鼠標點選退出指令,推出當前關卡,返回游戲準備界面。l 關卡管理 主要用于綜合玩家設置,為關卡提供非動作數(shù)據(jù)支持。模塊輸入:游戲控制模塊中游戲前控制時玩家輸入的關卡信息,包括:指導模型文件、玩家模型文件、場景信息,舞蹈及音樂數(shù)據(jù),以及是否啟用指導與玩家模型,是否啟用線條提示。模塊輸出:包含關卡數(shù)據(jù)的數(shù)據(jù)結構。提供給場景及模型繪制模塊進行繪制。l 游戲性 此模塊負責除去游戲控制之外的與游戲性相關的工作,包括音樂系統(tǒng)及記分系統(tǒng)。音樂系統(tǒng):音樂信息與舞蹈動作信息捆綁,當一套舞蹈
40、動作(或者音樂)被選取后,游戲開始后將播放這段音樂。同時在玩家選擇時,將有音樂預覽提供。記分系統(tǒng):游戲進行界面下方將實時顯示玩家當前得分。記分方法如下:游戲過程中,如果玩家在規(guī)定時間內(nèi)到達預定出發(fā)點和終點,系統(tǒng)將給予加分,如果玩家為在規(guī)定時間內(nèi)到達或者未按照要求軌跡運動,該動作即視為無效,系統(tǒng)將扣分。對于未按照軌跡運動的判定問題:一旦玩家模型關鍵點離開規(guī)定范圍,無論以后動作是否正確,系統(tǒng)都將此次運動判定無效,同時如果在下一個動作開始之前玩家因為未按照之前運動軌跡運動而不能達到預定起點,下次運動也將作廢。l 拓展系統(tǒng) 本模塊為可選方案,給系統(tǒng)提供更多的選擇和細節(jié)。三維運動數(shù)據(jù):開啟三維運動數(shù)據(jù)時
41、,動作捕獲模塊將為玩家模型提供第三維的運動數(shù)據(jù),繪制時系統(tǒng)將根據(jù)此數(shù)據(jù)讓玩家模型進行運動,同時指導模型也將開啟三維運動模式,而不僅是平面運動。立體顯示:當游戲輸出到立體顯示模塊時的系統(tǒng)運行模式,將提供更多的和立體顯示有關的選項。線條提示:由系統(tǒng)根據(jù)關卡數(shù)據(jù)生成,游戲開始后在代表玩家模型和虛擬指導模型重要關節(jié)當前位置以及下一步運動結束點會出現(xiàn)閃光點和連接這兩者的虛擬運動軌跡,運動軌跡為虛線,虛線點間隔代表運動速率:間隔越大,速度越慢;間隔越小,速度越快。玩家模型關鍵點在運動過程中將在軌跡上用較不明顯的閃光點標志出實時位置。當模型關鍵點運動到指定位置后,該提示將消失,同時所有的運動提示都有一個生命
42、周期,在生命周期結束后無論是否到達指定位置提示都將消失。當玩家模型關鍵點的運動軌跡與預定軌跡不同時,屏幕將在玩家模型上用不同顏色顯示出錯誤的運動軌跡。3.3 流程描述 本節(jié)以圖片的方式來描述系統(tǒng)的主要流程。圖3-2 選擇歌曲流程描述圖3-3 選擇場景流程描述圖3-4 選擇模型流程描述圖3-5 控制玩家模型流程描述圖3-6 開始游戲流程描述第四章 系統(tǒng)設計4.1 系統(tǒng)邏輯結構本節(jié)在圖片的方式邏輯上描述系統(tǒng)的結構。圖4-1 系統(tǒng)邏輯結構圖系統(tǒng)在邏輯上分為六個模塊,如上圖所示。其中文件控制模塊用于讀取文件,并把文件內(nèi)容提交給需要的游戲模塊,主要是關卡模塊和音樂系統(tǒng)。它提供了一個特制的借口用于獲得文件
43、名。三維引擎用于處理與3d繪制相關的所有工作。它提供了一些與ogre引擎相關的借口。它是游戲的主模塊用戶界面用于繪制ui,由于游戲具有三個場景,所以該模塊提供了選擇要加載場景的接口,其他的接口與界面的資源加載和繪制有關。游戲的主模塊通過調(diào)用它來實現(xiàn)用戶界面的繪制并獲得用戶指令。關卡模塊是一個數(shù)據(jù)模塊,主要用于將用戶選擇的數(shù)據(jù)進行存儲和傳遞,這些數(shù)據(jù)包括人物模型、場景數(shù)據(jù)、音樂數(shù)據(jù)等。運動捕獲模塊會提供它經(jīng)過處理后的玩家運動數(shù)據(jù),并把它封裝成比較好的格式。計分模塊用于分析玩家動作和指導者動作之間的差距,并據(jù)此判斷玩家的舞蹈能力,從而對其進行評價。4.2 程序概要流程本節(jié)將描述程序的概要流程。圖4
44、-2 系統(tǒng)概要流程程序啟動后,見首先實例化main類,之后再main類中實現(xiàn)ogre的一系列初始化過程,包括:engine(即ogre root類)的初始化,scene(即場景)的初始化,framelistener(處理動畫和輸入)的初始化以及ui的初始化,隨后開始逐幀渲染。除此之外還將啟動另一個線程,用于處理與音樂相關的工作。4.4 類設計本節(jié)以圖的方式描述系統(tǒng)的類設計及類之間的關系。圖4-3 類示意圖游戲以ogre引擎為主體,如圖所示有三個類負責與ogr引擎交互,engine類主要負責引擎的初始化,包括創(chuàng)建ogre root類、加載資源和創(chuàng)建窗口等。scene類負責大部分3d物體的繪制和銷
45、毀工作,framelistener類負責與動畫和輸入有關的工作。ui類是與cegui相關的類,它負責繪制ui、接受并把控制信息傳遞給相應控制的類,這些類包括:framelistener、smilymain和scene。level和file是工具類,其中file類負責讀取目錄中的文件名并把它們封裝到一個std:list里面,level類負責保存幾乎所有的類間傳遞的數(shù)據(jù)。所以與它發(fā)生關系的類有很多。最后在另一個線程的sound類負責有關音樂方面的工作。它通過調(diào)用fmod的api來實現(xiàn)這些功能。4.3 程序詳細流程 本節(jié)將以圖片和文字來描述游戲的整個流程。圖5-1 系統(tǒng)流程示意圖上圖是整個游戲系統(tǒng)的
46、詳細流程示意圖,它以ui的切換和ui類的功能為主線,同時描述了在界面切換過程中其他類所作的工作。整個游戲分為四個場景,第一個是在資源加載過程中顯示的loading界面,后三個為可交互界面。1 歌曲選擇界面,2 模型及場景選擇界面,3 舞蹈界面。第一個界面的行為很簡單,只是進行了ui資源的加載和loading界面的繪制,繪制完成之后,將進行上面已經(jīng)說明的全部資源的初始化工作,當這一步完成之后,系統(tǒng)就會調(diào)用ui類的createui函數(shù)。上面的流程圖就是從這個函數(shù)開始的。createui首先需要銷毀前面的loading界面,然后加載選擇音樂這個界面的布局,加載過后就可以在游戲中呈現(xiàn)這個界面了。音樂選
47、擇界面主要有三個部分構成,音樂列表和兩個按鈕。所以界面繪制結束之后,系統(tǒng)調(diào)用file類獲得音樂目錄中的音樂名稱并把它放到ui的列表上。之后的工作是繪制背景和注冊兩個按鈕的回調(diào)函數(shù),繪制背景有scene類完成,場景的背景是一個天空盒。注冊的兩個按鈕分別是前進和退出,由于不同界面都具有退出這個功能,它將最后被描述。前進的回調(diào)函數(shù)主要是切換場景,不過在切換之前要判斷玩家是否選擇了歌曲,如果沒有會彈出一個錯誤提示,當然這個錯誤提示也會注冊一個用于返回的回調(diào)函數(shù)。用戶選擇過后,系統(tǒng)清除前一個界面,然后調(diào)用scene類中的函數(shù)去繪制3d模型,然后為角色及場景選擇界面注冊回調(diào)函數(shù)。第三個界面的回調(diào)函數(shù)一共有
48、五個,分別對應5個按鈕:改變場景、開始舞蹈、選擇指導者模型還是玩家模型、改變模型、返回。改變場景很簡單,調(diào)用scene類,用新的天空盒(或者天空穹)替換掉當前的就可以。開始舞蹈是進入下一個場景。本游戲的設計是玩家模型和指導者模型的模型庫是公用的,所以只要在選擇模型的時候,指定目前選擇的是指導者模型還是玩家模型就可以完成兩者的選擇。這個動作由第三個按鈕完成。選擇模型是通過動畫方式直觀的來進行的,返回與上一界面的退出的機理相同,同樣在本節(jié)最后描述。開始舞蹈后,同樣的清除前面的ui,并調(diào)用scene的函數(shù)清除3d模型,之后加載新的ui,調(diào)用scene中的函數(shù)繪制新的模型。并給界面中的唯一一個按鈕注冊
49、回調(diào)函數(shù)。退出按鈕被點擊時同樣會調(diào)用ui中的回調(diào)函數(shù),他判斷當時所處的界面來進行不同的行為,在歌曲選擇界面,它提供退出和返回游戲兩個選項,角色選擇界面 他增加了返回上一界面的選項, 舞蹈界面還要使游戲暫停.以上的選項也同樣是用回調(diào)函數(shù)實現(xiàn)的.以上描述了整個游戲流程和它的實現(xiàn)方式。通過上面的工作,實現(xiàn)了需求中關于流程控制的要求。第五章 系統(tǒng)實現(xiàn)5.1 程序啟動順序5.1.1 目的ogre作為一個圖形引擎,在開始逐幀渲染之前,必然要進行一系列的初始化工作,而ogre本身是非常靈活的,它并不需要把這些初始化工作集中于一個類中進行,而是只要在渲染指令之前做好即可,所以可以按照自己的方式來安排類的設計。
50、本節(jié)的目的即在于解釋ogre的通用啟動過程,然后介紹依照本系統(tǒng)類的設計是如何完成啟動的。5.1.2 ogre的啟動順序ogre的基礎生命周期包含了9個階段:創(chuàng)建root對象定義ogre需要用到的資源選擇并啟動一個渲染系統(tǒng)創(chuàng)建渲染窗口初始化要用到的資源創(chuàng)建一個場景啟動第三方庫或者插件創(chuàng)建一系列的framelistener開始渲染準備好開始渲染之前的工作即可啟動ogre來繪制場景了,而這些工作在本系統(tǒng)中分布到多個類來完成,下一節(jié)將詳細的描述本系統(tǒng)是如何完成ogre系統(tǒng)的啟動工作的。5.1.3 本系統(tǒng)的實現(xiàn)方式 所有的windows窗口程序都是從winmain函數(shù)開始的,本游戲也不例外,在winma
51、in函數(shù)里所作的工作只是創(chuàng)建了smilymain類的一個實例,并調(diào)用實例的go函數(shù)。所以一切都將從smilymain的go開始。在smilymain的實例中,首先將創(chuàng)建一個engine類的勢力,在類設計的部分已經(jīng)說明engine類負責引擎的初始化??梢蕴峁┑某跏蓟瘏?shù)包括窗口的名稱、scene manager的類型,默認攝像機的位置和名稱,位置、默認視口的名稱。提供這些參數(shù)后,engine將提供創(chuàng)建好的scene manager、window和ogre root的指針,用于初始化其他類。下面將解釋在engine中所做的工作。engine是啟動ogre的核心,是對啟動過程的抽象。首先通過插件的配
52、置文件初始化ogre root對象。然后通過資源配置文件load資源(資源文件的具體信息將在下一節(jié)說明),接下來是創(chuàng)建窗口,創(chuàng)建窗口需要的信息可以通過ogre自帶的配置對話框來得到,如果程序目錄里面有配置文件,也可以加載已有的配置文件來得到窗口信息。接下來要做的是創(chuàng)建scene manager這是場景里面一切事物的管理器,包括要繪制的物體、攝像機等等。ogre提供了不同種類的scene manager來滿足不同的需要,它們擅長的場景各不相同,對于本游戲,由于大部分物體都在距離攝影機非常近的地方,所以選擇ogre:st_interior。下一步是創(chuàng)建攝像機和視口,攝像機的可選項包括它的位置、朝向
53、和最大及最小剪裁距離。視口連接攝像機和窗口,本游戲可以直接把視口大小設置為窗口大小。至此engine類的全部工作都已完成。完成engine類中的初始化后,ogre只需要初始化一個最初顯示的場景和創(chuàng)建一個幀監(jiān)聽器即可開始渲染,這兩個工作在scene類和frame listener類完成。值得說明的是在開始渲染之前還有兩個操作,一個是加載ui的資源,另一個是創(chuàng)建音樂的線程。這兩點將在后面的章節(jié)說明。完成以上工作以后,游戲場景開始逐幀渲染,從用戶的角度而言,即游戲正式開始。5.1.4 資源的加載ogre的資源是通過資源組的方式來管理的,資源組可以使用默認的default也可以自己創(chuàng)建。資源的生命周期
54、為:聲明、初始化、加載使用,釋放。每個資源都可以獨立完成這些步驟,也可以以資源組為單位完成。在本游戲中,資源有三類:ogre資源,包括模型文件,材質(zhì)文件,骨骼文件,場景(即天空盒)。cegui資源,包括材質(zhì)文件,字體和布局等。用戶文件,主要是音樂文件。接下來將分別描述三類資源的加載方式。對于ogre資源,首先通過資源配置文件來聲明資源的位置,上面已經(jīng)說明engine類中有對資源配置文件的讀取操作,這個操作實際上是聲明資源和創(chuàng)建資源組的集合,由于本游戲的資源不多,所以只是用了default資源組。聲明資源之后,就進行了所有資源的初始化,著同樣是小型系統(tǒng)的加載方式。經(jīng)過初始化后,系統(tǒng)就可以通過文件
55、名來訪問這些資源了。對于cegui資源,cegui的設計導致了它需要一個渲染系統(tǒng)才能完成用戶界面的渲染,而這些渲染系統(tǒng)中巧恰好有ogre,所以cegui的資源同樣是通過ogre的資源組來組織的,它們的資源聲明位于engine的初始化之后,渲染之前,初始化過程的工作實際上是告訴cegui系統(tǒng),它需要的資源位于ogre 的哪個資源組中,設置了cegui的默認資源組之后,它就可以找到這些資源。在資源聲明的同時還順便進行了默認鼠標圖形和默認字體的設置。用戶文件主要是音樂,因為ogre的資源組中包含的主要是圖形數(shù)據(jù),而且音樂數(shù)據(jù)的主要用戶是fmod,所以本游戲并沒有將音樂文件和上面的資源一起進行管理。這些數(shù)據(jù)主要使用file類讀取文件名,然后由fmod直接進行播放。5.2 游戲流程控制本節(jié)描述流程控制之中的一些具體功能的實現(xiàn)方式關于按鈕的行為按鈕接受按動信號是由fl類和cegui 庫共同完成的 上文已經(jīng)說明,smilymain初始化了framelistener,這是一個控制幀的類,它的framer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《社會心理因素》課件
- 《電信業(yè)風云》課件
- 寒假自習課 25春初中道德與法治八年級下冊教學課件 第二單元 第2課時 公民基本義務
- 《沙盤規(guī)則介紹》課件
- 《定價的基本策略》課件
- 班干部工作總結3篇
- 2023年學校志愿者心得體會字萬能-學校志愿者工作總結(5篇)
- 2023-2024年項目部安全培訓考試題附答案(典型題)
- 畢業(yè)銷售實習報告模板匯編八篇
- 2023年項目部安全管理人員安全培訓考試題及參考答案(模擬題)
- 推板式造波機的機械結構設計
- SAPHR快速指南
- 廣東海洋大學大數(shù)據(jù)庫課程設計
- 商業(yè)發(fā)票INVOICE模板
- (完整版)食堂管理制度及流程
- 某醫(yī)院后備人才梯隊建設方案
- 二年級上冊英語教案Unit6 Lesson22︱北京課改版
- 桂枝加龍骨牡蠣湯_金匱要略卷上_方劑加減變化匯總
- 電機與電氣控制技術PPT課件
- 廢棄鉆井泥漿和壓裂返排液無害化處理研究報告
- 論文-基于單片機的搶答器.doc
評論
0/150
提交評論