摘要:本文為實現(xiàn)虛擬現(xiàn)實程序開發(fā)的有效簡化,借助PAR平臺和PAR方法,總結(jié)出一種虛擬現(xiàn)實程序開發(fā)的新方法。
關(guān)鍵詞:VR技術(shù);Unity 3D; PAR平臺
隨著我國科學技術(shù)水平的不斷提高,各種高新技術(shù)不斷被研發(fā)出來并投入使用,其中以虛擬現(xiàn)實技術(shù)(VR)最受各行各業(yè)及技術(shù)研發(fā)人員的關(guān)注,可是在其實際應用當中,基于虛擬現(xiàn)實技術(shù)開發(fā)的應用均需要由計算機軟件來實現(xiàn),進而導致虛擬現(xiàn)實系統(tǒng)軟件尤為復雜,為此本文將PAR平臺及方法為基礎,結(jié)合虛擬現(xiàn)實軟件系統(tǒng)主要特征,對開發(fā)虛擬現(xiàn)實軟件的新方法進行探討。
1 概述
VR技術(shù)是集計算機、多媒體、傳感器、人工智能等多種先進技術(shù)于一體進而達成人機交互的一種技術(shù)手段,其可以將當前存在的多種技術(shù)進行合理應用,以此模擬出各式各樣的真實世界,從而讓人們產(chǎn)生到身臨其境的感覺。以當前科學技術(shù)的發(fā)展趨勢來看,VR技術(shù)在未來必定成為各行業(yè)的發(fā)展基礎,由于其具有較強的跨學科性,目前已經(jīng)成為科技探索中的第三種手段[1]。VR技術(shù)主要包含三個特征:其一,沉浸感,指人在虛擬環(huán)境和獲得與現(xiàn)實世界差距不大的感受;其二,交互性,指人處于虛擬環(huán)境中時,能與虛擬環(huán)境中的事物交互,同時可于人機操作界面反饋;其三,構(gòu)想性,人機交互時人可不受限制的選擇任一場景漫游,進而讓人在各種虛擬環(huán)境中產(chǎn)生更多新想法[2]。
2 Unity 3D簡介
Unity 3D是一款操作相對簡單的游戲開發(fā)工具,是一個由Unity Technologies公司開發(fā)并進行全面整合的專業(yè)游戲引擎[3]。Unity 3D編輯器在微軟公司開發(fā)Windows系統(tǒng)和蘋果公司專屬Mac OS X系統(tǒng)中均能穩(wěn)定運行,并可在Windows、Mac、iPhone、Android、Windows phone 8等系統(tǒng)平臺中發(fā)布游戲,同時也可在Unity web player插件輔助下進行網(wǎng)頁游戲發(fā)布。相比其他游戲引擎,Unity 3D具有更強的跨平臺性、交互性及可移植性,得到了許多游戲制作公司的青睞[4]。Unity 3D的最初設計目的并非虛擬現(xiàn)實,但在場景開發(fā)時開發(fā)者能實時預覽場景變化,致使其逐漸被VR所利用,物理碰撞器、網(wǎng)絡功能、燈光特效等功能都可由Unity 3D直接提供,從而可一定程度上降低開發(fā)者工作量,縮短場景渲染時間,進而使得虛擬現(xiàn)實的開發(fā)效率大幅度提升。
3 Unity 3D開發(fā)VR程序基本過程
研究發(fā)現(xiàn),開發(fā)一個典型VR程序通常要進行需求分析、模型建立和C#腳本開發(fā)與測試三個步驟,本文以相對簡單的VR球類游戲?qū)σ陨先齻€步驟進行舉例說明。
3.1 程序需求分析
游戲玩法介紹:在一個盒子中,存在n個普通小球、一個較大氣球及一個透明板,游戲過程中需借助VR設備吹動氣球,VR設備與攝像頭在此過程中能對用戶嘴部和肢體動作行動態(tài)捕捉,以評定用戶吹氣球的動作,從而將用戶吹氣球的過程模擬出來,游戲開始后透明板會以一定速度向氣球移動,用戶吹動氣球并撞到小球后得分,并使得透明板向遠離氣球的方向移動一段時間,此段時間過后透明板繼續(xù)向氣球移動,直至透明板撞到氣球,游戲結(jié)束,游戲結(jié)構(gòu)詳見圖1。
3.2 模型建立與加載
以往軟件系統(tǒng)實現(xiàn)人機交互多是常通過等標準輸出入設備,VR軟件系統(tǒng)則無需這些硬件設施,用戶在使用VR設備期間,僅需要一臺設備就可以直接進入VR軟件系統(tǒng)為其營造的3D環(huán)境中,設備還能實時監(jiān)測用戶的動作與表情,進而達成人機交互,由此可見,3D建模在VR軟件系統(tǒng)中發(fā)揮著極為重要的作用。通常情況下,3D建模需要首先使用3DS MAX等3D建模軟件進行模型設計,并將這些設計好的模型以.fbx或.obj格式存儲起來,隨后將這些模型文件導入Unity 3D中行上色處理,此過程中,Unity 3D主要提供了Assetbundle.Load讀取和加載資源與Resources.Load動態(tài)加載資源兩種加載方法。第一種加載方法主要是為了應對.fbx格式文件無法在Unity 3D中實現(xiàn)穩(wěn)定運行的狀況,因此普通情況下,常會利用這種加載方法先將文件轉(zhuǎn)換為.prefab格式,隨后再導入Unity 3D中進行上色。第二種加載方法能夠從缺省打進程序包中的AssetBundle里面行資源加載,但通常此類文件需要由用戶自建,運行時為動態(tài)加載,加載路徑與文件來源均能由用戶指定,所以利用這種方式進行資源加載,可有效解決資源依賴問題,以便于用戶制定路徑和來源對GameObject進行快速加載[6]。
3.3 C#腳本開發(fā)與測試
C#腳本是一種以C#為主要編寫方式、以控制3D模型移動和功能為主要目的的控制程序,在Unity 3D導入所有以.prefab格式儲存的3D模型后,需用進行C#腳本編寫以實現(xiàn)對模型的控制。各個C#腳本相互制約、相互聯(lián)系,其能通過對用戶數(shù)據(jù)進行全面收集,進而控制3D模型,從而完成人機交互,并達成多種功能。
4 VR程序開發(fā)關(guān)鍵技術(shù)
4.1 3D建模技術(shù)
研究表明,模型精細程度與用戶體驗之間存在緊密聯(lián)系,因此在一般情況下,優(yōu)秀的VR作品都會伴隨精致的3D模型,想要構(gòu)建出更為精細的3D模型,則需要計算機圖形技術(shù)和立體顯示技術(shù)這兩種技術(shù)手段的幫助。計算機圖形技術(shù)是一種利用計算機完成圖形生成、顯示及繪制的技術(shù),圖形在計算機中多以數(shù)據(jù)形式存在和表達,如果想要將對圖形進行顯示、繪制、打印等操作,則需要將數(shù)據(jù)轉(zhuǎn)化成線條,此技術(shù)不僅可以實現(xiàn)大批量機械圖、電路圖等圖形的快速規(guī)范制作,同時還能通過其制作動態(tài)圖形和三維圖形,從而將繪圖無法解決的問題有效解決。立體顯示技術(shù)則是一種能實現(xiàn)虛擬現(xiàn)實的技術(shù)手段,現(xiàn)階段存在的方式主要包括雙色眼鏡、立體顯示器、真三維立體顯示器、主動立體顯示等[7]。
4.2 C#腳本編寫技術(shù)
C#作為一款由微軟公司研發(fā)的程序設計語言,主要面向于.NETFramework和NET Core之上的高級程序設計。應用Unity 3D開發(fā)VR程序的過程中,需要開發(fā)者對3D模型進行腳本編寫才能使其運作起來,富有生命力,因此在此期間難免會使用C#語言來進行腳本編寫,并且VR程序越大,需要編寫的C#腳本便會越多越復雜。
5 VR在已拓展PAR平臺中的實現(xiàn)
5.1 PAR平臺及方法
PAR平臺和PAR方法是一種綜合性較強的軟件開發(fā)環(huán)境。PAR平臺是一種由Apla代碼轉(zhuǎn)換至高級程序設計語言的自動轉(zhuǎn)換工具,包含Radl轉(zhuǎn)換為Apla的自動轉(zhuǎn)換系統(tǒng)、Apla轉(zhuǎn)換為Java的自動轉(zhuǎn)換系統(tǒng)、Apla轉(zhuǎn)換為C++的自動轉(zhuǎn)換系統(tǒng)等;PAR方法主要由一系列建模語言和形式化規(guī)則兩方面內(nèi)容組成。
5.2 PAR平臺拓展思路
框架選擇是軟件開發(fā)過程中十分重要的步驟之一,高性能框架可在軟件開發(fā)的后續(xù)工作中發(fā)揮出重要作用,但是并非所有軟件框架均可達到完美程度,比如利用Unity 3D進行引擎開發(fā)時,就會存在許多需要使用C#編寫代碼的問題,但針對這些問題,合理使用PAR平臺及方法,便只需要進行少量代碼編寫,即可將一些相對復雜的功能設計出來,進而使編程效率得到大幅度提升[8]。
5.2.1 PAR方法簡化VR程序開發(fā)過程
通過對大量VR程序開發(fā)過程進行研究,現(xiàn)己明確VR程序的開發(fā)過程,因此便可將由一系列建模語言和形式化規(guī)則組成的PAR方法拓展到VR領域,并通過使用效率驅(qū)動的開發(fā)方法對程序進行簡化,從而實現(xiàn)程序自動化。因此簡化VR程序開發(fā)過程時,首先可利用PAR方法中的建模語言對利用UML建模的VR程序進行簡化,其次利用Apla語言對C#腳本的編寫效率進行全面提升,從而減少VR程序開發(fā)所需時間,并確保開發(fā)者無需熟悉C#語言,即可實現(xiàn)復雜C#腳本的編寫,最后通過將Apla語言編寫代碼轉(zhuǎn)化成C#腳本,以便于Unity 3D程序隨時調(diào)用。
5.2.2 PAR平臺拓展數(shù)據(jù)庫
使用Unity 3D進行VR程序開發(fā)時,大多數(shù)VR程序均要使用數(shù)據(jù)庫操作,但是利用Unity 3D本身提供的圖形化界面無法確保這些數(shù)據(jù)庫操作能夠有效實現(xiàn),而是需要通過Visual Studio編寫以下程序來實現(xiàn):
更新數(shù)據(jù):
string s=“server=localhost: database=u3dproject; uid=sa;pwd=qwe”;
SqIConnection conn-new SqIConnection
conn.Open0;
SqICommandcmd=new SqICommand0;
cmd.Connection=conn;
cmd.CommandText=“INSERT INTO Userlnfo VALUES (Jom.Boy,1 7,Namchang)”;
SqID ataReader=sdFcmd.ExecuteReader0;
讀取數(shù)據(jù):
string s=“server=localhost;database=u3dproj ect;uid=sa;pwd=qwe";
SqIConnection conn=new SqIConnection(s);
conn.Open0;
SqICommandcmd=new SqICommand0;
cmd.Connection-conn:
cmd.CommandText=“select*from Table”:
SqIDataReadersdr =cmd.ExecuteReader();
while (sdr.Read0){
print(sdr[O].ToString0); )
cmd.Dis pose();
6 結(jié)束語
大數(shù)據(jù)時代的到來,以及互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,虛擬環(huán)境中的交互體驗越來越受到關(guān)注,VR技術(shù)不僅改變了人機交互方式,同時也改變了人類的生活方式,致使基于VR技術(shù)的程序開發(fā)顯得極為重要,為有效應對當前VR程序開發(fā)方法復雜的現(xiàn)象,應積極探索新方法以簡化VR程序開發(fā),其不僅有助于加快VR程序開發(fā)速度,同時對于促進我國VR技術(shù)發(fā)展也具有一定推動作用。
參考文獻
[1]馬寶忠,孫聰,趙連政等,基于虛擬現(xiàn)實的變電站交直流電源操作仿真系統(tǒng)設計[J].電子設計工程,2020,28 (19):31-34+39.
[2]閆亞剛,劉恒,李中旗等,基于虛擬現(xiàn)實技術(shù)的高壓開關(guān)設備三維檢修系統(tǒng)設計[J].電子設計工程,2020,28 (17):156-159+164.
[3]蔣寧,徐濟惠,基于可視化的VR編輯引擎[J].計算機系統(tǒng)應用,2020,29 (5):76-81.
[4]高偉,王昱霖,郭瑾.國外虛擬現(xiàn)實與增強現(xiàn)實技術(shù)教育研究熱點及啟示[J].開放學習研究,2020,25 (2):47-54+62.
[5]彭亮,仲思東,李學鵬.基于真三維模型的室內(nèi)定位系統(tǒng)設計[J].科學技術(shù)與工程,2020,20 (13):5205-5209.
[6]馮佳,安建強.虛擬現(xiàn)實技術(shù)在國內(nèi)教育中的運用現(xiàn)狀與趨勢分析[J].開放學習研究,2020,25 (1):39-47.
[7]谷冰,基于虛擬現(xiàn)實技術(shù)和智慧校園設計研究[J].電子測試,2020 (5):135-136.
[8]周哲泓,薛錦云,黃捷文.虛擬現(xiàn)實軟件系統(tǒng)開發(fā)方法研究[J].計算機工程與科學,201 9,41 (11):1968-197 5.
作者簡介
李傳志(1984-),男,吉林省吉林市人。碩士學位,講師。研究方向為計算機科學與技術(shù)。