閆興亞王馨梅魏夢婕
(1.西安郵電大學(xué)數(shù)字藝術(shù)學(xué)院 西安 710121)(2.西安郵電大學(xué)計(jì)算機(jī)學(xué)院 西安 710121)
虛擬現(xiàn)實(shí)[1](VirtualReality,VR)也稱靈境技術(shù)或人工環(huán)境,是在計(jì)算機(jī)系統(tǒng)及傳感器技術(shù)模擬的基礎(chǔ)上生成可進(jìn)行交互、相互影響的數(shù)字化環(huán)境,實(shí)現(xiàn)的是一種嶄新的人機(jī)交互狀態(tài),通過對虛擬世界中的物體進(jìn)行操作,參與其中的事件,并同時(shí)提供視、聽、觸覺等直觀而又真實(shí)的感受和體驗(yàn)。隨著近些年來虛擬現(xiàn)實(shí)技術(shù)的快速發(fā)展,人們將虛擬現(xiàn)實(shí)應(yīng)用于很多領(lǐng)域,如建筑、醫(yī)療、教育等等。在應(yīng)用于教育上時(shí),虛擬現(xiàn)實(shí)對使用者的學(xué)習(xí)具有巨大的輔助和促進(jìn)作用[2]。首先,虛擬現(xiàn)實(shí)提高了知識(shí)呈現(xiàn)的情境性與直觀性;其次,它可以為使用者提供豐富多樣的個(gè)性化學(xué)習(xí)環(huán)境,踐行“因材施教”的教育理念;再次,它可以融合游戲化的特征,為使用者提供主動(dòng)探索的機(jī)會(huì),提高使用者學(xué)習(xí)的內(nèi)在動(dòng)機(jī)。
虛擬現(xiàn)實(shí)技術(shù)較早被歐美的一些國家應(yīng)用于教育——自20世紀(jì)80年代以來,美國國立醫(yī)學(xué)圖書館進(jìn)行了人體解剖圖像數(shù)字化研究、西班牙大學(xué)開發(fā)了虛擬電子儀器工作平臺(tái)、新加坡大學(xué)開發(fā)了遠(yuǎn)程示波器、德國漢諾威大學(xué)建立了虛擬自動(dòng)化實(shí)驗(yàn)室、意大利帕瓦多大學(xué)建立了虛擬教育實(shí)驗(yàn)室、澳大利亞和新西蘭于2009年合作成立的虛擬現(xiàn)實(shí)工作組和美國林登實(shí)驗(yàn)室的Second Life項(xiàng)目等[2]。VR被NMC的《地平線報(bào)告:2016高等教育版》認(rèn)為是未來2~3年解決深度學(xué)習(xí)矛盾的關(guān)鍵技術(shù)[3]。VR能適應(yīng)學(xué)習(xí)媒體的情景化及自然交互的需求,定制與現(xiàn)實(shí)社會(huì)類似的環(huán)境,帶給學(xué)習(xí)者更多直觀的、過去很難實(shí)現(xiàn)的學(xué)習(xí)體驗(yàn)。
基于此,本文采用3DMax作為建模工具,選用Unity3D游戲引擎為開發(fā)平臺(tái),使用HTCVive作為輸出設(shè)備,設(shè)計(jì)、開發(fā)了基于虛擬現(xiàn)實(shí)的絲綢之路教學(xué)系統(tǒng),并且探討三維場景建模及交互設(shè)計(jì)中的關(guān)鍵技術(shù)。
虛擬現(xiàn)實(shí)絲綢之路交互系統(tǒng)的開發(fā)遵照軟件開發(fā)流程,可分為兩大階段:第一階段是分析系統(tǒng)模塊與對素材的收集整理,構(gòu)建絲綢之路相關(guān)的三維模型,主要是利用三維建模軟件3DMax和圖片編輯軟件PhotoShop,完成的模型以FBX格式導(dǎo)入到Unity工程中。第二階段包括兩方面:一是搭建場景,其主要工作為搭建絲綢之路涉及沿線的城市地理位置分布、周圍環(huán)境、碰撞檢測等。二是在虛擬三維場景中實(shí)現(xiàn)用戶與環(huán)境之間的交互,主要工作是采用C#語言編寫交互腳本將靜態(tài)的三維模型與各模塊連接起來。系統(tǒng)開發(fā)的詳細(xì)流程如圖1所示。
虛擬絲綢之路的設(shè)計(jì)目標(biāo)是給用戶提供一個(gè)絲綢之路仿真環(huán)境,并讓用戶與環(huán)境之間進(jìn)行交互,從而達(dá)到用戶對知識(shí)的理解和掌握。虛擬絲綢之路的設(shè)計(jì)如下。
用戶通過HTC Vive設(shè)備來體驗(yàn)該教學(xué)系統(tǒng)。HTC Vive是一款虛擬現(xiàn)實(shí)頭戴式顯示器,它能通過三個(gè)部分來給用戶提供沉浸式體驗(yàn):一個(gè)頭顯、兩個(gè)手柄和一個(gè)在空降內(nèi)同時(shí)追蹤頭顯與手柄的定位系統(tǒng)(Lighthouse)。考慮到硬件和軟件設(shè)備的流暢,其場景不易過大,本文將絲綢之路劃分為六個(gè)子場景。

