蔡勁



摘要:虛擬現實技術是由多種技術共同組建成的虛擬世界并使用戶能夠感受其仿真性的系統,它利用計算機構建一種虛擬環境,讓人能夠在其中獲得視覺與聽覺上的感知,從而達到逼近真實世界的效果,讓人有一種沉浸式的感受。博物館作為文化的傳承體現,其中的文物價值不可估量,它對文明的延續具有相當重要的作用,然而現階段由于各方面的技術不夠成熟,使得博物館的局限性頗高,因此本文將要介紹的是一種借助Unity3d平臺將虛擬現實技術與博物館相結合所產生的虛擬博物館技術。首先對該技術進行具體地分析,然后對這種技術的實現步驟進行詳細的概述,最終對其結果進行深入的評價,以此來直觀地體現虛擬博物館技術的優劣性。
關鍵詞:虛擬現實技術;博物館;Unity3d
中圖分類號:TP393? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)36-0194-04
引言
盡管博物館文化一直在積極發展,但是其局限性始終處于較為顯眼的狀態,包括:1)博物館由于其地理位置原因,對于距離較遠的游客十分不便;2)盡管博物館對于文物的保護已經是十分仔細細心,但是難以保證文物的侵蝕完全停止;3)由于對文物的保護,游客難以近距離觀看展柜中的文物,游覽視角十分有限且交互性不足。
隨著計算機技術的飛速發展,各行各業都或多或少都能與計算機技術相結合。虛擬現實技術作為一項新興的計算機技術,它在對文物的展示中具有得天獨厚的優勢,用戶可以通過這種沉浸式的體驗得到最逼真的感受。將虛擬現實技術與博物館相結合,用戶便可以打破空間的限制,隨時隨地的觀賞游玩,能夠近距離地觀察每一個文物,并不會受其展柜的限制,甚至可以拿在手中仔細揣摩,有效地解決了真實博物館所具有的局限性。
本課題所要研究的是在Unity3d平臺下所構建的基于虛擬現實技術的博物館游覽系統。具體研究內容如下:1)選擇合適的軟件平臺進行虛擬博物館的搭建,其中Unity3d平臺是一個可以進行可視化游戲編輯、2D與3D游戲的開發以及虛擬現實游戲等多類型的綜合型游戲開發工具,它可以由用戶自己創建模型,添加動畫與音頻,并由代碼控制實現模型的功能變換。對于現階段的虛擬博物館建立而言,專業的游戲引擎所具有的優勢是難以替代的,因此本課題要建立的虛擬博物館選擇在Unity3d平臺上進行設計。2)使用合適的硬件設備進行人機交互的實現。虛擬現實技術是本課題實現虛擬博物館的重要手段,它簡單來說有三個層次,分別是3D建模層、VR層與驅動層,這三個層次相互作用使得用戶可以得到沉浸式的真實感受。本課題中將直接使用已有的HTC虛擬現實設備進行虛擬博物館的實現。
1 虛擬博物館的設計方案
1.1 Unreal Engine與Unity3d平臺對比
Unreal Engine平臺擁有更好的畫面渲染技術,所制作出來的成品的畫面效果可堪比電影CG級別,但同時對于設備的要求較高,并且對使用者的編程能力和美工能力有一定的要求。
Unity3d平臺相比較于UE更簡易一些,盡管最終成品的畫面效果不如UE平臺所開發,但是開發效率要比UE高很多,沒有UE那么復雜的結構,開發者可以使用多種插件進行更為簡便的設計,同時在進行開發時,UE需要涉及引擎的定制,C++級的難度相較于Unity3d的mono開發難度要更加高。因此,本課題更傾向于使用Unity3d平臺進行開發。
1.2 虛擬博物館框架設計方案
由于難以到真實的博物館中去掃描實際文物來進行真實的建模,因此本課題中的文物模型大多是由現存的文物圖片來直接建模。博物館整體結構預計設計為九個展臺,其中七個展臺依次排序環繞博物館墻壁,每個展臺分為兩層,其上有不同的文物模型,剩余兩個展臺位于博物館中央,是360度可觀測的全景展臺,此外,還會在空余的一面墻上掛上敦煌壁畫,以此來豐富博物館內的館藏種類。虛擬博物館展臺擺放圖如圖1所示。
因此對于虛擬博物館的整體框架來說,首先要進行建模,這里可以用已有的文物形狀的模型,然后將建好的模型導入至Unity3d平臺,利用現存的文物館藏圖片添加材質,再建立博物館模型,包括墻壁、天花板與展臺,之后把建好的文物館藏模型放置于展臺之上,對博物館整體進行布局。當博物館的虛擬環境搭建成功后就進行虛擬現實技術環境的搭建,使用SteamVR包將虛擬環境建立成為虛擬現實環境,然后進行編程,包括用戶的漫游功能,交互功能以及其他功能的編寫。連接HTC設備,調試好后便可以進入到虛擬環境中,實現已經編寫好的所有功能并對博物館中的館藏進行仔細地觀察,達到本課題的目的。
1.3 虛擬博物館功能設計方案
在虛擬博物館中,如果只有展示功能的話,便凸顯不出虛擬現實環境下對已有事物所能體現的優點,因此要對虛擬博物館進行添加一系列現實中難以實現的功能。本課題中計劃實現文物的拾取功能、視頻功能以及拼接功能,還有用戶的漫游功能。首先由于虛擬現實設備的空間限制,如果只是依靠人的雙腳移動的話,在虛擬環境中很難達到每一個地方。需要依靠手柄進行實現,可以令其在我們按下手柄按鍵的時候,發射出一道射線,射線的終點就是用戶將要移動的終點。移動功能流程圖如圖2所示。
其次現實中文物的珍貴性與易損毀性導致游客無法更清楚更近距離地觀察文物,更不用說拿在手中端詳,因此在虛擬環境中,這一點就可以被實現。利用HTC硬件設備中的手柄,可以對其進行編程,使其當與文物在一定距離內時,文物可以被選中,從而將文物能夠掛在手柄上,也就能夠給用戶一種拿在手中的感覺,讓用戶可以近距離的仔細地觀察文物,且不用擔心文物的保護。拾取功能流程圖如圖3所示。
還可以進行更多的功能設計,視頻功能將會采用點擊播放的形式,將視頻與墻壁上的壁畫進行連接,當用戶使用手柄與壁畫處于一定距離內時,壁畫也成為選中形式,此時扣動手柄扳機,視頻將會在這面墻上出現,播放完成后可以再次扣動扳機使視頻播放器消失,再次將壁畫顯現出來。最后還有拼接功能,這一功能充分滿足了多數博物館愛好者的需求,在日常生活中,大多數人根本無法接觸到文物的拼接修復工作,在博物館內也很難體驗到這一點,因此本課題決定將這一功能也實現在該博物館內,計劃將博物館的某一展臺設計成為專門進行文物拼接的區域,將模型的碎塊擺放在展臺的第一層,第二層放置模型的虛影,供用戶進行拼接使用。當手柄靠近碎塊的時候可以將碎塊拿起,移動碎塊至第二層的虛影上的相同模型附近,松開扳機便可以將碎塊模型放入虛影中,當全部的碎塊都放置進去后虛影就變成了一個完整的拼接好的模型。拼接功能流程圖如圖4所示。
本課題將會把以上所敘述的四個功能進行全面地實現,使得最終形成的虛擬博物館不僅可以進行文物的展示,還可以有諸多的交互功能,增加趣味性的同時也體現出虛擬現實技術能夠帶來的不同于真實環境的優勢。
2 虛擬博物館實現步驟
2.1 導入模型并搭建框架
實驗開始后把在互聯網上找到的文物圖片和相似的文物模型導入到Unity3d中的Assets文件夾中,把對應文物模型的圖片一一導入到模型的材質中,形成了完整的文物模型。創建好設計思路中的博物館形狀,使用六塊CUBE模型組成了博物館的墻壁和地面,再次創建多個CUBE模型,組成具有兩層結構的展臺,這樣的展臺一共需要七個,將這七個展臺放置在貼靠墻壁的位置并依次排列,再次創建三個CUBE模型作為博物館中心區域的全景展臺,用以放置較大的模型,最后在一面沒有展臺的墻上放置壁畫模型,至此,博物館的框架基本搭建完成。虛擬博物館框架如圖5所示。
2.2 實現漫游功能
在虛擬環境中,只有模型供欣賞是絕對不夠的,作為最基礎的真實感,能夠在虛擬環境中移動是十分重要的,因此第一個需要實現的就是漫游功能。在本課題中,漫游功能是依靠手柄控制器來進行的,所以實現漫游功能的基本思想就是使用手柄確定移動方向,當按下按鍵的時候手柄可以發射射線,射線所碰觸到的地方就是用戶將要移動到的地方。在這一部分中,避免用戶會移動至博物館以外的位置,需要將地面設置出單獨的標簽“floor”,只有當射線接觸到具有“floor”標簽的物體時,才會讓用戶移動至該位置。
2.3 實現拾取功能
拾取功能也是建立在手柄控制器之上的,因為在虛擬環境中,手柄控制器充當的是用戶的雙手,所以在實現拾取功能時,依舊是用手柄來操作。基本思想就是需要距離的判定以及動作的判定,在本課題中,當手柄與文物模型的距離小于等于0.5f的時候,判定成功,此時手柄輪廓會高亮,告知用戶可以進行拾取操作,當扳機按下時,文物模型則會被手柄拾取,這里是進行了動作的判定,對手柄扳機的按下進行了判定,判定成功時,將手柄的實時位置賦給文物模型,這樣模型就會一直跟隨手柄,二者隨時處于同一位置。當扳機松開時,要讓文物模型回歸原位,因此在按下扳機之前,要將文物模型的原位置和歐拉角進行保存,這里可以用一個空物體來保存原有的位置和歐拉角,松開扳機時對這一動作再次進行判定,判定成功后再將之前保存好的位置和歐拉角賦給文物模型,也就是將此時的空物體的位置和歐拉角賦給了所拾取的文物模型。
為了保證左手柄和右手柄都可以實現這一功能,還需要對左右手柄進行判定,先對二者的實時位置進行保存,然后比較二者的大小,將這個比較值保存為布爾量,設定當右手柄的位置大于左手柄時,布爾量為真,此時再對布爾量進行判定,值為真時,只有右手柄可以拿起文物模型,值為假時,只有左手柄可以拿起文物模型。
2.4 實現視頻功能
視頻功能與之前的兩個功能一樣,都需要手柄來進行控制,本課題中,視頻功能被設計到了墻壁的壁畫上,這一面墻上一共有五張壁畫,再次對這五張壁畫與手柄的距離進行判定,當二者的距離小于等于0.5f時,手柄再次實現高亮,此時意味著可以進行按下扳機的操作來實現視頻的播放,與拾取功能類似,要對扳機進行判定,按下并松開后,敦煌壁畫的視頻則開始播放。
視頻的播放被設置到了“movie plane”標簽的plane上,將這個plane的位置移動至設有壁畫的墻面上,這時視頻在播放的時候就會出現在這面墻上。
當視頻播放完畢后,需要再把plane刪除掉,否則會影響到壁畫的展示,本課題設計扣動扳機兩次后,自動刪除plane,不影響到壁畫的展示,如果需要再一次進行視頻的播放,可以再次對壁畫扣動扳機。這一部分的主題思想是把扳機的扣動次數進行保存,當扣動次數達到兩次時,進行一次判定,判定成功則刪除plane。
2.5 實現拼接功能
拼接功能與拾取功能較為類似。本課題中拼接功能的實現區域將會特定到一個單獨的展臺上,在這個展臺上則是兩部分,展臺的第一層放置的是分成碎塊的文物模型,第二層放置的是完整的文物模型虛影。首先將完整的文物碎塊模型順序打亂放在展臺第一層,作為拼接時候的素材,第二層放置該文物模型的完整體,調整shader著色器,使其為透明狀態并將材質顏色變為白色,這樣最終顯示出來的就會是一個供拼接使用的虛影。
拼接功能的主要思想是使用手柄控制器拿起文物模型的碎塊,然后將其放置在虛影中與碎塊相同的地方,這一部分與拾取功能較為類似,同樣,當手柄與碎塊模型的距離小于0.2f時,手柄高亮,表示可以拿起模型,然后扣動扳機拿起碎塊模型,將其靠近虛影中相同的部分,這里再一次進行距離判定,當距離小于等于0.3f時,松開扳機,將虛影中相同部分的模型的位置和歐拉角賦給碎塊模型,此時碎塊模型移動至虛影中相同部分的位置,全部的碎塊都移動至虛影中時,即拼接過程完成。
3 實驗結果與分析
3.1 實驗環境
搭建環境總共有兩個部分,分別是軟件環境和硬件環境。對于軟件環境來說,首先要建立Unity3d平臺。可以登錄Unity3d官網unity.com下載Unity3d個人版,安裝完成后Unity3d平臺即搭建完畢。然后下載SteamVR軟件,將硬件設備連接至Unity3d平臺,打開SteamVR檢查所有硬件部分是否都連接成功,全部連接成功后則軟件環境搭建完畢。軟件環境如圖6所示。
3.2 實驗結果與分析
最終共建立或找到49件文物館藏模型與五張敦煌壁畫模型,對其進行貼圖后擺放至各展臺來進行展示。通過對這些文物模型進行上文中所提及的各種功能設計,首先可以使用手柄通過按鍵實現漫游,即第一人稱的移動,手柄所發射出的射線終端所接觸到的地面便是可以到達的地方,但是在這里射線的終端必須接觸到的是帶有標簽“floor”的地面才可以進行漫游,也就是說,只有當手柄所發出的射線終端接觸的是博物館的地面時,才能夠進行移動。經過試驗,可以使用手柄到達博物館內的任意一個位置。漫游功能實現如圖7所示。
當手柄接觸到這些文物模型時,二者之間的距離小于等于上文中所規定的距離0.5f,這時可以將擺放在展臺上的任意一件文物模型拿起仔細觀察。這樣一個判定的距離,剛好能夠避免手柄會同時判定到兩個模型中從而出現BUG。當“拿起”這些文物模型的時候,這些模型不僅是位置會跟隨手柄移動,其歐拉角也會根據手柄的角度變換而變換,進一步增強了本課題所實現的虛擬博物館的真實性。當放下文物時,文物會自行回歸到原來的位置,空物體保存文物的原有位置和歐拉角,不會影響視覺感官并且不會受其他模型的影響,能夠直接將位置和角度重新賦給模型。拾取功能實現如圖8所示。
在博物館內的拼接區,兩層結構的展臺上,第一層放置的是一個被拆開的文物瓷器,第二層是該瓷器完整的虛影,為第一層文物碎塊所要進行拼接的參考模型以及拼接區域。當手柄與第一層的模型距離小于0.2f時,可以拿起這些模型,然后再將其放置于第二層參考模型的0.3f距離內,松開扳機后模型組成到虛影上,所有第一層的模型皆可以放置到第二層進行拼接。在這一功能的實現中,拿起碎塊模型的距離為0.2f,而拼接時的距離為0.3f,前者小于后者0.1f,是因為要避免在放置碎塊模型時,手柄會判定到之前已經拼接上的碎塊模型,進而會出現BUG,因此后者距離大于前者可以有效地避免這一情況的發生。拼接功能實現如圖9所示。
最后的一面墻上懸掛的是五幅敦煌壁畫,同時視頻功能也被設計在這一區域中。同樣是通過手柄進行控制,當手柄與壁畫的距離小于等于0.5f時,壁畫處于可被激活狀態,扣動扳機后視頻開始播放。視頻的播放是處于另一個新的plane上,這個plane事先不會放置在場景中,而是通過“召喚”的形式出現,這樣可以避免plane影響到壁畫的展示。在這里與前兩部分功能不相同的是,這個0.5f的距離判定的是一個事件的發生,而不是一個動作。當連續扣動兩下扳機后,進行動作刪除plane,這時可以看到這面墻壁上的plane被刪除,視頻也停止播放,再次激活視頻功能后可以再次進行刪除操作。視頻功能實現如圖10所示。
參考文獻:
[1] 巫影,何琳,黃映云,等.虛擬現實技術綜述[J].計算機與數字工程,2002,30(3):41-44.
[2] 邵恒.VR技術在博物館文物保護中的應用[J].智庫時代,2018(43):149,152.
[3] 李赟.3D虛擬博物館系統的研究與實現[D].鎮江:江蘇大學,2017.
[4] 張浩達.關于歐洲虛擬博物館的調查報告[A].北京市科學技術協會、北京市文物局、北京市經濟和信息化委員會.數字博物館研究與實踐(2009)[C].北京市科學技術協會、北京市文物局、北京市經濟和信息化委員會:北京數字科普協會,2010:8.
[5] 朱曉冬,周明全,耿國華.虛擬博物館開發模式研究[J].計算機應用與軟件,2005,22(6):34-35,107.
[6] 崔麗.VR虛擬現實技術在三維游戲設計中的開發與實現[J].電視技術,2018,42(5):44-48.
【通聯編輯:唐一東】