張昕怡,丁長(zhǎng)河,張海營(yíng)
(1.武漢音樂學(xué)院 音樂學(xué)系,湖北 武漢 430060;2.湖北文理學(xué)院,湖北 襄陽(yáng) 441053)
隨著元宇宙和虛擬現(xiàn)實(shí)技術(shù)的發(fā)展與成熟,運(yùn)用數(shù)字化虛擬技術(shù)合成并重構(gòu)世界,讓觀眾沉浸在特定空間內(nèi),通過藝術(shù)情景的融合與重現(xiàn),為觀眾創(chuàng)造出一個(gè)全新的文化體驗(yàn)場(chǎng)域,已經(jīng)成為當(dāng)前傳統(tǒng)文化傳播與傳承最為流行的一種模式[1]。曾侯乙編鐘被稱為是“稀世珍寶”,代表著中國(guó)傳統(tǒng)音樂文化的巔峰成就。但是,由于編鐘原件仿制品數(shù)量有限,曾侯乙編鐘專業(yè)的現(xiàn)場(chǎng)演奏活動(dòng)只能在少量特定的場(chǎng)館開展,對(duì)大多數(shù)人而言,現(xiàn)場(chǎng)欣賞或演奏編鐘的機(jī)會(huì)極少。因此,如何結(jié)合虛擬現(xiàn)實(shí)技術(shù),對(duì)曾侯乙編鐘演奏場(chǎng)景進(jìn)行虛擬化模擬與轉(zhuǎn)化,實(shí)現(xiàn)曾侯乙編鐘的沉浸式虛擬化演奏,成為國(guó)內(nèi)外學(xué)者研究的前沿課題。
虛擬現(xiàn)實(shí)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)仿真技術(shù),它利用計(jì)算機(jī)生成一種模擬環(huán)境,是一種多源信息融合的、交互式的三維動(dòng)態(tài)視景和實(shí)體行為的仿真系統(tǒng)[2]。在虛擬現(xiàn)實(shí)的3D場(chǎng)景開發(fā)中,Java 3D提供了3D圖形應(yīng)用編程接口,程序員可以輕松完成3D場(chǎng)景控制組件的編寫。Java 3D實(shí)際上是Java語言在三維圖形領(lǐng)域的擴(kuò)展,在Java 3D所描述的虛擬世界中,各種三維元素按照特定規(guī)則被有序地組織起來,構(gòu)成Java 3D虛擬架構(gòu)系統(tǒng)。也可以這樣理解Java 3D程序的工作原理:在3D場(chǎng)景中有許多模型,例如房子、演員、道具等,而最終顯示的畫面是由某個(gè)觀察者所觀察到的圖像[3]。除模型與觀察者外,3D場(chǎng)景中還需要有照明光源,否則三維世界將是一片漆黑。此外,聲效也是虛擬現(xiàn)實(shí)不可缺少的一部分,是虛擬現(xiàn)實(shí)場(chǎng)景設(shè)計(jì)的關(guān)鍵。在交互式虛擬體驗(yàn)中,這些元素共同組成虛擬現(xiàn)實(shí)3D場(chǎng)域。
隨著互聯(lián)網(wǎng)的發(fā)展與成熟,虛擬現(xiàn)實(shí)技術(shù)的空間仿真功能開辟了人類交流的新場(chǎng)域。為實(shí)現(xiàn)曾侯乙編鐘虛擬演奏仿真體驗(yàn)的目標(biāo),在曾侯乙編鐘虛擬演奏平臺(tái)開發(fā)中,首先,需要借助3D MAX建模工具完成曾侯乙編鐘原始演奏廳的等比例建模;其次,借助Java 3D編程技術(shù),開發(fā)虛擬世界中編鐘演奏的三維互動(dòng)控制組件,并從視覺、聽覺和交互設(shè)計(jì)等多方面完成曾侯乙編鐘沉浸式虛擬體驗(yàn)場(chǎng)景的設(shè)計(jì)。同時(shí),根據(jù)編鐘音樂文化傳承和演奏體驗(yàn)的需求特征,曾侯乙編鐘沉浸式虛擬體驗(yàn)演奏平臺(tái)設(shè)計(jì)包括:編鐘沉浸式虛擬演奏系統(tǒng)、編鐘歷史文化講解系統(tǒng)、編鐘研究文獻(xiàn)閱覽系統(tǒng)和編鐘音樂網(wǎng)上點(diǎn)播系統(tǒng)4個(gè)模塊。
曾侯乙編鐘虛擬演奏系統(tǒng)是將3D建模和Java 3D編程技術(shù)相結(jié)合,根據(jù)真實(shí)的編鐘演奏場(chǎng)景和樣式搭建的曾侯乙編鐘虛擬演奏廳。該系統(tǒng)不僅可以還原編鐘演奏帶來的視覺與聽覺特征,還可以讓訪客在虛擬場(chǎng)景中體驗(yàn)敲擊演奏編鐘音樂的效果[4]。系統(tǒng)設(shè)計(jì)關(guān)鍵內(nèi)容如下。
(1)3D場(chǎng)景建模。曾侯乙編鐘的建模工作是從編鐘音樂廳陳列的編鐘原型復(fù)制品中,獲取到每類編鐘的三視圖,然后借助三維軟件3D MAX進(jìn)行編鐘樂器建模,制作出鈕鐘、甬鐘、鍵鐘以及曾侯乙編鐘三維模型。為了使3D場(chǎng)景設(shè)計(jì)更加便捷高效,本設(shè)計(jì)選擇杭州先臨三維科技公司開發(fā)的可變分辨率彩色3D掃描儀,對(duì)編鐘等樂器貼圖并添加材質(zhì),搭建編鐘演奏三維場(chǎng)景,實(shí)現(xiàn)虛擬場(chǎng)景與現(xiàn)場(chǎng)場(chǎng)景的等比例復(fù)制。
(2)音源采集。編鐘具有一鐘雙音的特性,為了實(shí)現(xiàn)編鐘虛擬場(chǎng)景下敲擊音效的互動(dòng)體驗(yàn)感知,設(shè)計(jì)者需要對(duì)64件編鐘(曾侯乙編鐘共有65件單體鐘,其中,64件具有音律屬性,大镈鐘沒有音律屬性)的每一件鐘體的正音和側(cè)音進(jìn)行逐一編號(hào)采集,完成編鐘音源的原聲采集,并按照音律的高低和屬性分布存儲(chǔ)。在后續(xù)演奏互動(dòng)中,當(dāng)訪客敲擊編鐘鐘體時(shí),系統(tǒng)會(huì)將本次采集的原音作為發(fā)聲音源,進(jìn)行系統(tǒng)化控制,以編鐘原音音符呈現(xiàn)給訪客[5]。
(3)虛擬演奏互動(dòng)的編程控制。設(shè)計(jì)者借助Java 3D編程技術(shù)和Python編程軟件,通過軟件程序的智能控制,讓體驗(yàn)者能身臨其境感知虛擬空間中敲擊編鐘的演奏體驗(yàn),實(shí)現(xiàn)虛擬環(huán)境下演奏(敲擊)編鐘音樂的設(shè)計(jì)目標(biāo)。
曾侯乙編鐘代表著古代人民的高度智慧和精湛技術(shù),為了讓訪客完整了解編鐘文化內(nèi)涵和價(jià)值,本課題設(shè)計(jì)了編鐘歷史文化講解系統(tǒng)。該系統(tǒng)嵌入編鐘發(fā)掘過程、編鐘制作工藝、編鐘音律特征、編鐘歷史考古發(fā)現(xiàn)等視頻內(nèi)容。訪客通過編鐘虛擬演奏平臺(tái)的顯示觸摸屏,可以全面觀閱編鐘歷史發(fā)展進(jìn)程,深度了解中國(guó)編鐘文化知識(shí)內(nèi)涵,實(shí)現(xiàn)編鐘文化知識(shí)普及與推廣。
當(dāng)前,編鐘文化已經(jīng)成為考古界、音樂界學(xué)者關(guān)注的焦點(diǎn)。借助知網(wǎng)數(shù)據(jù)庫(kù)進(jìn)行文獻(xiàn)檢索,編鐘方面的文獻(xiàn)研究共742篇,尤其自1978年曾侯乙編鐘發(fā)掘以來,編鐘研究文獻(xiàn)呈現(xiàn)指數(shù)級(jí)增長(zhǎng)。為了更好地傳承傳播編鐘文化,引發(fā)更多人參與編鐘文化的傳承之中,本平臺(tái)在編鐘虛擬演奏廳內(nèi)建立了編鐘研究文獻(xiàn)閱覽系統(tǒng),精選出編鐘研究的經(jīng)典文獻(xiàn)供訪客線上翻閱,在訪客游玩的過程中,更好地傳播編鐘文化專業(yè)知識(shí)。
為了讓進(jìn)入虛擬展廳的訪客更便捷地聆聽編鐘音樂,系統(tǒng)收集整理了編鐘演奏的視頻與音頻等數(shù)字化資源,建立編鐘音樂曲目庫(kù),設(shè)計(jì)編鐘音樂網(wǎng)上點(diǎn)播系統(tǒng)。系統(tǒng)將編鐘演奏名曲,如《東方紅》《茉莉花》《春節(jié)序曲》《我的祖國(guó)》《中國(guó)功夫》等發(fā)布至編鐘音樂點(diǎn)播平臺(tái),線上免費(fèi)分享。該系統(tǒng)的開發(fā)不僅可以提高民眾對(duì)編鐘樂曲的認(rèn)識(shí),擴(kuò)大編鐘音樂的社會(huì)影響,還可以彰顯編鐘音律的魅力,促進(jìn)編鐘文化的傳播與推廣。
Java 3D最大特性是可以使用Applet作為顯示容器。以下代碼顯示了如何在Applet中顯示虛擬演奏3D互動(dòng)場(chǎng)景。
Public class HelloUniverse extends Applet {
private SimpleUniverse u=null;
public BranchGroup createSceneGraph(){//創(chuàng)建虛擬演奏場(chǎng)景圖
BranchGroup objRoot=new BranchGroup();
......//設(shè)置虛擬演奏場(chǎng)景圖的代碼略
return objRoot;
}
public void init( ) {
....../虛擬演奏系統(tǒng)顯示配置代碼略
Canvas3D c=new Canvas3D(config);
add("Center",c);
universe=new Simple Universe(c);
;//創(chuàng)建簡(jiǎn)化的虛擬演奏系統(tǒng)空間
u.addBranchGraph(createSceneGraph();
//向虛擬空間中添加虛擬演奏場(chǎng)景圖
為了實(shí)現(xiàn)虛擬場(chǎng)景下曾侯乙編鐘虛擬演奏體驗(yàn),平臺(tái)在完成編鐘虛擬場(chǎng)景設(shè)計(jì)之后,借助編程方式,對(duì)虛擬場(chǎng)景中編鐘敲擊后的音源響應(yīng)進(jìn)行智能化控制。本課題借助Python編程技術(shù)創(chuàng)建發(fā)聲觸發(fā)點(diǎn),訪客在編鐘虛擬場(chǎng)景中觸碰某一編鐘鐘體后,即觸發(fā)給鐘體預(yù)先錄制的音源。控制程序如下:
from playsound import playsound
def play_sound(note):
sound_file = "編鐘鐘體對(duì)應(yīng)的編鐘音源文件路徑"
playsound(sound_file)
觸發(fā)編鐘音符播放的觸發(fā)點(diǎn)后,系統(tǒng)需要對(duì)音符播放的音高和延音時(shí)長(zhǎng)進(jìn)行控制。為此,可以借助Python的pygame模塊實(shí)現(xiàn)音頻播放音高的調(diào)解,配合time庫(kù)可以實(shí)現(xiàn)編鐘音符延續(xù)時(shí)長(zhǎng)的智能化控制。編碼如下:
from pygame import mixer
pygame.mixer.music.play()
time.sleep(10)
pygame.mixer.music.stop()
借助以上編程控制方法,可以實(shí)現(xiàn)多個(gè)音節(jié)之間切換開啟與中止的控制,借助Python的fadeout(time)模塊可以實(shí)現(xiàn)音節(jié)的淡出處理,解決演奏過程中的爆音問題。
與此類似,其他3個(gè)模塊也可以借助Python網(wǎng)絡(luò)編程和MYSQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)。
本課題借助3D場(chǎng)景建模技術(shù)、Java 3D技術(shù)和Python編程技術(shù),根據(jù)現(xiàn)實(shí)曾侯乙編鐘演奏場(chǎng)景,完成了曾侯乙編鐘虛擬演奏平臺(tái)的搭建。該平臺(tái)不僅還原了編鐘的視覺感知和原聲音符,讓體驗(yàn)者可以在虛擬場(chǎng)景中近距離欣賞編鐘的外形特征,還可以讓訪客體驗(yàn)敲擊編鐘的聲音音效,實(shí)現(xiàn)在虛擬場(chǎng)景中演奏編鐘的愿望。本課題設(shè)計(jì)的曾侯乙編鐘虛擬演奏平臺(tái),可以更好地推進(jìn)我國(guó)編鐘樂器與現(xiàn)代科技的融合,最大限度地激發(fā)廣大音樂愛好者對(duì)編鐘音樂的熱情,拓展編鐘音樂文化傳播的深度和廣度。