圖1 系統(tǒng)開發(fā)流程
絲綢之路總路線展示模塊。總路線場景三維地展示了絲綢之路的沿線城市的走向及古今城市名稱,通過矢量坐標(biāo)來計(jì)算出城市間相對位置,盡量接近現(xiàn)實(shí),讓用戶對絲綢之路走向有一定認(rèn)知。
城市漫游模塊。用戶通過佩戴HTC Vive設(shè)備,可以在現(xiàn)實(shí)空間里隨意走動(dòng)游覽對應(yīng)著在虛擬場景中的漫游,或者用手柄來直接到達(dá)指定區(qū)域。
城市資料展示模塊。將絲綢之路沿線重點(diǎn)城市的相關(guān)介紹展示給用戶,配以語音、文字解說,使用戶可以迅速地了解城市的人文地理信息。
隱形性評估模塊。該教學(xué)系統(tǒng)在后臺(tái)一直隱形性地記錄用戶各種行為數(shù)據(jù)到日志中,并將這些數(shù)據(jù)通過貝葉斯網(wǎng)絡(luò)進(jìn)行處理分析,不斷得出用戶的一個(gè)各種能力的評估。
絲綢之路虛擬交互系統(tǒng)建立的關(guān)鍵是模型的建立,模型能夠直觀地影響系統(tǒng)整個(gè)的仿真效果。絲綢之路模型主要包括地形模型、建筑模型和環(huán)境模型。首先深入了解絲綢之路沿線各城市所處地形,然后按照布局進(jìn)行建模。地形模型可利用Unity3D引擎中的Terrain和Plane來生成地表對象。建筑模型采用3DMax 2010作為建模工具,將外部模型導(dǎo)入其中,對于建筑上一些表面的細(xì)節(jié)可以采用紋理映射的辦法,使用紋理圖片代替復(fù)雜模型。環(huán)境模型也就是植被的相關(guān)模型,考慮到當(dāng)模型中面數(shù)數(shù)目超過系統(tǒng)計(jì)算能力時(shí),在場景漫游時(shí)無法及時(shí)完成幀處理而破壞了場景變換的平滑性從而出現(xiàn)的卡頓問題,應(yīng)減少模型網(wǎng)格中的三角形面數(shù)。建立完模型后導(dǎo)出為.fbx文件,再導(dǎo)入到Unity項(xiàng)目里的Project文件下。
由于該系統(tǒng)包含許多功能和模型,若只在一個(gè)場景中既無法劃分功能模塊又會(huì)增加系統(tǒng)的執(zhí)行時(shí)間,為此,采用多場景模式,并對每個(gè)子場景單獨(dú)建模。這樣降低了各個(gè)場景的復(fù)雜度,提高了渲染速度。在這種多場景模式下,通過用戶的不同選擇來載入不同的子場景,減少了系統(tǒng)載入的時(shí)間,讓用戶的體驗(yàn)感更好。本系統(tǒng)包括的主場景有絲綢之路總路線展示場景、城市漫游場景、城市資料展示場景,由于絲綢沿線城市眾多,因此只選擇靠近起點(diǎn)(西安)的三個(gè)主要城市,所以共有七個(gè)子場景。
以Unity3D引擎為開發(fā)核心,使用C#語言編寫交互腳本實(shí)現(xiàn)用戶在HTCVive設(shè)備上與環(huán)境之間的交互作用。本系統(tǒng)的交互主要包括城市漫游和場景鏈接。
3.3.1 城市漫游
城市內(nèi)漫游,是用戶以第一視角進(jìn)行參觀游覽,通過行走在劃定范圍內(nèi)的區(qū)域或利用手柄進(jìn)行瞬移來到達(dá)比游戲區(qū)域大的環(huán)境。
為了使用戶佩戴HTC Vive攝像頭與Unity3D相關(guān)聯(lián),需在Hierarchy面板中刪除原有Camera,增加CameraRig和SteamVR,這樣用戶就可以在HTC Vive設(shè)備上看到虛擬場景。點(diǎn)擊CameraRig在Inspector面板中可以看到Steam_VR_Play Area腳本,這是用來劃定可移動(dòng)范圍的。
由于用戶不能走出該劃定范圍,因此可以行走在較近范圍,而對于較遠(yuǎn)的區(qū)域,可以使用Unity3D中生成的導(dǎo)航網(wǎng)格作為用戶傳送邊界,對場景中任意對象添加Vive Nav Mesh組件,并在Inspector面板點(diǎn)擊Update Navmesh Data按鈕,從而在更新場景時(shí)用新Nav Mesh烘焙Vive Nav Mesh組件。在用手柄進(jìn)行瞬移時(shí),利用貝塞爾曲線來選擇瞬移的目的地,用戶通過手柄舉起的角度來選擇目的地的距離從而進(jìn)行瞬移。
3.3.2 場景鏈接
該系統(tǒng)由七個(gè)子場景組成,用戶可以通過場景之間的鏈接來選擇場景。該系統(tǒng)有兩種場景鏈接方式:一是用戶通過到達(dá)特殊傳送點(diǎn)進(jìn)行碰撞來跳轉(zhuǎn)場景;其二是用戶通過手柄發(fā)射出的射線點(diǎn)擊物體直接鏈接到指定場景。兩種場景鏈接的實(shí)現(xiàn)步驟如下。
1)用戶通過到達(dá)傳送點(diǎn)來跳轉(zhuǎn)場景的步驟為先創(chuàng)建一個(gè)空物體Object作為父對象,在Object下建立Sphere對象,刪除Mesh Renderer屬性,并在Inspector面板中給該對象添加Capsule Collider碰撞器組件且選擇Is Trigger屬性使之成為觸發(fā)器。編寫場景觸發(fā)跳轉(zhuǎn)腳本,添加到Sphere對象上。下面為場景鏈接代碼。

