邱 望,鄔 娜,梁莉菁,姚廷偉
(萍鄉(xiāng)學(xué)院 信息與計算機工程學(xué)院,江西 萍鄉(xiāng) 337000)
儺是一種遠古的原始文化,是中國傳統(tǒng)文化的一個重要組成部分,但如今逐漸被忽略和遺忘。萍鄉(xiāng)儺是中國儺文化中的一部分,保存相對較完整,當?shù)卣疄榱吮Wo和宣傳這一傳統(tǒng)文化做了很多的工作,但效果并不理想,因此需要更多有效的方法來保護和傳承儺文化。數(shù)字媒體技術(shù)的迅速發(fā)展使得現(xiàn)實事物能夠以虛擬的形式向用戶展示,并能以較低的成本進行快速傳播,其中的虛擬現(xiàn)實(VR)和增強現(xiàn)實(AR)技術(shù)已經(jīng)被運用在很多傳統(tǒng)文化的保護工作中。本文以萍鄉(xiāng)儺文化保護為例,基于儺文化中的儺面具,將AR技術(shù)應(yīng)用在儺文化的保護工作中,采用Maya建模、Unity和Vuforia等技術(shù),設(shè)計并實現(xiàn)萍鄉(xiāng)儺文化展示系統(tǒng)。最后再通過線上進行宣傳和展示,并將其應(yīng)用在萍鄉(xiāng)學(xué)院數(shù)字媒體技術(shù)專業(yè)的教學(xué)和實踐中,讓更多人了解儺文化,為其傳承和保護提出一種可行的方案。
經(jīng)過漫長的歲月,每個地方都會有當?shù)貍鹘y(tǒng)文化,這些文化往往會留下一些遺產(chǎn)和印記,但由于種種原因,很多傳統(tǒng)文化的大部分內(nèi)容和物質(zhì)組成部分已經(jīng)丟失,只有少部分被保留至今。為了保護和傳承這些文化遺產(chǎn),各地文化部門都在積極采取各種措施,不斷探索和嘗試新的方法和技術(shù)。贛儺文化始于漢代,以其歷史悠遠,內(nèi)涵豐富,風格迥異,極具特色而成為江西傳統(tǒng)文化遺產(chǎn)的重要組成部分之一[1],省內(nèi)很多地方都將儺文化的傳承與保護作為一項重要工作。萍鄉(xiāng)儺文化傳承相對較完整,至今仍保留儺舞、儺廟、儺戲和儺面具等,萍鄉(xiāng)湘東儺面具也作為傳統(tǒng)美術(shù)類別于2006年入選第六批全國重點文物保護單位第一批國家級非物質(zhì)文化遺產(chǎn)錄,當?shù)叵嚓P(guān)部門也一直在努力地希望將這一傳統(tǒng)文化更好地傳承與發(fā)展下去。政府設(shè)立了萍鄉(xiāng)儺文化博物館、地方特色數(shù)字資源庫進行展覽和宣傳,各學(xué)者也在不斷研究儺文化的特點,提出了發(fā)展文化周邊創(chuàng)意產(chǎn)品[2]、鼓勵文化旅游[3]、促進將儺文化融入藝術(shù)創(chuàng)作[4]等方法。
現(xiàn)實情況卻不容樂觀,萍鄉(xiāng)儺文化的保護與傳承進展緩慢。根據(jù)一項對萍鄉(xiāng)學(xué)院在校大學(xué)生群體的314份調(diào)查問卷結(jié)果顯示,有88%的人不知道或者不了解萍鄉(xiāng)儺文化,93%的人認為有必要采取一些措施保護這種文化,說明當前的保護工作效果并不好。超過70%的人對民間文化藝術(shù)感興趣并表示如果有時間會去看展覽,這說明人們并非對這種文化不感興趣,超過一半的人認為原因在于缺乏宣傳和了解的途徑。因此最關(guān)鍵的問題在于人民群眾對于傳統(tǒng)文化是愿意去了解和接受的,但是缺乏合適途徑去接觸,現(xiàn)有的宣傳方式還有待改進。結(jié)果中,觀看視頻、專家講座、發(fā)放圖冊的效果都不好。31%的人認為效果最好的宣傳方式是“每隔一段時間進行文化展覽”,因為這種方式最為直觀,可以近距離接觸,顯然效果最好。然而現(xiàn)實中的多種因素,如場地限制、缺乏專業(yè)人員、文物運輸不方便、成本高等,導(dǎo)致這種方式無法大量地應(yīng)用到實際中。36%的人認為采用數(shù)字媒體技術(shù)(VR、AR的方式)是一種良好的宣傳方式,說明這也是一種人們接受度較高的方式。計算機硬件和軟件技術(shù)的迅速發(fā)展為這種方案提供了支持,因此將數(shù)字媒體技術(shù)應(yīng)用在儺文化的保護工作中是完全可行的。另外,很多相關(guān)的研究都是偏向于理論研究,研究結(jié)果的受眾群體不明確,并沒有應(yīng)用在實際的場景中,導(dǎo)致方案雖可行但效果卻不盡人意。本文認為大學(xué)生群體具有高素質(zhì)、可控性、多元性、潛在性和動態(tài)性,如果將儺文化元素應(yīng)用在高校實際的教學(xué)實踐中,會取得更好的效果。(調(diào)查問卷數(shù)據(jù):https://www.wjx.cn/wxloj/datafullscreen.aspx?activity=106665792)
隨著計算機相關(guān)技術(shù)的迅速發(fā)展,數(shù)字媒體技術(shù)被越來越多地應(yīng)用在傳統(tǒng)文化的保護上,其中VR和AR技術(shù)尤為顯著。原因在于這種技術(shù)在解決問題的時候,可以不需要對實際的事物進行操作,只需要生成相應(yīng)的方案模型,相關(guān)領(lǐng)域的專家和研究人員就可以根據(jù)生成的模型進行利弊分析,選擇出最佳解決問題的方案,并且在選擇模型時,不會產(chǎn)生實際成本[5]。相較于傳統(tǒng)的平面靜態(tài)展示,VR技術(shù)具有的多感知性和沉浸性特點,能有效地激發(fā)用戶的興趣,提升用戶的體驗度和感知度。但是VR技術(shù)通常適用于虛擬場景的構(gòu)建,要求將目標場景中的關(guān)鍵點變成虛擬場景,然后使用特殊的設(shè)備進行體驗和交互,成本較高,實現(xiàn)也較困難。AR技術(shù)通常只構(gòu)建目標物體的模型,然后通過設(shè)備的顯示器將模型融合在真實場景中,是對現(xiàn)實世界的增強和補充。相較于VR技術(shù),AR技術(shù)具有實現(xiàn)簡單、成本低等優(yōu)點。
本文基于儺文化中的儺面具,應(yīng)著重進行物體特征的表現(xiàn),使用AR技術(shù)使開發(fā)者可以專注面具模型的制作,而不必花費大量時間制作虛擬的場景,用戶也只需要用智能手機即可隨時查看,十分靈活便捷。開發(fā)主要的步驟包括3D建模,軟件框架搭建和具體功能實現(xiàn)。由于儺面具的體型較小,建模時要求3D模型盡可能得精確,采用Maya軟件,具有功能完善、效率高、渲染真實等特點,制作出來的模型精細程度高,效果好。軟件開發(fā)平臺則采用Unity,實現(xiàn)界面UI、場景構(gòu)建、音頻效果、AR識別和交互功能。AR識別功能基于Vuforia SDK進行開發(fā),該SDK提供了完善的AR功能,具有良好的跨平臺性和兼容性,兼容當前主流的PC,Android,iOS平臺。Vuforia與Unity之間可以進行快速地導(dǎo)入和導(dǎo)出,只要在Vuforia的云端上傳了虛擬模型就可以在Unity中進行快速開發(fā)。
建立儺面具的3D模型,主要包括建模、雕刻和渲染等步驟。
建模是依據(jù)實物繪制的原畫效果,在Maya中使用多邊形建模技術(shù)制作出低模,該模型應(yīng)能表現(xiàn)出物體的形狀、輪廓和比例等基本特征。儺面具形象細節(jié)豐富,不同形象的面具在建模時需要注意的細節(jié)也不同。以“猴王”面具為例,頭頂有4只姿態(tài)各異的小猴子,可以先找到共同點,建立模板,然后調(diào)整出不同的形態(tài)。帽子部分有很多凹痕,眼睛、耳朵、鼻子周邊也有各種細節(jié),這些細節(jié)可以先不用表現(xiàn),只需要建立出多邊形模型,在之后的雕刻中再來刻畫細節(jié)。Maya中建立“猴王”面具的低模如圖1所示:
圖1 “猴王”面具的基礎(chǔ)模型
低模的面數(shù)較少,較為粗糙,為了提高精度,需要進行雕刻[6]。在ZBrush中,通過雕刻低??梢员憩F(xiàn)面具的各個細節(jié),使之成為高精度的高模,但也會導(dǎo)致模型面數(shù)和文件大小急劇增加,以致渲染難度大,也不適合在Unity中使用。可以導(dǎo)出雕刻后的法線貼圖,將貼圖附在基礎(chǔ)模型上,這樣就可以在體積小、面數(shù)少的模型上顯示類似雕刻后的精細效果。雕刻后的面具模型如圖2所示:
圖2 雕刻后的“猴王”面具模型
完成雕刻后,需要為模型的不同部位賦予不同材質(zhì)球,例如毛發(fā)、斑點通常賦予Anistropic材質(zhì),而皮膚則賦予Blinn材質(zhì)。在Keyshot進行賦予材質(zhì)和渲染,在編輯器中可以對各種材質(zhì)球的屬性進行編輯,得到更為逼真的質(zhì)感。由于面具的實體是木質(zhì)的,因此為模型賦予木紋材質(zhì)。再加上燈光之后進行渲染,效果如圖3所示:
圖3 “猴王”面具渲染效果
完成以上步驟,將模型導(dǎo)出為fbx文件,導(dǎo)入到Unity中即可使用。
本文將實現(xiàn)一款基于移動端(Android)的儺面具展示軟件,在設(shè)計時應(yīng)考慮如下的一些要素:軟件在UI設(shè)計時,應(yīng)當遵從界面美觀、布局簡潔、對用戶友好的原則。首頁中的元素和內(nèi)容應(yīng)當能夠直接凸顯主題,應(yīng)將軟件中最重要、最常用的功能和入口放在關(guān)鍵位置。AR識別是本軟件最核心的功能,需保證較好的顯示效果和較高的識別率。除此之外還應(yīng)當加上一些交互功能[7],包括模型的旋轉(zhuǎn)、放大縮小等。同時,本軟件還加入了語音介紹功能,通過音頻的方式來介紹儺面具的故事和文化背景。
3.1.1首頁
在Unity中創(chuàng)建Index.scene場景作為App的首頁,放置Canvas組件,用于添加所有的UI組件,包括主背景圖、幫助、開始識別和退出按鈕。首頁效果如圖4所示:
圖4 App首頁
其中,“幫助”按鈕用于彈出幫助界面,包括儺文化的概況、App的操作方式。使用一個Panel組件(Help),默認是隱藏的,點擊“幫助”按鈕時顯示,點擊“關(guān)閉”按鈕時隱藏,如圖5所示。“開始識別”按鈕用于跳轉(zhuǎn)到AR識別功能場景(ARScene.scene),“退出”按鈕用于關(guān)閉程序。實現(xiàn)這些功能的步驟主要包括:首先創(chuàng)建一個空的GameObject,命名為MenuController。然后在Button組件中添加點擊事件,將MenuController拖入On Click()面板中,選擇對應(yīng)的方法。這些功能對應(yīng)的C#代碼分別如下:
圖5 幫助界面
//退出App
public void ApplicationQuit()
{ Application.Quit();}
//返回首頁
public void ReturnMenu()
{SceneManager.LoadScene("Index");}
//開始AR識別
public void OnStart()
{SceneManager.LoadScene("ARScene");}
//打開幫助面板
public void OpenHelp()
{
GameObject parentObj=GameObject.Find("Canvas");
GameObject child=parentObj.transform.Find("Help").gameObject;
child.SetActive(true);
}
//關(guān)閉幫助面板
public void CloseHelp()
{
GameObject parentObj=GameObject.Find("Canvas");
GameObject child = parentObj.transform.Find("Help").gameObject;
child.SetActive(false);
}
通過以上方法就能實現(xiàn)App中的各點擊和跳轉(zhuǎn)功能,之后ARScene場景中的各按鈕也是采用類似的方式進行實現(xiàn)。
3.1.2AR識別
創(chuàng)建ARScene.scene場景用于AR識別,其中最關(guān)鍵的組件是Vuforia Engine中的AR Camera組件,AR Camera是Vuforia引擎封裝好的一個組件,其中除了掛載Camera、Audio Listener之外,還加上了Vuforia Behaviour控制器,在運行程序時該組件會調(diào)用設(shè)備的攝像頭,根據(jù)攝像頭的場景和物體控制AR模型的顯示以及其他組件的調(diào)用[8]。
在加入AR Camera組件后,需要配置Vuforia Behaviour,作用是導(dǎo)入AR數(shù)據(jù)庫。主要步驟為:
(1)注冊/登錄Vuforia開發(fā)者平臺(developer.vuforia.com),創(chuàng)建開發(fā)密鑰(license key),完成后將其添加到Vuforia Behaviour配置中。配置完成即可在本程序中使用該賬號下所有的數(shù)據(jù)庫。
(2)在網(wǎng)站中添加數(shù)據(jù)庫(Add Database),添加目標圖像(Add Target),將需要識別的圖片上傳。上傳之后Vuforia會根據(jù)圖片的特征點和對比度進行評分,評分越高越容易被識別,因此應(yīng)盡量保證圖片具有較多的特征點。
(3)當Vuforia接受了上傳的圖片之后,即可在Unity的項目中使用該圖片作為識別點。在場景中新建Vuforia Engine/Image,會生成一個AR目標圖ImageTarget組件,然后在該組件的Image Target Behaviour選擇數(shù)據(jù)庫中需要識別的某張圖片。
(4)將構(gòu)建好的儺面具3D模型放在ImageTarget組件下,調(diào)整其大小和位置。該模型將在攝像頭掃描到目標圖片時顯示,在攝像頭離開目標圖片時隱藏,由此實現(xiàn)AR識別的功能。
3.1.3交互功能
交互功能主要包括模型的旋轉(zhuǎn)、縮放和語音介紹[9]。旋轉(zhuǎn)功能會在單手指左右滑動屏幕時觸發(fā),模型將會以自身的z軸進行旋轉(zhuǎn)。由于模型的旋轉(zhuǎn)是實時變化的,因此需要將旋轉(zhuǎn)功能放在Update()函數(shù)中,關(guān)鍵代碼如下:
//沒有觸碰
if (Input.touchCount<=0)
{return;}
//單點觸碰,水平旋轉(zhuǎn)
if (1== Input.touchCount)
{
Touch touch=Input.GetTouch(0);
Vector2 deltaPos=touch.deltaPosition;
this.transform.Rotate(-Vector3.up * deltaPos.x/2,Space.Self);
}
縮放功能則會在雙手指觸碰屏幕時觸發(fā),根據(jù)兩個觸碰點的距離變化來判斷是縮小還是放大。與旋轉(zhuǎn)一樣,該功能也應(yīng)該放在Update()函數(shù)中,關(guān)鍵代碼如下:
//多點觸摸, 放大縮小
Touch newTouch1=Input.GetTouch(0);
Touch newTouch2=Input.GetTouch(1);
//第2點剛開始接觸屏幕, 只記錄,不作處理
if (newTouch2.phase==TouchPhase.Began)
{
oldTouch2=newTouch2;
oldTouch1=newTouch1;
return;
}
//計算舊的兩點距離和新的兩點間距離,距離變大時放大模型,變小時縮小模型
float oldDistance=Vector2.Distance(oldTouch1.position,oldTouch2.position);
float newDistance=Vector2.Distance(newTouch1.position,newTouch2.position);
//兩個距離之差,為正表示放大手勢, 為負表示縮小手勢
float offset=newDistance-oldDistance;
//放大因子,1個像素按 0.001倍來算(倍數(shù)可調(diào)整)
float scaleFactor=offset/1000f;
Vector3 localScale=this.transform.localScale;
Vector3 scale=new Vector3(localScale.x+scaleFactor,localScale.y+scaleFactor,localScale.z+scaleFactor);
//最小縮放到 0.01 倍
if (scale.x>0.01f && scale.y>0.01f && scale.z>0.01f)
this.transform.localScale=scale;
//記住最新的觸摸點,下次使用
oldTouch1=newTouch1;
oldTouch2=newTouch2;
語音介紹功能是指,當成功識別顯示3D模型時,同步播放介紹音頻,失去目標時隱藏3D模型同時暫停播放音頻。在Image Target上添加Audio Source組件,選擇對應(yīng)的語音介紹源音頻,在追蹤顯示腳本(DefaultTrackableEventHandler.cs)中控制音頻的播放,關(guān)鍵代碼如下:
public AudioSource audio;
//識別成功時播放音頻
protected virtual void OnTrackingFound()
{
if (!audio.isPlaying)
{
audio.Play();
}
}
//丟失目標時暫停音頻
protected virtual void OnTrackingLost()
{
if (audio.isPlaying)
{
audio.Pause();
}
}
完成調(diào)試和開發(fā)之后,在Unity中將項目打包為apk安裝包,即可在手機上進行安裝和使用。該App可以識別各類圖像源,包括實體面具、電子圖像、真實照片等等,但是需要注意光線和對比度,當對比度低時會較難識別。使用App識別電腦屏幕上的儺面具圖片時,效果如圖6所示:
圖6 AR識別效果
依托萍鄉(xiāng)學(xué)院非物質(zhì)文化遺產(chǎn)研究中心和數(shù)字媒體技術(shù)虛擬仿真平臺,將本文的素材、方法、過程、結(jié)果和App等資源在線上(http://pxh5.com/vr/vrar.html)發(fā)布,所有人都可以通過該平臺獲取[10]。同時,萍鄉(xiāng)學(xué)院數(shù)字媒體技術(shù)專業(yè)在Maya建模、虛擬現(xiàn)實技術(shù)等課程中都有以儺文化元素為主題的相關(guān)教學(xué)內(nèi)容,大部分的學(xué)生在學(xué)習(xí)過程中對儺文化有了較深入的了解,相關(guān)作品如圖7所示。相信通過這種方式,會有包括大學(xué)生在內(nèi)的更多人了解儺文化,在未來的生活和工作中傳播儺文化,為其保護和傳承提供更多的可能。
圖7 基于儺元素的學(xué)生作品
儺面具是古儺文化的精髓之一,本文在進行萍鄉(xiāng)儺文化的社會認知度調(diào)查后,指出了儺文化保護和傳承中存在的若干問題,認為可以將增強現(xiàn)實技術(shù)應(yīng)用在儺文化的保護工作中。主要使用Maya建立3D模型,使用Unity構(gòu)建所需的場景和應(yīng)用,借助Vuforia SDK進行AR識別功能的快速開發(fā)。本文的結(jié)果被應(yīng)用在相關(guān)的教學(xué)和實踐中,切實提升了學(xué)生群體對儺文化的認知,取得了一定的效果。本文的方法也可以應(yīng)用在其他類似的場景和問題中。未來的工作將對相關(guān)軟件和系統(tǒng)的性能進行優(yōu)化,加入更多功能,同時也會不斷尋找更多高效、快捷、低成本的方案,加入到儺文化的保護工作中。