楊玉婷,康厚良
(1.昆明理工大學(xué)津橋?qū)W院 電氣與信息工程學(xué)院, 昆明 650000;2.云南經(jīng)濟(jì)管理學(xué)院 人文藝術(shù)學(xué)院, 昆明 650000)
虛擬博物館通過把文物中承載的各種信息抽取出來,將傳統(tǒng)的靜態(tài)文物轉(zhuǎn)變?yōu)橛陕曇簟D像、文本等構(gòu)成的數(shù)字化信息,并將其通過互聯(lián)網(wǎng)信息技術(shù)傳送到世界各地[1-2]。1996年,我國啟動國家數(shù)字圖書館工程,開始了文化資源的數(shù)字化進(jìn)程[4-9]。國家數(shù)字圖書館研究主要采用仿真平臺,從增強(qiáng)用戶體驗(yàn)和文物保護(hù)[10-13]的角度展開,但對于博物館中文物的展現(xiàn)方式卻少有涉及,仍以靜態(tài)圖片結(jié)合文字的展示方式為主[3]。隨著數(shù)字視頻處理、數(shù)字信息存儲技術(shù)的不斷發(fā)展,多媒體應(yīng)用技術(shù)帶來的視覺和聽覺體驗(yàn)為動態(tài)展現(xiàn)虛擬博物館中藏品的寓意及其背后的故事提供了重要方法。
因此,本文結(jié)合虛擬博物館的現(xiàn)有需求及對當(dāng)前流行的數(shù)字媒體軟件的深入剖析,基于Unity3D游戲引擎設(shè)計(jì)并實(shí)現(xiàn)了能同時(shí)支持桌面環(huán)境(包括Windows系統(tǒng)、Mac OS系統(tǒng)和web瀏覽器)、移動設(shè)備的跨平臺輕量級數(shù)字多媒體組件,可將大量動態(tài)的、有形的、能反映或再現(xiàn)當(dāng)時(shí)人們生產(chǎn)生活場景的記錄資料展示給參觀者,使參觀者能通過一種數(shù)字化靜態(tài)文物與動態(tài)影像結(jié)合的方式去了解文物中所包含的文化內(nèi)涵。本文的設(shè)計(jì)在為參觀者提供一個(gè)良好的學(xué)習(xí)和交流平臺的同時(shí),也提高了虛擬博物館的實(shí)用性、可理解性和可學(xué)習(xí)性。
數(shù)字多媒體組件的設(shè)計(jì)核心是使用一般化的設(shè)計(jì)模式方便用戶快速熟悉并使用。首先,建立了與數(shù)字多媒體組件相關(guān)聯(lián)的網(wǎng)絡(luò)多媒體數(shù)據(jù)庫,方便用戶快速獲取知識;其次,設(shè)計(jì)了支持本地和互聯(lián)網(wǎng)中文件的搜索及主流音、視頻格式文件播放的功能;然后,提供易于使用的對外集成接口,方便與各類虛擬博物館的匹配和集成;最后,通過組件良好的跨平臺性能滿足用戶隨時(shí)隨地通過任意硬件訪問虛擬博物館及知識學(xué)習(xí)的需求。
整個(gè)組件由用戶界面、文件瀏覽及搜索、數(shù)字媒體播放器這3個(gè)核心模塊組成。用戶界面是用戶與組件交互的媒介,設(shè)計(jì)時(shí)參考當(dāng)前流行的數(shù)字媒體軟件的用戶界面特點(diǎn),以方便用戶快速熟悉并使用。文件瀏覽及搜索模塊支持本地和互聯(lián)網(wǎng)中文件的搜索及主流音、視頻格式文件的解析和加載,并建立了與多媒體組件相關(guān)聯(lián)的東巴文化網(wǎng)絡(luò)資源庫。數(shù)字媒體播放器主要實(shí)現(xiàn)播放器面板控制、音/視頻文件的播放與暫停、快進(jìn)、停止、音量調(diào)節(jié)及進(jìn)度拖拽等功能。整個(gè)數(shù)字多媒體組件的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 數(shù)字多媒體組件的系統(tǒng)結(jié)構(gòu)
播放界面是數(shù)字多媒體組件與用戶交互的主要方式。在界面設(shè)計(jì)的過程中,結(jié)合使用NGUI插件,除了突出“所見即所得”、界面簡潔、風(fēng)格一致、顯示直觀形象等原則外,還與當(dāng)前流行的播放軟件的界面設(shè)計(jì)特色保持一致,以方便用戶快速熟悉和使用。
NGUI(Next-Gen UI Kit)是嚴(yán)格遵循KISS (keep it simple,stupid) 原則并采用C#編寫的可靈活擴(kuò)展的Unity 3D[14-17]插件,它提供了強(qiáng)大的UI系統(tǒng)和事件通知框架[18]。圖2顯示了系統(tǒng)中采用的核心按鈕圖片,圖3為使用NGUI插件實(shí)現(xiàn)的組件操作界面設(shè)計(jì)圖。
圖2 風(fēng)格統(tǒng)一的按鈕樣式
圖3 基于NGUI的組件操作界面
數(shù)字多媒體組件的軟件部分不受使用平臺或硬件的限制,具有良好的跨平臺性,集成度高,可移植性強(qiáng),支持在Windows桌面系統(tǒng)、主流Web瀏覽器及主流手機(jī)操作系統(tǒng)(安卓系統(tǒng)和iOS系統(tǒng))上的運(yùn)行,其核心模塊包括文件瀏覽和搜索模塊、數(shù)字媒體播放器模塊等。
文件瀏覽及搜索模塊支持對本地及互聯(lián)網(wǎng)中多媒體文件的搜索。為了方便用戶快速獲取相關(guān)知識,建立了與數(shù)字多媒體組件相關(guān)聯(lián)的網(wǎng)絡(luò)多媒體數(shù)據(jù)庫,從而為用戶提供更加豐富的學(xué)習(xí)資源。數(shù)字媒體播放器是搭載在數(shù)字多媒體組件上的輕量級播放器,支持當(dāng)前主流音、視頻文件的解析、加載和播放。
文件瀏覽及搜索模塊支持本機(jī)文件及互聯(lián)網(wǎng)中在線視頻的搜索和播放。用戶可以通過播放列表按鈕指定本機(jī)或互聯(lián)網(wǎng)中要播放的數(shù)字媒體文件,然后由數(shù)字媒體播放器加載指定的文件并準(zhǔn)備播放。
數(shù)字媒體播放器是數(shù)字多媒體組件中與用戶直接進(jìn)行交互的核心模塊。為方便用戶快速了解及使用,它所提供的功能應(yīng)與其他主流播放器保持一致。因此,視頻播放器的功能包括:視頻文件的初始化,視頻的播放/暫停、快進(jìn)、停止、音量調(diào)節(jié)、進(jìn)度拖拽、全屏播放及播放面板的顯示與隱藏功能等。
3.2.1 多媒體文件的初始化
多媒體文件的初始化工作包括視頻畫面和音效的加載、畫面和音效的同步及數(shù)據(jù)緩沖處理等。
3.2.2控制多媒體文件的播放/暫停、停止及快進(jìn)
定義函數(shù)PlayButtons()用于管理多媒體文件的當(dāng)前播放狀態(tài),控制多媒體文件的播放/暫停、停止、快進(jìn)/退和重新播放等,以及在進(jìn)行相應(yīng)操作時(shí)播放、暫停和停止按鈕圖標(biāo)的切換。具體代碼如下:
public void PlayButtons()
{
//播放多媒體文件
if (UIButton.current.tweenTarget.name == "playButton")
{ //判斷多媒體文件是否正在播放
if (!movieFile.isPlaying)
{ movieFile.Play();
transform.audio.Play();
}
else //暫停播放
{ movieFile.Pause();
transform.audio.Pause();
}
}
//停止播放
if (UIButton.current.tweenTarget.name == "stopButton")
{ if (movieFile.isPlaying)
{ movieFile.Stop();
transform.audio.Stop();
}
}
…………
//控制多媒體文件的播放速度,取值范圍為-3~3。
//值越大,播放速度越快
public void PlaySpeed()
{ if (movieFile.isPlaying)
{ if (audioFile.pitch == originalSpeed)
audioFile.pitch = 1.5f; //1.5倍快進(jìn)
else if (audioFile.pitch == 1.5f)
audioFile.pitch = 3f; //3倍快進(jìn)
else //正常速度
audioFile.pitch = originalSpeed;
}
}
3.2.3 音量調(diào)節(jié)
音量調(diào)節(jié)提供了滑塊調(diào)節(jié)和靜音按鈕兩種調(diào)節(jié)方法。通過調(diào)節(jié)滑塊可實(shí)時(shí)調(diào)整音量的大小,也可通過靜音按鈕來關(guān)閉聲音。另外,當(dāng)音量發(fā)生變化時(shí)可修改音量百分比,并根據(jù)聲音的當(dāng)前狀態(tài)iSound修改音量的圖標(biāo)。
3.2.4 進(jìn)度拖拽
進(jìn)度滑動塊決定了多媒體文件的播放進(jìn)度。當(dāng)用戶拖拽播放滑動塊時(shí),將根據(jù)滑動塊當(dāng)前位置計(jì)算對應(yīng)的新的播放時(shí)間,實(shí)現(xiàn)播放進(jìn)度的跳轉(zhuǎn)。播放滑動塊與播放進(jìn)度的關(guān)系如下:
具體代碼如下:
void TimeControl()
{ e = Event.current;
if (e.isMouse) //當(dāng)鼠標(biāo)拖拽滑動塊
ftimeNow = playProgress.value;
else
{ if (strPlayState == "Play")
ftimeNow = ftimeNow + 1 * Time.de- ltaTime;
else if (strPlayState == "Stop")
ftimeNow = 0f;
playProgress.value = (ftimeNow / movieFile.duration);
}
}
3.2.5全屏播放及播放面板的顯示與隱藏
在NGUI中,要獲得當(dāng)前屏幕的高度和寬度必須通過root的當(dāng)前高度/屏幕高度的比例來計(jì)算,這樣才能使播放器在屏幕大小不同的設(shè)備中都能實(shí)現(xiàn)全屏顯示。
在多媒體文件的播放過程中,播放面板的隱藏能提高用戶的觀賞體驗(yàn)。因此,若5 s內(nèi)未檢測到鼠標(biāo)或鍵盤事件,則隱藏面板;否則,顯示面板。播放面板的顯示和隱藏主要是通過面板的深度值來實(shí)現(xiàn)。當(dāng)面板的深度值小于屏幕的深度時(shí),面板被屏幕遮擋,得到隱藏的效果;否則,面板將顯示在屏幕之上,達(dá)到顯示的效果。
測試時(shí),將數(shù)字多媒體組件集成到現(xiàn)有的東巴文化虛擬博物館中,使用戶可以通過歡迎界面快速訪問數(shù)字多媒體組件。系統(tǒng)測試主要是在桌面和移動平臺兩種環(huán)境中分別進(jìn)行。
在桌面環(huán)境測試時(shí),所使用的計(jì)算機(jī)硬件如下:CPU為Duo T6400 2 GHz×2,顯示卡為NVIDIA GeForce 9300M GS,RAM為2 GHz,操作系統(tǒng)為Windows 7,瀏覽器為360安全瀏覽器7。在移動平臺的測試時(shí),手機(jī)為小米3電信版,硬件如下:CPU為MSM8674AB 2.3 GHz、RAM 為2 GB,操作系統(tǒng)為Android OS 4.2。
1) 數(shù)字多媒體組件與現(xiàn)有東巴文化虛擬博物館的集成效果。運(yùn)行時(shí),虛擬博物館可以窗口或全屏的方式運(yùn)行。在虛擬博物館的歡迎界面中提供了訪問數(shù)字多媒體組件的快捷入口,方便用戶在進(jìn)入虛擬博物館之前通過數(shù)字多媒體組件了解一些與東巴文化相關(guān)的知識。圖4顯示了虛擬博物館的啟動界面。
2) 測試桌面版數(shù)字多媒體組件播放本地視頻文件的效果。圖5顯示在播放過程中,可通過點(diǎn)擊任意鍵來顯示播放面板,也可以通過“播放列表”按鈕選擇或搜索播放其他視頻。
圖4 虛擬博物館的啟動界面
圖5 組件播放器的運(yùn)行效果
使用360安全瀏覽器測試數(shù)字多媒體組件基于web的運(yùn)行情況和效果。圖6顯示了通過“播放列表”按鈕查看正在播放以及過往播放過的視頻內(nèi)容。圖7顯示了播放面板隱藏后的效果。由此可知,在桌面環(huán)境中和web瀏覽器中,數(shù)字多媒體組件的運(yùn)行效果完全相同。
圖6 數(shù)字多媒體組件在瀏覽器中的運(yùn)行效果
圖7 播放面板隱藏后的運(yùn)行效果
在移動平臺上對數(shù)字多媒體組件的運(yùn)行效果和運(yùn)行流暢性進(jìn)行測試,著重測試組件在不同硬件平臺上顯示的一致性,以及組件在移動設(shè)備中的自適應(yīng)程度。圖8、9分別顯示了手機(jī)處于橫向和縱向時(shí),數(shù)字多媒體組件的運(yùn)行效果。
在虛擬博物館中,使用動態(tài)、有形的方式展示文化本身,除了能反映文物中所蘊(yùn)含的文化精髓、還原文化生長的土壤之外,更能增強(qiáng)虛擬博物館本身的交互性和可學(xué)習(xí)性。因此,本文使用數(shù)字多媒體組件以動態(tài)的方式展示文化,讓參觀者能通過一種數(shù)字化靜態(tài)文物與動態(tài)影像結(jié)合的方式去了解文物中所包含的文化內(nèi)涵,使更多的訪問者能通過虛擬博物館了解和學(xué)習(xí)文化的具體內(nèi)容,發(fā)揮虛擬博物館在文化保護(hù)、傳承和發(fā)揚(yáng)方面的巨大作用。
[1] 張秋蓮,李涵.360度全景展示在虛擬博物館中的應(yīng)用探索[J].中國國家博物館館刊,2011(9):154-56.
[2] SYLAIOU S,LIAROKAPIS F,KOTSAKIS K,et al.Virtual museums,a survey and some issues for consideration[J].Journal of Cultural Heritage,2009(10):520-528.
[3] 卓么措.民族文化數(shù)字化保護(hù)與傳承研究[J].蘭臺世界,2012(12):95-96.
[4] 柯長青,馮學(xué)智,顧國琴.敦煌壁畫數(shù)字圖像的三維信息恢復(fù)[J].南京大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,42(6):628-634.
[5] 段新昱,劉學(xué)莉,劉晨曦.虛擬殷虛博物苑的三維展示技術(shù)[J].系統(tǒng)仿真學(xué)報(bào),2005,17(9):2187-2190.
[6] 鄭淳,尚濤.Vega Prime 環(huán)境下的古建筑虛擬現(xiàn)實(shí)系統(tǒng)[J].武漢大學(xué)學(xué)報(bào)(工學(xué)版),2006,39(2):83-87.
[7] 楊程,孫守遷,蘇煥.楚文化保護(hù)中編鐘樂舞的復(fù)原與展示[J].中國圖象圖形學(xué)報(bào),2006,11(10):1474-1479.
[8] 胡少興,查紅彬,張愛武.大型古文物真三維數(shù)字化方法[J].系統(tǒng)仿真學(xué)報(bào),2006,18(4):951-954,963.
[9] 楊安祺,殷耀文.秦鄭國渠數(shù)字文化遺產(chǎn)再現(xiàn)技術(shù)[J].陜西科技大學(xué)學(xué)報(bào),2006,24(5):112-115.
[10] 胡遠(yuǎn)志,潘華,凡沙沙.基于模塊化的約束系統(tǒng)高精度建模方法研究[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017(7):1-11.
[11] 張超,魏三強(qiáng),陳偉.一種基于螢火蟲算法的群體動畫行為控制仿真設(shè)計(jì)[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017(1):100-106.
[12] 蔣偉杰.在線虛擬仿真實(shí)驗(yàn)平臺架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017(12):156-159.
[13] 房勁,蒲剛清,劉貞.低碳示范城市情景仿真模型研究[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2016(9):66-72.
[14] Unity 3D.Unity Manual[EB/OL].(2015-07-21)[2018-02-01].http://docs.unity3d.com/Manual/.
[15] Wiki.Unity[EB/OL].( 2015-07-21)[2018-02-01].http://en.wikipedia.org/wiki/Unity3D.
[16] 陳俊鋒.基于Unity3D的跨平臺手機(jī)網(wǎng)絡(luò)游戲的研究與實(shí)現(xiàn)[D].廣州:中山大學(xué),2013.
[17] SHANG H,ZHENG Y G.Empirical Research on the Present Situation of Online Game Industry[J].Reformation & Strategy,2009(25):166-169.
[18] NGUI.NGUI Document[EB/OL].(2015-07-20)[2018-02-01].http://www.tasharen.com/?page_id=140.