唐亞輝,趙宏林,常迎春
(1.中國石油大學(xué)(北京)機械工程學(xué)院,北京 102249;2.河北工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,天津 300401)
時至今日,虛擬現(xiàn)實技術(shù)在游戲領(lǐng)域的應(yīng)用越來越多。從最初的文字MUD 游戲,到二維游戲,再到網(wǎng)絡(luò)三維游戲,逼真度和沉浸感正在一步步提高[1]。虛擬現(xiàn)實技術(shù)創(chuàng)造了一個包括三維模型、三維聲音和三維人物等資源逼真的虛擬世界[2]。Oculus 在2012年的“電子娛樂博覽會”上首次展出了搭載虛擬現(xiàn)實技術(shù)的Rift 頭戴式顯示器。隨后索尼在美國游戲開發(fā)者大會上發(fā)布Project Morpheus。這些都標志著在游戲領(lǐng)域虛擬現(xiàn)實技術(shù)的飛速發(fā)展。
目前,國內(nèi)還沒有應(yīng)用虛擬現(xiàn)實技術(shù)設(shè)計的投籃動漫游戲。本文基于虛擬現(xiàn)實理論,以Unity3D 為開發(fā)平臺,通過3DS Max 進行三維建模,開發(fā)出一款全新的三維投籃游戲,為虛擬現(xiàn)實技術(shù)及Unity3D 和3DS Max 等軟件的應(yīng)用提供可靠的實例參考。
模擬籃球運動員投籃游戲中,需建立籃球館場景和人物模型,實現(xiàn)用鍵盤控制人物在場景中做走、跑、跳和投籃等動作,并且添加音樂和特效處理。
系統(tǒng)通過游戲場景來展現(xiàn)球館和人物,包括模擬真實的碰撞和碰撞發(fā)出的聲音。場景中的主要物體有籃球館、人物、籃球、地面、籃球架及相機。系統(tǒng)架構(gòu)如圖1 所示。
圖1 系統(tǒng)架構(gòu)圖
通過分析系統(tǒng)功能,可將系統(tǒng)分為:特效、聲音、數(shù)據(jù)、碰撞、控制和運動邏輯等6 個模塊。
1)特效:為了給用戶強烈的視覺沖擊,在菜單中為籃球加入粒子特效[3-4]。
2)聲音:系統(tǒng)的背景音樂,物體之間碰撞的音效和音量的大小。
3)數(shù)據(jù):用來存儲用戶設(shè)定的有關(guān)游戲中聲音和人物屬性的數(shù)據(jù)。
4)控制:對人物運動的控制,比如走、跑步、投籃、撿球等;對相機的控制,使相機能夠始終以人物為中心點運動。
5)碰撞檢測[5]:主要是籃球與地面、籃球架、籃球框之間的碰撞。對于不同材質(zhì)的物體碰撞之后產(chǎn)生的效果應(yīng)該是不同的[6]。
6)運動邏輯:人物的運動狀態(tài)轉(zhuǎn)換,比如從運球走到急停跳投、從跑到走、從運動到撿球等。運動狀態(tài)之間應(yīng)該有過渡動畫。
圖2 模型及動畫架構(gòu)
實現(xiàn)3D 籃球游戲的關(guān)鍵是人物和3D 場景的建立。特別是人物骨骼動畫的調(diào)試,它將直接影響到玩家的真實性體驗。本系統(tǒng)在3DS Max 中建立人物場景及調(diào)整骨骼動畫[7-8],在Unity3D 中實現(xiàn)游戲的控制、碰撞處理和物體的渲染[9]。具體關(guān)系如圖2 所示。
3DS Max 創(chuàng)建模型的種類有網(wǎng)格模型、多邊形模型和面片模型[10]。此外3DS Max 自帶網(wǎng)格修改器、多邊形修改器等,可完善創(chuàng)建模型的效果[11]。
2.1.1 球館的創(chuàng)建
使用3DS Max 中wall 類型添加3DS Max 模型庫中的Windows 模型和door 模型,效果如圖3 所示。
圖3 墻壁及門窗初始效果
籃球場地按國際籃聯(lián)標準,長28 m,寬15 m,場地上的線的寬度為0.05 m[11]。液壓籃球架模型的尺寸標準為,底座尺寸2.2 m ×1.2 m,臂展3.25 m,籃筐距地面3.05 m[12],效果如圖4 所示。為了使得球館整體更為真實,在場館內(nèi)添加了吊燈、椅子[13]。最終室內(nèi)效果如圖5 所示。
圖4 籃球架效果圖
圖5 籃球館效果圖
2.1.2 人物的創(chuàng)建
人物的建模分為對頭部的建模和身體的建模,兩者都采用多邊形建模方法。最終人物的整體模型效果如圖6 所示。
圖6 模型正視圖
在模型處理后期,為模型添加平滑組,這樣可以增加模型的光滑度。結(jié)果如圖7 所示。之后將模型的UV 坐標圖導(dǎo)出到Photoshop 軟件中,作為繪制貼圖的模板[14]。添加貼圖之后的人物模型如圖8 所示。
圖7 平滑模型圖
圖8 人物正視圖
2.1.3 材質(zhì)貼圖的使用
現(xiàn)實環(huán)境中的物體表面具有豐富的紋理效果,3DS Max 中也需為材質(zhì)賦予某種圖像,即貼圖[15]。通過添加uvmaping 修改器給籃球模型添加了貼圖。模型效果如圖9 所示。
圖9 帶貼圖的籃球
導(dǎo)出模型主要考慮3 個方面:坐標軸、比例和貼圖。人物導(dǎo)出時需要勾選動畫[16]。
當(dāng)前人物模型與骨骼動畫是分開的。人物的骨骼綁定是通過為人物模型添加骨骼綁定相關(guān)的修改器來完成的。作為3D 單人籃球系統(tǒng),需要創(chuàng)建的動作有閑置動作、跑步運球動作、投籃動作、扣籃動作等。3DS Max 提供Motion Flow Mode 和Mixer Mode 兩種方式來編輯多個動作文件。Motion Flow Mode 可以對多個動作文件進行順序編輯、循環(huán)編輯、共享編輯、隨機編輯。Mixer Mode 可以將多個動作文件的不同動作單元,在同一時段內(nèi)分別指定給同一骨骼的不同骨節(jié)上。
進入游戲之后,首先展示Splash 界面,之后進入菜單選項。菜單結(jié)構(gòu)如圖10 所示。
圖10 菜單結(jié)構(gòu)圖
1)菜單的介紹。
菜單的設(shè)計應(yīng)當(dāng)盡量簡潔,讓用戶能夠快速找到每一個功能。為了避免菜單靜態(tài)單一的出現(xiàn),系統(tǒng)菜單選用了2D 加3D 的方式顯示。2D 菜單的制作運用了NGUI 插件。3D 部分展示了Player 的各種動作。菜單效果如圖11 所示。
圖11 菜單效果圖
2)菜單的實現(xiàn)。
①相機:Unity 中的相機為用戶展示了游戲世界。相機的投射方式有2 種,一種是Perspective,另一種是Orthographic。Perspective 方式相機投射成放射線型,用三維的方式展現(xiàn)游戲物體;Orthographic 方式相機以平面的方式展示游戲物體[17]。
②控制:給每個按鈕添加控制組件來實現(xiàn)場景的切換。
游戲中除了物理碰撞之外,主要的部分為籃筐、籃球、player,代碼組件為籃球管理器、籃球、籃筐、player 等。
籃球組件的主要作用是根據(jù)player 的投籃方式、出手力度和角度來進行相應(yīng)的位置改變。當(dāng)前的投籃方式分為跳投、上籃、快速投籃和扣籃4 種方式。由籃球的出手距離又可以將籃球分為2 分球和3 分球2 種類型,得分類型設(shè)置代碼如圖12 所示。
圖12 籃球得分設(shè)置代碼圖
籃筐主要用來判斷是否進球,并且通知UI 得分的變化情況。當(dāng)進球時要播放籃球進球聲音?;@筐觸發(fā)代碼如圖13 所示。
圖13 籃筐觸發(fā)代碼
player 組件是游戲的核心組件,通過將動畫與位置移動的結(jié)合,用半自動的方式來執(zhí)行游戲邏輯。player 狀態(tài)分為none、idle、walk、run、shot 和crouch,通過這幾種狀態(tài)的變化控制人物當(dāng)前的動作。
圖14 為游戲運行時的整體效果圖,玩家可以在自定的時間里通過跳投、上籃和扣籃得分,充分體驗籃球運動的樂趣。
圖14 游戲整體效果圖
本文基于Unity3D 平臺對三維籃球動漫進行了設(shè)計。通過3DS Max 創(chuàng)建籃球運動員和籃球場館環(huán)境,綜合了引擎的物理系統(tǒng)、粒子系統(tǒng)和聲音系統(tǒng)等使該游戲得以實現(xiàn)。系統(tǒng)中使用NGUI 插件制作系統(tǒng)界面的顯示功能來展現(xiàn)游戲的當(dāng)前狀態(tài);使用Adobe Soundbooth CS4 處理籃球聲音的剪輯,實現(xiàn)了對籃球運動員投籃練習(xí)的環(huán)境、動作的模擬;使用計分、計時系統(tǒng),實現(xiàn)了對玩家當(dāng)時的得分和游戲時長的記錄,給用戶帶來視覺、聽覺兼?zhèn)涞幕@球運動體驗。
[1]沈建虎,馮文博.論虛擬現(xiàn)實技術(shù)在三維游戲中的應(yīng)用[J].中小企業(yè)管理與科技(下旬刊),2012(3):271-273.
[2]蘇建明,張續(xù)紅,胡慶夕.展望虛擬現(xiàn)實技術(shù)[J].計算機仿真,2004,21(1):18-21.
[3]董誠辰.基于GPU 的火焰特效技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2012.
[4]華澤璽,王迎春,孫建順.基于粒子系統(tǒng)的爆炸效果仿真研究[J].計算機科學(xué),2012,39(4):278-281.
[5]范昭煒,萬華根,高曙明.基于流的實時碰撞檢測算法[J].軟件學(xué)報,2004,15(10):1505-1514.
[6]Christer Ericson.實時碰撞檢測算法技術(shù)[M].劉天慧譯.北京:清華大學(xué)出版社,2010:1-13.
[7]白英伯.3DS Max 專業(yè)動畫教程(角色篇)[M].北京:高等教育出版社,2004:2-18.
[8]翟旭峰,朱杰杰,潘志庚.3DS Max 建模及其在虛擬現(xiàn)實中的應(yīng)用[J].計算機仿真,2004,21(4):94-97.
[9]宣雨凇.Unity3D 游戲開發(fā)[M].北京:人民郵電出版社,2012:210-233.
[10]張云苑.虛擬現(xiàn)實技術(shù)3DS Max 建模的應(yīng)用[J].電腦知識與技術(shù),2006(8):189-190.
[11]陳建華.基于3DS Max 的虛擬現(xiàn)實建模技術(shù)[J].漳州師范學(xué)院學(xué)報(自然科學(xué)版),2002,15(3):18-22.
[12]劉暢.籃球教程[M].北京:北京理工大學(xué)出版社,2011:112-165.
[13]高嵬,劉樹老.室內(nèi)設(shè)計[M].上海:東華大學(xué)出版社,2011:233-245.
[14]孫家廣.計算機圖形學(xué)(第3 版)[M].北京:清華大學(xué)出版社,1998.
[15]吳業(yè)紅.基于3DS Max 材質(zhì)與貼圖技術(shù)的教學(xué)探討[J].電腦知識與技術(shù),2009,5(36):103,112.
[16]程杰.大話設(shè)計模式[M].北京:清華大學(xué)出版社,2007:5-65.
[17]張明明.基于Unity3D 虛擬校園漫游的研究與實現(xiàn)[D].昆明:云南大學(xué),2014.