王佳祺 , 程明智 , 劉 龍 , 洪 宇 , 趙云帆 , 李駿宇 , 杜 萌
(1.北京印刷學(xué)院,北京 102600;2.三十五中國際部高二英才班,北京 102606;3.中國農(nóng)業(yè)大學(xué),北京 100091)
虛擬現(xiàn)實技術(shù)是利用計算機模擬虛擬環(huán)境從而給人以環(huán)境沉浸感。各行各業(yè)對VR 技術(shù)的需求日益旺盛,特別是傳統(tǒng)文化領(lǐng)域。由于傳統(tǒng)文化有其獨特的地域特征,人們必須到指定地區(qū)才能體會到特別的傳統(tǒng)文化。通過虛擬技術(shù)與傳統(tǒng)文化的結(jié)合,從內(nèi)容傳播的角度來說,突破了空間、時間的限制,同時以一種新興有趣的內(nèi)容展現(xiàn)形式[1],幫助優(yōu)質(zhì)文化得以傳播;從文化保護的角度來說,一方面讓消失的歷史重獲新生[3],另一方面作為數(shù)據(jù)庫保留,為日后研究提供資料[2]。因此,傳統(tǒng)文化與虛擬現(xiàn)實結(jié)合的應(yīng)用有重要意義。
秦淮燈會的歷史十分悠久,它是南京民間文化和民俗活動的品牌[6]。秦淮燈彩是秦淮燈會最亮麗的主角,也是南京民間手工藝術(shù)的特色品牌,更是非物質(zhì)文化遺產(chǎn)保護與利用的成功范例,但以秦淮燈彩為主要內(nèi)容的秦淮燈會并未在文化數(shù)字孿生上做過多的規(guī)劃。所以,本作品將秦淮燈會文化與虛擬現(xiàn)實技術(shù)結(jié)合,讓用戶通過沉浸式交互體驗,感受秦淮燈會的氛圍并了解相關(guān)習(xí)俗,傳播具有中國特色的傳統(tǒng)燈會文化。
虛擬現(xiàn)實(Virtual Reality,VR)[5]是利用電腦或其他智能計算設(shè)備模擬產(chǎn)生一個三維空間的虛擬世界,提供用戶關(guān)于視覺、聽覺、觸覺等感官的模擬,讓用戶如同身歷其境一般??梢约皶r、沒有限制地觀察三維空間內(nèi)的事物。該技術(shù)的出現(xiàn)是計算機圖形學(xué)、人機接口技術(shù)、傳感器技術(shù)以及人工智能技術(shù)等交叉與綜合的結(jié)果[4]。它是一種可以創(chuàng)建和體驗虛擬世界的計算機仿真系統(tǒng),利用計算機生成一種模擬環(huán)境,通過計算機技術(shù)產(chǎn)生的電子信號,將其與各種輸出設(shè)備結(jié)合使其轉(zhuǎn)化為能夠讓人們感受到的現(xiàn)象。
本文開發(fā)使用的虛擬現(xiàn)實硬件是HTC VIVE。HTC VIVE 是由HTC 公司與Valve 公司聯(lián)合開發(fā)的一款VR 頭顯產(chǎn)品,于2015 年3 月在MWC2015上發(fā)布,如圖1 所示。借助Valve 龐大的應(yīng)用體系和SteamVR 提供的技術(shù)支持,在Steam 平臺上已經(jīng)可以體驗多種虛擬現(xiàn)實的應(yīng)用。HTC VIVE 虛擬現(xiàn)實頭盔的內(nèi)置揚聲器和110 度視野,以其優(yōu)秀的視聽表現(xiàn),相比其他虛擬現(xiàn)實頭盔能夠為玩家?guī)碜钊?、最完整的VR 虛擬現(xiàn)實體驗。
圖1 HTC VIVE
UGUI 是Unity 官方的UI 實現(xiàn)方式,自Unity4.6 以后,Unity 官方推出了新版UGUI 系統(tǒng)。新版UGUI 系統(tǒng)相比于OnGUI 系統(tǒng)更加人性化,而且是一個開源系統(tǒng),利于游戲開發(fā)人員進行游戲界面開發(fā)。UGUI 系統(tǒng)具有3 個特點:靈活、快速和可視化。對于應(yīng)用開發(fā)者來說,UGUI 有運行效率高、執(zhí)行效果好、易于使用、方便擴展,與Unity3D 兼容性高等優(yōu)點。UGUI 為廣大開發(fā)者提供了一些常用的控件,包括文本顯示、圖片顯示、按鈕、復(fù)選框、滑動條、滾動條、下拉菜單、輸入框、滾動視窗等,利用這些控件可以快速搭建界面。但是在虛擬現(xiàn)實環(huán)境中,無法直接利用UGUI 進行用戶界面的交互,需要結(jié)合射線和額外的腳本實現(xiàn)與用戶界面的交互,在本文3.1 中會進行詳細介紹。
SteamVR Unity Plugin2.0(簡稱SteamVR2.0),是由Value 公司開發(fā)的集成VR 功能的插件,其中提供了傳送、抓取、物理系統(tǒng)等功能,并且提供了一個示例場景供用戶學(xué)習(xí)。相較于SteamVR1.0,SteamVR2.0 能夠使開發(fā)者在編程中更專注于用戶的動作,改為使用SteamVR Input System,開發(fā)人員可以在應(yīng)用程序之外定義默認(rèn)的動作并與按鍵進行綁定,而不需要將輸入視為某一特定設(shè)備的特定按鍵。同時,SteamVR2.0 將人物功能封裝成一個預(yù)制體,讓用戶可以直接使用。本文利用了Steam-VR2.0 中預(yù)設(shè)的人物(Player)作為用戶視角,手柄射線及手柄預(yù)設(shè)動作制作交互內(nèi)容。
本作品在虛擬現(xiàn)實環(huán)境中,以秦淮燈會為主要呈現(xiàn)場景,利用手柄體驗制作燈彩的過程,并在場景中呈現(xiàn)有關(guān)秦淮燈會習(xí)俗的介紹和互動。在場景一中,用戶需要借助手柄,將燈彩需要的燈架、帶不同花色的明紙、燈芯、燈柄進行組裝,制作完成一盞屬于自己的彩燈后,進入場景二參觀秦淮燈會。場景二是體驗秦淮河游船和燈會民俗,利用勻速游船功能在秦淮燈會中進行沉浸式的游船體驗,同時也可以利用手柄和射線在民俗店進行猜燈謎、掛燈籠、賞糖畫等活動。
本作品的流程設(shè)計如圖2 所示。在場景一中,利用SteamVR2.0 實現(xiàn)燈彩制作需要的交互。進入場景二后,利用代碼實現(xiàn)勻速游船功能,同樣利用SteamVR2.0 實現(xiàn)水面場景的傳送和與民俗店鋪的交互體驗功能。
圖2 作品流程圖
本作品用戶提供了蓮花燈、金魚燈、兔子燈三種可以進行體驗制作的彩燈。第一步為彩燈骨架制作,用戶需要按照桌面上提示的步驟依次將彩燈骨架利用手柄拾取,SteamVR2.0 賦予了骨架物理屬性,讓用戶可以拾起骨架,實現(xiàn)骨架拼接,緊接著拾取桌面上新出現(xiàn)的花紋明紙為彩燈進行裱糊,接下來為拾取燈座安裝在裱糊完成的燈籠的底部,完成彩燈的外形制作,最后,拾取燈芯,放入燈彩中間的空隙中,可以從外面看到燈芯在發(fā)光。完整的燈彩制作完成,用戶依照流程進入下一個場景。如圖3 為兔子燈制作的效果圖。
圖3 兔子燈制作的效果圖
在這個場景中,實現(xiàn)了游船功能,用戶坐在小船上在河中央進行游覽,按動手柄的按鍵進行勻速前進,更像是在現(xiàn)實中劃船的感覺,提升了位移的沉浸感。利用SteamVR2.0 實現(xiàn)了三種不同餡料的元宵制作、猜燈謎、掛燈彩,賞糖畫等民俗活動,讓用戶在虛擬場景中體驗秦淮民俗。
早期使用較多的是NGUI 插件,現(xiàn)在Unity 為開發(fā)者提供了非常完善的圖形化界面解決方案:UGUI 圖形界面系統(tǒng)。在SteamVR 插件中沒有與UGUI 交互的預(yù)設(shè),因此本文結(jié)合插件中的射線腳本(SteamVR_LaserPointer.cs)和下文中提到的腳本進行射線與UGUI 的交互功能的實現(xiàn)。
實現(xiàn)腳本如下:
作品中的秦淮燈會場景中,主要使用按鍵控制的勻速位移作為主要移動方式,使用SteamVR 2.0內(nèi)置的Teloporting 和TeleportPoint 組件。將插件中的Teleporting.prefab 拖入場景,即可開啟傳送功能,按圓盤即可發(fā)出傳送貝塞爾曲線,將Teleport-Point 為傳送點,直接拖入場景中需要傳送到達的位置,實現(xiàn)比較完善的傳送功能(如圖4)進行輔助位移。
圖4 Teleport 功能
3.2.1 勻速位移功能實現(xiàn)
勻速位移主要通過以下代碼進行實現(xiàn):首先判斷用戶的移動狀態(tài),即上鍵(下鍵左鍵右鍵同理)被按下時,player(用戶)的位置將在世界空間范圍內(nèi)以自身為原點,向前位移,攝像機的朝向決定了位移的方向,按下按鍵的時間和用戶設(shè)定的速度(speed 值)決定了位移的距離。
3.2.2 實現(xiàn)效果展示
作品中游船功能的實現(xiàn)效果如圖5 所示。用戶站在船上,圖中為HMD(頭戴式顯示器)中的畫面,遵循默認(rèn)按鍵的預(yù)設(shè),用戶可以利用圓盤鍵的上下左右進行位移,HMD 的視點可以調(diào)節(jié)移動的方向。在秦淮河上游覽時,可以使用傳送功能到達各個民俗的體驗區(qū),制作不用餡料的元宵作為紀(jì)念品放置在船上,與燈籠互動進行猜燈謎、掛燈彩、賞糖畫等民俗活動。
圖5 游船功能實現(xiàn)效果
本作品利用Unity3D 開發(fā)引擎和SteamVR2.0插件實現(xiàn)了以制作燈彩和秦淮燈會習(xí)俗體驗為主要功能的秦淮燈會沉浸式交互體驗。作品主要分為兩部分,第一部分中提供了三種不同的燈彩制作的全流程體驗,第二部分是秦淮燈會兩種民間習(xí)俗的游船體驗。未來對于作品的優(yōu)化方向主要分為兩個方面,美術(shù)效果的優(yōu)化和針對作品功耗的優(yōu)化。美術(shù)效果主要是針對燈彩制作部分和整體場景。燈彩的外層明紙效果與現(xiàn)實還存在一定差距,物理系統(tǒng)也不夠完善,場景的燈光、材質(zhì)都可以更加還原現(xiàn)實。在實際測試中,發(fā)現(xiàn)夜游秦淮場景中,河水和燈光的GPU 占有量非常高,場景中Shader 的變體數(shù)量也非常多,在后續(xù)優(yōu)化中,會排除不需要的變體,同時優(yōu)化河水的材質(zhì),將場景燈光提前烘焙成LightingMap,以減少場景實時光照的計算量。