2)用戶通過手柄的射線點(diǎn)擊跳轉(zhuǎn)的步驟為先建立一個(gè)空對象TransitionToGame,并在該對象上創(chuàng)建一個(gè)場景鏈接腳本TransitionGame,然后再創(chuàng)建一個(gè)Button對象,在該對象的Inspector面板中的Button組件里添加腳本TransitionGame點(diǎn)擊事件。舉例腳本如下。

基于Unity3D和HTC Vive的絲綢之路虛擬交互系統(tǒng)的部分效果截圖如圖2~圖4所示。
如圖2所示,用戶在佩戴好HTCVive設(shè)備并調(diào)試好硬件環(huán)境后,進(jìn)入絲綢之路虛擬交互系統(tǒng)開始界面,范圍以絲綢之路全路線為背景墻面,用戶可以轉(zhuǎn)動(dòng)頭部或走路進(jìn)行觀察,并可以用手柄扣動(dòng)扳機(jī)來選擇場景。

圖2 開始界面

圖3 絲綢之路總路線圖
如圖3所示,絲綢之路總路線圖是用戶點(diǎn)擊開始按鈕,路線圖及城市名稱依次浮現(xiàn),以三維視角向用戶展示絲綢之路沿線城市分布,并且用戶可以點(diǎn)擊城市進(jìn)行城市漫游。

圖4 城市漫游
如圖4所示,城市漫游是用戶通過佩戴的HTC Vive頭盔以第一視角游覽城市全貌,可以在限定范圍內(nèi)小幅度走動(dòng),使用戶可以身臨其境地置身于城市中,或者通過手柄的射線來選擇遠(yuǎn)處目的地,防止長時(shí)間走動(dòng)帶來的眩暈感。
人工智能、大數(shù)據(jù)分析和虛擬教育被稱為影響未來的三大科技創(chuàng)新方向。虛擬現(xiàn)實(shí)技術(shù)可以將讓學(xué)習(xí)者完全沉浸于虛擬環(huán)境中,通過較強(qiáng)的交互性和有趣的游戲元素給學(xué)習(xí)者帶來更多的學(xué)習(xí)樂趣,促進(jìn)學(xué)習(xí)者在愉快的狀態(tài)下進(jìn)行自主學(xué)習(xí)。本文采用多場景建模方法,利用3DMax構(gòu)建模型,在Unity3D游戲引擎進(jìn)行開發(fā),實(shí)現(xiàn)了場景之間相互鏈接和用戶與系統(tǒng)的信息交互,使用HTC Vive設(shè)備作為輸出硬件,使用戶能夠完全沉浸地、自主地、交互地在系統(tǒng)中愉悅無意識(shí)時(shí)間流逝的知識(shí)學(xué)習(xí)。運(yùn)行結(jié)果表明,本文所設(shè)計(jì)的絲綢之路虛擬交互系統(tǒng)能較好地展示絲綢之路城市,讓用戶以直觀逼真的視覺感受和交互動(dòng)作來深刻學(xué)習(xí)絲綢之路文化,也將會(huì)為教育領(lǐng)域虛擬學(xué)習(xí)提供一定的參考價(jià)值。