專利名稱:一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于皮影制作技木,尤其是一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法。
背景技術(shù):
皮影,是ー種極其古老的民間表演藝術(shù),在我國乃至世界擁有很高的藝術(shù)價(jià)值。但是由于皮影的制作エ藝及表演形式及其復(fù)雜,同時(shí)皮影成品難于保存、傳播渠道比較單一,使得皮影這門古老藝術(shù)的發(fā)展現(xiàn)狀不容樂觀。因此,皮影戲的數(shù)字化傳播成為其發(fā)展的必然趨勢,將皮影戲這種傳統(tǒng)的藝術(shù)表現(xiàn)形式通過數(shù)字化的手段進(jìn)行制作和表演,并加入信息化的元素加以推廣和傳播,這對于 皮影戲的傳承和發(fā)展來說無疑有著巨大的促進(jìn)作用。皮影戲的數(shù)字化在國內(nèi)已經(jīng)展開,目前對數(shù)字皮影技術(shù)的研究主要集中在皮影仿真建模技術(shù),皮影動(dòng)畫控制技術(shù),皮影的數(shù)字化保護(hù)以及皮影戲的數(shù)字化表演等方面;這些所謂的數(shù)字化大都為單純的數(shù)碼化的過程,類似于動(dòng)畫的制作,缺乏交互性和表演性,而皮影戲的精髄在于它的表演過程,它對表演的技藝要求很高,普通的群眾一般無法掌握,也就不能了解這個(gè)過程所帯來的藝術(shù)創(chuàng)造力;所以真正的數(shù)字化皮影的目標(biāo),是要讓普通用戶參與,實(shí)現(xiàn)以用戶為中心的設(shè)計(jì)目標(biāo),在用戶與系統(tǒng)的交互過程中了解皮影,體驗(yàn)皮影戲的創(chuàng)作樂趣。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法,實(shí)現(xiàn)用戶可直接操縱和控制數(shù)字化的皮影道具,更加容易和方便地制作自己的數(shù)字皮影動(dòng)畫,并配合音頻視頻的多通道輸出反饋,達(dá)到與真實(shí)皮影戲相對吻合的程度,從而解決目前數(shù)字皮影技術(shù)所存在的交互性不足和缺乏表演性的問題。為達(dá)到上述目的,本發(fā)明提供了一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法,其特殊之處在于,包括以下步驟1)交互式設(shè)計(jì);2)皮影建模;3)皮影戲制作;4)皮影戲播放。上述步驟I)包括皮影戲制作區(qū)、皮影戲動(dòng)畫顯示區(qū)及自動(dòng)提示信息的設(shè)計(jì),均采用點(diǎn)擊界面的交互形式,即在瀏覽器中定義自己的工作區(qū),所有可視動(dòng)作只要單擊鼠標(biāo)鍵和移動(dòng)鼠標(biāo)即可。上述步驟2)主要包括2. I)皮影人物角色建模和2. 2)皮影背景建模;其中,步驟2. I)皮影人物角色建模的具體過程是對構(gòu)成皮影人物形象的各個(gè)部件進(jìn)行掃描并數(shù)字化,將數(shù)字化后的各個(gè)部件抽象為ー個(gè)個(gè)的皮影人物對象,每ー個(gè)皮影人物對象中都包含了所述各個(gè)部件的圖片、各個(gè)部件的旋轉(zhuǎn)角度、各個(gè)部件圖片的存儲(chǔ)路徑、各個(gè)部件的旋轉(zhuǎn)軸在制作區(qū)內(nèi)的坐標(biāo)、各個(gè)部件的旋轉(zhuǎn)軸在圖片內(nèi)的相對坐標(biāo)、熱點(diǎn)坐標(biāo)、熱區(qū)半徑、變換后的熱點(diǎn)坐標(biāo)、變換后的熱區(qū)半徑、各個(gè)部件圖片的高與寬、各個(gè)部件在X軸的平移距離和各個(gè)部件在Y軸的平移距離;其中熱區(qū)是指所述的各個(gè)部件所對應(yīng)的圓形區(qū)域,當(dāng)用戶用鼠標(biāo)點(diǎn)擊該區(qū)域視為用戶選中該部件;熱點(diǎn)是指該熱區(qū)的圓心;上述的每ー個(gè)皮影人物都有唯一的ID編號(hào),以便用戶選用,每ー個(gè)皮影人物對象還包含動(dòng)作鏈表RADList和狀態(tài)鏈表RSRList,所有的皮影人物對象均存儲(chǔ)于相應(yīng)的數(shù)據(jù)庫中。上述步驟2. 2)皮影背景建模的具體過程是將皮影背景掃描并進(jìn)行數(shù)字化,并抽象為ー個(gè)個(gè)背景對象,每ー個(gè)背景對象都包括背景的圖片、該圖片所對應(yīng)的位置坐標(biāo)、圖片的初始角度、圖片背景的編號(hào)、所對應(yīng)熱區(qū)的中心點(diǎn)坐標(biāo)、熱區(qū)半徑和圖片資源地址。所有的背景對象均存儲(chǔ)于相應(yīng)的數(shù)據(jù)庫中。上述步驟3)皮影戲制作的具體過程是選取背景一選取角色一選取皮影動(dòng)作一預(yù)覽選用的皮影動(dòng)作一完成皮影戲制作一選擇背景音樂一保存或者提交皮影戲;所述皮影動(dòng)作是數(shù)據(jù)庫中已有的皮影動(dòng)作或用戶自定義設(shè)計(jì)的皮影動(dòng)作;
在進(jìn)入皮影戲制作區(qū)之后,數(shù)據(jù)庫自動(dòng)初始化以下幾個(gè)鏈表皮影人物鏈表roleList,按順序保存正在制作的皮影戲所選取的皮影人物;皮影背景鏈表backgroundList,按順序保存正在制作的皮影戲所選取的皮影背
旦
牙ヽ;用戶操作記錄鏈表operRecordsList,按順序記錄用戶姆ー步操作選取的對象,包括對象是人物還是景物,及相應(yīng)的人物和景物編號(hào)。上述背景是指在制作皮影戲的過程中用到的道具,該道具可以不選也可以多選,選取后就可以將背景平移到合適的位置,根據(jù)所選背景的編號(hào)將該背景對象保存到皮影背景鏈表backgroundList中,選取完背景后就可以對該背景進(jìn)行平移,該操作將會(huì)被保存到用戶操作記錄鏈表operRecordsList中;所述角色即皮影戲人物,有生旦凈末丑五種角色,用戶可以選擇ー個(gè)或多個(gè)該皮影戲人物,根據(jù)所選角色的編號(hào)將該角色對象保存到皮影人物鏈表roleList中;所述選用數(shù)據(jù)庫中的動(dòng)作或設(shè)計(jì)自定義的動(dòng)作并保存是指數(shù)據(jù)庫中為用戶提供了一些已做好的皮影動(dòng)作,用戶可以在制作皮影戲的過程中選擇這些動(dòng)作,同時(shí)系統(tǒng)會(huì)自動(dòng)的將所選的這些動(dòng)作保存到用戶操作記錄鏈表operRecordsList中;用戶自己也可以通過鼠標(biāo)拖動(dòng)皮影人物的各個(gè)部件的旋轉(zhuǎn)以及皮影整體的移動(dòng),為皮影人物設(shè)計(jì)多個(gè)動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài),并把每個(gè)動(dòng)作保存在人物動(dòng)作鏈表RADList中,在人物動(dòng)作鏈表RADList中保存每個(gè)動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài);所述預(yù)覽選用的數(shù)據(jù)庫中已有的動(dòng)作或設(shè)計(jì)的自定義動(dòng)作的效果是指根據(jù)皮影人物鏈表roleList中存儲(chǔ)的人物所對應(yīng)的動(dòng)作鏈表RADList中的數(shù)據(jù),來重放前面設(shè)計(jì)的一些列動(dòng)作;所述完成皮影戲制作是指將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList的內(nèi)容存入數(shù)據(jù)庫,將所有皮影背景鏈表backgroundList的內(nèi)容存入數(shù)據(jù)庫;所述選擇背景音樂是指在皮影戲制作完成后,用戶可以選擇合適的背景音樂,并將音樂信息存入到數(shù)據(jù)庫;所述保存或者提交皮影戲是指將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList和人物狀態(tài)鏈表RSRList的內(nèi)容存入數(shù)據(jù)庫,所有皮影背景鏈表backgroundList的內(nèi)容存入數(shù)據(jù)庫。上述步驟4)皮影的具體播放過程是指在播放時(shí)根據(jù)數(shù)據(jù)庫中保存的皮影人物對象、背景對象的初始狀態(tài)和終止?fàn)顟B(tài),通過線性插值算法進(jìn)行幀的插值,得到完整的動(dòng)作數(shù)據(jù),獲得平滑流暢的皮影動(dòng)畫播放效果。
在上述的四個(gè)步驟中,其中通過掃描獲得的原始皮影人物對象、背景對象的邊緣信息是粗糙的,也是很難提取其邊緣的,因此先對皮影人物對象、背景對象進(jìn)行濾波去噪,使其邊緣變得平滑與突顯,然后使用拉普拉斯圖像邊緣檢測算法去獲得皮影人物對象、背景對象的各部件 的完整邊緣信息。對于在上述四個(gè)步驟中提及的用戶操作過程中使用的平移是采用基于矩陣的圖像平移變換,圖象旋轉(zhuǎn)過程采用傳統(tǒng)的旋轉(zhuǎn)矩陣以及調(diào)用java.awt· geom.AffineTransform 類來實(shí)現(xiàn)。本發(fā)明的優(yōu)點(diǎn)是實(shí)現(xiàn)了對戲曲場景的布局與交互式表演,用戶可直接操縱和控制數(shù)字化的皮影道具,更加容易和方便地制作自己的數(shù)字皮影動(dòng)畫,并配合音頻視頻的多通道輸出反饋,達(dá)到與真實(shí)皮影戲相對吻合的程度,有效的解決目前數(shù)字皮影技術(shù)交互性不足和缺乏表演性的問題,為數(shù)字皮影的后期發(fā)展提供新的思路。
現(xiàn)結(jié)合附圖和實(shí)施例對本發(fā)明做詳細(xì)說明圖I是皮影人物骨骼樹。圖2是摘值算法不意圖。圖3是皮影戲制作區(qū)示意圖。圖4是皮影動(dòng)畫顯示區(qū)示意圖。圖5是皮影戲制作過程的流程圖。對圖I中各個(gè)符號(hào)的解釋如下0、頭部;1、上身;2、腰;3、左腿;4、右腿;5、右大臂;6、右小臂;7、右手;8、左大臂;9、左小臂;10、左手;root、上身和腰連接的節(jié)點(diǎn)。
具體實(shí)施例方式本發(fā)明的目的是提供一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法,實(shí)現(xiàn)用戶可直接操縱和控制數(shù)字化的皮影道具,更加容易和方便地制作自己的數(shù)字皮影動(dòng)畫,并配合音頻視頻的多通道輸出反饋,達(dá)到與真實(shí)皮影戲相對吻合的程度,從而解決目前數(shù)字皮影技術(shù)所存在的交互性不足和缺乏表演性的問題。為達(dá)到上述目的,本實(shí)例提供了一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法,其特殊之處在于,包括以下步驟1)交互式設(shè)計(jì);2)皮影建模;3)皮影戲制作;4)皮影戲播放。其中,交互式設(shè)計(jì)主要指用戶界面的設(shè)計(jì),包括皮影戲制作區(qū),皮影戲動(dòng)畫顯示區(qū)以及自動(dòng)提示信息的設(shè)計(jì);本實(shí)例采用點(diǎn)擊界面的交互形式進(jìn)行設(shè)計(jì),即在瀏覽器中定義工作區(qū),所有可視動(dòng)作只要單擊鼠標(biāo)鍵和移動(dòng)鼠標(biāo)即可。這里的皮影戲制作區(qū)是指用戶制作皮影戲的區(qū)域,如圖3所示;皮影戲動(dòng)畫顯示區(qū)是指播放用戶制作的皮影戲動(dòng)畫的區(qū)域,如圖4所示?;诨ヂ?lián)網(wǎng)的交互式皮影戲制作的整體過程如下I.皮影建模I. I皮影人物角色建模每ー個(gè)皮影人物均是由11個(gè)部件組成(頭、上身、腰、大臂(兩個(gè))、小臂(兩個(gè))、手(兩個(gè))、腿(兩個(gè)));將11個(gè)部件掃描并進(jìn)行數(shù)字化,同時(shí)把它們抽象為ー個(gè)個(gè)的對象。對象中包含了部件圖片、部件旋轉(zhuǎn)角度、部件圖片存儲(chǔ)路徑、部件旋轉(zhuǎn)軸在制作區(qū)內(nèi)的坐標(biāo)、部件旋轉(zhuǎn)軸在圖片內(nèi)的相對坐標(biāo)、熱點(diǎn)坐標(biāo)、熱區(qū)半徑、變換后的熱點(diǎn)坐標(biāo)、變換后的熱區(qū)半徑、部件圖片的高與寬、部件在X軸的平移距離、部件在Y軸的平移距離這些屬性(注熱區(qū)是指每個(gè)部件所對應(yīng)的圓形區(qū)域,當(dāng)用戶用鼠標(biāo)點(diǎn)擊該區(qū)域視為用戶選中該部件,熱點(diǎn)指該熱區(qū)的圓心)。每ー個(gè)皮影人物都有唯一的id編號(hào),以便用戶選用;皮影人物對象中不僅包含各個(gè)部件,還包含兩個(gè)列表動(dòng)作鏈表RADList和狀態(tài)鏈表RSRList。 為了使用戶可以制作皮影戲,即使用戶設(shè)計(jì)皮影人物的動(dòng)作,建立了下面的模型,使得用戶可以通過點(diǎn)擊各個(gè)皮影部件的熱區(qū)部分來旋轉(zhuǎn)皮影各個(gè)部件,使用戶可以讓皮影人物擺出不同的造型,分析皮影人物的外形特征,由于傳統(tǒng)的皮影人物由十一個(gè)部件構(gòu)成,類似于人體的骨骼特征,因此從人體結(jié)構(gòu)學(xué)方面入手進(jìn)行分析,建立皮影人物部件之間的父子層級(jí)關(guān)系,創(chuàng)建皮影人物部件的骨骼樹,如圖I所示,其中皮影人物的頭部被標(biāo)號(hào)為0,上身被標(biāo)號(hào)為I,腰被標(biāo)號(hào)為2,左腿被標(biāo)號(hào)為3,右腿被標(biāo)號(hào)為4,右大臂標(biāo)號(hào)為5,右小臂標(biāo)號(hào)為6,右手標(biāo)號(hào)為7,左大臂標(biāo)號(hào)為8,左小臂標(biāo)號(hào)為9,左手標(biāo)號(hào)為10,上身和腰連接的節(jié)點(diǎn)被標(biāo)為root ;將各個(gè)部件通過節(jié)點(diǎn)間的依賴關(guān)系可以表示為圖I右部的樹,當(dāng)父節(jié)點(diǎn)被平移或旋轉(zhuǎn)時(shí),子節(jié)點(diǎn)也要做相同動(dòng)作,比如,只有root節(jié)點(diǎn)可以平移,當(dāng)選中!·oot節(jié)點(diǎn)即鼠標(biāo)點(diǎn)擊上身和腰部的連接點(diǎn)對應(yīng)的熱區(qū),然后進(jìn)行平移時(shí),皮影人物的各個(gè)部件將會(huì)ー起跟著平移;當(dāng)選中節(jié)點(diǎn)I即鼠標(biāo)點(diǎn)擊了上身對應(yīng)的熱區(qū)時(shí),不僅可以對上身進(jìn)行旋轉(zhuǎn),這時(shí)節(jié)點(diǎn)0、5、6、7、8、9、10對應(yīng)的部件,即左右大臂、小臂和手以及頭部也都要進(jìn)行相同的旋轉(zhuǎn)(旋轉(zhuǎn)軸和旋轉(zhuǎn)角度均相同);當(dāng)選中節(jié)點(diǎn)2即點(diǎn)擊了腰對應(yīng)的熱區(qū)時(shí),不僅可以對腰部進(jìn)行旋轉(zhuǎn),這時(shí)節(jié)點(diǎn)3、4對應(yīng)的部件,即左右腿也都要進(jìn)行相同的旋轉(zhuǎn);對于其余部件的情況與上面所舉的幾個(gè)例子類似,在這里就不再敘述,然而對于子節(jié)點(diǎn)如0、3、4、7、10即對部件頭部、左右腿和左右手的旋轉(zhuǎn)不會(huì)影響其他部件。平移通過記錄部件在X軸的平移距離和部件在Y軸的平移距離來實(shí)現(xiàn)。旋轉(zhuǎn)通過彷射變換(java.awt. geom. AffineTransform java 中的一個(gè)進(jìn)行ニ維變換的類)實(shí)現(xiàn)。I. 2皮影背景建模因?yàn)閷τ谄び氨尘暗牟僮骶褪侵粚ζ溥M(jìn)行平移,所以在建模的時(shí)候只需將皮影背景掃描并進(jìn)行數(shù)字化,并將其抽象為ー個(gè)個(gè)對象就可以了,其中每個(gè)對象均包括背景得圖片、背景圖片所對應(yīng)的位置坐標(biāo)、圖片初始角度、背景編號(hào)、熱區(qū)中心點(diǎn)坐標(biāo)、熱區(qū)半徑、圖片資源地址。平移通過記錄背景在X軸的平移距離和背景在Y軸的平移距離來實(shí)現(xiàn)。2.制作皮影戲過程(皮影戲制作區(qū))用戶制作一部皮影戲,通過以下幾個(gè)步驟就可以完成選取背景一選取角色一選用數(shù)據(jù)庫中的動(dòng)作或設(shè)計(jì)自定義的動(dòng)作并保存一預(yù)覽選用的數(shù)據(jù)庫中的動(dòng)作或設(shè)計(jì)的自定義動(dòng)作的效果一完成皮影戲的制作一選擇背景音樂一保存或者提交皮影戲(輸入皮影戲的名稱)。用戶也可以接著制作上次保存的未完成的皮影戲。在進(jìn)入制作區(qū)之后,系統(tǒng)會(huì)自動(dòng)初始化以下幾個(gè)鏈表皮影人物鏈表(roleList 按順序保存正在制作的皮影戲所選取的皮影人物)、皮影背景鏈表(backgroundList :按順序保存正在制作的皮影戲所選取的皮影背景)、用戶操作記錄鏈表(operRecordsList :按順序記錄用戶每ー步操作選取的對象即對象是人物還是景物,及相應(yīng)的人物和景物編號(hào))。這些鏈表在下面具體講各步驟的實(shí)現(xiàn)時(shí)都會(huì)用到。2. I選取背景用戶可以選擇制作皮影戲用到的道具,如樹、桌子、椅子、井等,背景可以不選也可以多選,選取后就可以將背景平移到合適的位置。根據(jù)所選背景的編號(hào)將該背景對象保存到皮影背景鏈表backgroundList中。選取完背景后就可以對背景進(jìn)行平移,這個(gè)操作將會(huì)被保存到用戶操作記錄鏈表operRecordsList 中。
2. 2選取角色角色即皮影人物,有生旦凈末丑五種角色,用戶可以選擇ー個(gè)或多個(gè)系統(tǒng)提供的皮影戲人物,根據(jù)用戶需要進(jìn)行選擇,系統(tǒng)會(huì)根據(jù)所選角色的編號(hào)將該角色對象保存到皮影人物鏈表roleList中。2. 3選取系統(tǒng)動(dòng)作系統(tǒng)為用戶提供了一些已做好的動(dòng)作,如走路、說話等,用戶可以在制作皮影戲的過程中選擇這些動(dòng)作,這樣會(huì)使得制作皮影戲的速度提高很多,系統(tǒng)也會(huì)自動(dòng)將一系列操作保存到用戶操作記錄鏈表operRecordsList中,比如用戶正在操作ー個(gè)旦角,此時(shí)若用戶選取了系統(tǒng)動(dòng)作說話,則系統(tǒng)將自動(dòng)將該旦角說話時(shí)會(huì)涉及的一些狀態(tài)自動(dòng)存入用戶操作記錄鏈表operRecordsList中。2.4自定義動(dòng)作設(shè)計(jì)用戶自己通過鼠標(biāo)拖動(dòng)皮影人物的各個(gè)部件的旋轉(zhuǎn)以及皮影整體(腰部)的移動(dòng),為皮影人物設(shè)計(jì)多個(gè)動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài),并將這些動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài)都保存到動(dòng)作鏈表中,在預(yù)覽和播放過程中系統(tǒng)會(huì)根據(jù)在動(dòng)作鏈表中保存的動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài)通過差值計(jì)算去獲到完整的皮影動(dòng)作數(shù)據(jù)。在制作皮影戲過程中,不僅有以上提到的鏈表,還有當(dāng)前選中人物、當(dāng)前選中背景、人物編號(hào)、背景編號(hào)、動(dòng)作編號(hào)、當(dāng)前鼠標(biāo)的位置等對象,這些在自定義動(dòng)作設(shè)計(jì)中都會(huì)涉及到。在用戶對當(dāng)前選中的皮影人物的各個(gè)部件進(jìn)行旋轉(zhuǎn),或?qū)ζび叭宋镎w進(jìn)行平移時(shí),當(dāng)前皮影人物對象中的屬性值(包含各部件的旋轉(zhuǎn)角度、整體平移位移)都將改變。2. 5 保存對于用戶選擇的系統(tǒng)動(dòng)作,或自己設(shè)計(jì)皮影人物的動(dòng)作狀態(tài)都需要保存下來,這樣可以使得系統(tǒng)給用戶提供預(yù)覽、播放的功能。在保存過程中,系統(tǒng)完成將當(dāng)前選中人物對象的整體平移位移、各個(gè)部件的旋轉(zhuǎn)角度、及插值所用的步進(jìn)總次數(shù)、動(dòng)作循環(huán)次數(shù)保存到當(dāng)前人物對象的人物動(dòng)作鏈表RADList中,然后將當(dāng)前選中人物對象的整體平移位移、各個(gè)部件的旋轉(zhuǎn)角度、整體平移及各部件旋轉(zhuǎn)的放射變換矩陣保存到人物狀態(tài)鏈表RSRList中。最后在用戶操作記錄鏈表operRecordsList中添加一條記錄表明當(dāng)前操作的是皮影人物,并保存當(dāng)前皮影人物的編號(hào)。
2. 6 撤銷用戶在設(shè)計(jì)動(dòng)作時(shí),可以撤銷用戶最近做的ー個(gè)動(dòng)作,或者連續(xù)撤銷好幾個(gè)動(dòng)作。在撤銷過程中,系統(tǒng)主要完成修改皮影人物鏈表roleList、皮影背景鏈表backgroundList、用戶操作記錄鏈表operRecordsList及當(dāng)前人物對象中的人物動(dòng)作鏈表RADList和用人物狀態(tài)鏈表RSRList。2. 7 預(yù)覽在制作過程中,用戶可以通過預(yù)覽功能隨時(shí)觀看系統(tǒng)已保存的所有動(dòng)作,即不完整的皮影戲。在此過程中,系統(tǒng)主要完成在制作過程中根據(jù)皮影人物鏈表中存儲(chǔ)的人物所對應(yīng) 的動(dòng)作鏈表RADList中的數(shù)據(jù),來重放前面設(shè)計(jì)的一些列動(dòng)作,用戶可以隨時(shí)根據(jù)預(yù)覽效果對動(dòng)作進(jìn)行重新編輯。2. 8添加背景音樂在用戶保存已完成皮影戲時(shí)可選擇系統(tǒng)提供的秦腔和其他類的音樂作為用戶所制作皮影戲的背景音樂。在此過程中,系統(tǒng)主要完成在皮影戲制作完成后,用戶選擇合適的背景音樂,將音樂信息存入到數(shù)據(jù)庫,在用戶進(jìn)行動(dòng)畫重放時(shí)根據(jù)數(shù)據(jù)庫中的音樂信息,從服務(wù)器加載音樂到本地與皮影動(dòng)畫進(jìn)行同步播放。2. 9保存未完成皮影戲可以保存已登錄用戶制作的不完整的皮影戲,使用戶下次登錄時(shí)可以接著做。在此過程中,系統(tǒng)主要完成將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList和人物狀態(tài)鏈表RSRList的內(nèi)容存入數(shù)據(jù)庫,并將所有皮影背景鏈表backgroundList的內(nèi)容也存入數(shù)據(jù)庫。2. 10提交已完成皮影戲保存已登錄用戶制作完成的皮影戲,將其提交到數(shù)據(jù)庫中,以便以后隨時(shí)觀看。在此過程中,系統(tǒng)完成將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList的內(nèi)容存入數(shù)據(jù)庫,并將所有皮影背景鏈表backgroundList的內(nèi)容也存入數(shù)據(jù)庫。2. 11制作未完成的皮影戲已登錄用戶可以選擇尚未制作完成的皮影戲繼續(xù)制作。
在此過程中,系統(tǒng)完成從數(shù)據(jù)庫中獲取上次制作的內(nèi)容,并恢復(fù)上次未完成的皮影人物鏈表roleList、皮影背景鏈表backgroundList、用戶操作記錄鏈表operRecordsList及當(dāng)前人物對象中的人物動(dòng)作鏈表RADList和人物狀態(tài)鏈表RSRList。3.播放(皮影動(dòng)畫顯示區(qū))播放即從數(shù)據(jù)庫中獲取要播放皮影戲的所有內(nèi)容(包括皮影背景有哪些、位置如何、皮影人物有哪些、皮影每個(gè)動(dòng)作的具體信息等);然后恢復(fù)系統(tǒng)完成將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList的內(nèi)容存入數(shù)據(jù)庫,并將所有皮影背景鏈表backgroundList的內(nèi)容的也寫入數(shù)據(jù)庫,這樣就可以播放皮影戲了,但是要取得更好的播放效果就還得進(jìn)行下一歩操作。用戶在制作和設(shè)計(jì)皮影戲的動(dòng)作時(shí),系統(tǒng)只保存了每個(gè)動(dòng)作的起始和終止?fàn)顟B(tài),在播放時(shí)需要通過線性插值算法進(jìn)行插值,來獲得平滑的皮影動(dòng)畫播放效果。如圖2所示,線性插值算法的思想如下使用Λ = Si-S^1和插入幀數(shù)=Δ/StepAngle兩個(gè)公式可以計(jì)算出要插入的幀數(shù),即步進(jìn)次數(shù)(從初始狀態(tài)到終止?fàn)顟B(tài)要分幾步完成);其中Si和Sg分別為ー個(gè)動(dòng)作的終止?fàn)顟B(tài)和起始狀態(tài),Δ為終止?fàn)顟B(tài)在起始狀態(tài)的基礎(chǔ)上增加的皮影人物整體的位移及各個(gè)部件的旋轉(zhuǎn)角度;舉例說明如圖中皮影人物的初始狀態(tài)左腿的角度是45°,終止?fàn)顟B(tài)中左腿的角度是10°,對左腿而言,Λ =Si-S^1=-10° -(-45。) =35。,stepAngle = I。,則插入巾貞數(shù)=Δ/stepAngle = 30。/I。=30,即左腿要經(jīng)過35次的變化(逆時(shí)針旋轉(zhuǎn)1° )才能從初始狀態(tài)轉(zhuǎn)到終止?fàn)顟B(tài)。對右腿而言,Δ = Si-SiJ = 25。-55。= -30° , stepAngle = I。,則插入巾貞數(shù)=Δ /stepAngle=30° /1° = 30,即右腿要經(jīng)過30次的變化(順時(shí)針旋轉(zhuǎn)1° )才能從初始狀態(tài)轉(zhuǎn)到終止?fàn)顟B(tài),對于身體其他部件的計(jì)算是類似的。各個(gè)部件插入的幀數(shù)可以不同,插入幀數(shù)少的部件變化完之后就保持現(xiàn)狀,等待插入幀數(shù)多得部件變化完 成,平移時(shí)stepAngle相當(dāng)于每一次變換要平移的位移量。圖5是皮影戲的具體制作過程的流程圖,由此圖可知,在制作皮影戲時(shí),首先從數(shù)據(jù)庫中選取ー個(gè)皮影人物,然后依據(jù)要制作的皮影戲決定是否還需要選取皮影人物,如果需要?jiǎng)t繼續(xù)在數(shù)據(jù)庫中選取皮影人物,如果不需要?jiǎng)t自數(shù)據(jù)庫中選取皮影背景,并依據(jù)要制作的皮影戲決定是否需要選取皮影背景,需要?jiǎng)t繼續(xù)自數(shù)據(jù)庫中選取皮影背景,不需要?jiǎng)t在數(shù)據(jù)庫中選中數(shù)據(jù)庫中已有的人物動(dòng)作或者自行設(shè)計(jì)ー個(gè)人物動(dòng)作,之后自數(shù)據(jù)庫中選擇背景音樂,制作完成后可以保存提交,也可以在沒有制作完成的情況下進(jìn)行保存,最后給整個(gè)皮影戲命名,退出即可。在制作的過程中,背景音樂可選可不選,樣式靈活,自如,增添了制作樂趣。
權(quán)利要求
1.一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法,其特征在于,這種方法主要包括以下步驟1)交互式設(shè)計(jì);2)皮影建模;3)皮影戲制作;4)皮影戲播放。
2.如權(quán)利要求I所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述步驟I)包括皮影戲制作區(qū)、皮影戲動(dòng)畫顯示區(qū)及自動(dòng)提示信息的設(shè)計(jì),均采用點(diǎn)擊界面的交互形式;所述皮影戲制作區(qū)是指用戶制作皮影戲的區(qū)域,所述的皮影戲動(dòng)畫顯示區(qū)是指播放用戶制作的皮影戲動(dòng)畫的區(qū)域。
3.如權(quán)利要求I所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述步驟2)包括2. I)皮影人物角色建模和2. 2)皮影背景建模;其中,2. I)皮影人物角色建模的具體過程是對構(gòu)成皮影人物形象的各個(gè)部件進(jìn)行掃描并進(jìn)行數(shù)字化,將數(shù)字化后的各個(gè)部件抽象為ー個(gè)的皮影人物對象,每ー個(gè)皮影人物對象中都包含了所述各個(gè)部件的圖片、各個(gè)部件的旋轉(zhuǎn)角度、各個(gè)部件的圖片存儲(chǔ)路徑、各個(gè)部件的旋轉(zhuǎn)軸在制作區(qū)內(nèi)的坐標(biāo)、各個(gè)部件的旋轉(zhuǎn)軸在圖片內(nèi)的相對坐標(biāo)、熱點(diǎn)坐標(biāo)、熱區(qū)半徑、變換后的熱點(diǎn)坐標(biāo)、變換后的熱區(qū)半徑、各個(gè)部件圖片的高與寬、各個(gè)部件在X軸的平移距離和各個(gè)部件在Y軸的平移距離; 上述的熱區(qū)是指所述的各個(gè)部件所對應(yīng)的圓形區(qū)域,當(dāng)用戶用鼠標(biāo)點(diǎn)擊該區(qū)域視為用戶選中該部件,熱點(diǎn)指該熱區(qū)的圓心; 上述皮影人物對象都有唯一的ID編號(hào),以便用戶選用; 所述皮影人物對象還包含動(dòng)作鏈表RADList和狀態(tài)鏈表RSRList ; 所述皮影人物對象存儲(chǔ)于數(shù)據(jù)庫中。
4.如權(quán)利要求3所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于所述2.2)皮影背景建模的具體過程是將皮影背景掃描并進(jìn)行數(shù)字化,并抽象為ー個(gè)個(gè)背景對象,其中包括背景的圖片、背景圖片所對應(yīng)的位置坐標(biāo)、圖片初始角度、背景編號(hào)、熱區(qū)中心點(diǎn)坐標(biāo)、熱區(qū)半徑和圖片資源地址,所有的背景對象都存儲(chǔ)于相應(yīng)的數(shù)據(jù)庫中。
5.如權(quán)利要求I所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述步驟3)皮影戲制作的具體過程是選取背景一選取角色一選取皮影動(dòng)作一預(yù)覽選用的皮影動(dòng)作一完成皮影戲制作一選擇背景音樂一保存或者提交皮影戲; 所述皮影動(dòng)作是數(shù)據(jù)庫中已有的皮影動(dòng)作或用戶自定義設(shè)計(jì)的皮影動(dòng)作; 在進(jìn)入皮影戲制作區(qū)之后,數(shù)據(jù)庫自動(dòng)初始化以下幾個(gè)鏈表 皮影人物鏈表roleList,按順序保存正在制作的皮影戲所選取的皮影人物; 皮影背景鏈表backgroundList,按順序保存正在制作的皮影戲所選取的皮影背景;用戶操作記錄鏈表operRecordsList,按順序記錄用戶姆ー步操作選取的對象,包括對象是人物還是景物,及相應(yīng)的人物和景物編號(hào)。
6.如權(quán)利要求5所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于所述背景是指在制作皮影戲的過程中用到的道具,且該道具可以不選也可以多選,如果該道具被選取,那么選取后就可以將背景平移到合適的位置,根據(jù)所選背景的編號(hào)將該背景對象保存到皮影背景鏈表backgroundList中,選取完背景后就可以對該背景進(jìn)行平移,該操作將會(huì)被保存到用戶操作記錄鏈表operRecordsList中; 所述角色即皮影戲人物,有生旦凈末丑五種角色,用戶可以選擇ー個(gè)或多個(gè)該皮影戲人物,根據(jù)所選角色的編號(hào)將該角色對象保存到皮影人物鏈表roleList中; 所述數(shù)據(jù)庫中已有的皮影動(dòng)作是指數(shù)據(jù)庫中為用戶提供了一些已做好的動(dòng)作,用戶可以在制作皮影戲的 過程中選擇這些動(dòng)作,同時(shí)數(shù)據(jù)庫會(huì)自動(dòng)將所選的這些動(dòng)作保存到用戶操作記錄鏈表operRecordsList中; 所述用戶自定義設(shè)計(jì)的皮影動(dòng)作是指用戶也可以自己通過鼠標(biāo)拖動(dòng)皮影人物的各個(gè)部件進(jìn)行各部件的旋轉(zhuǎn)以及拖動(dòng)皮影人物的腰部結(jié)點(diǎn)進(jìn)行皮影整體的移動(dòng),為皮影人物設(shè)計(jì)多個(gè)動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài),并將每個(gè)動(dòng)作的初始狀態(tài)和終止?fàn)顟B(tài)保存到人物動(dòng)作鏈表RADList中; 所述預(yù)覽選用的數(shù)據(jù)庫中已有的動(dòng)作或設(shè)計(jì)的自定義動(dòng)作的效果是指根據(jù)皮影人物鏈表roleList中存儲(chǔ)的人物所對應(yīng)的動(dòng)作鏈表RADList中的數(shù)據(jù),來重放前面設(shè)計(jì)的ー些列動(dòng)作。
所述完成皮影戲制作是指將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList的內(nèi)容存入數(shù)據(jù)庫,并將所有皮影背景鏈表backgroundList的內(nèi)容也存入數(shù)據(jù)庫。
所述選擇背景音樂是指在皮影戲制作完成后,用戶可以選擇合適的背景音樂,并將音樂信息存入到數(shù)據(jù)庫; 所述保存或者提交皮影戲是指將用戶操作記錄鏈表operRecordsList中所有人物對象中的人物動(dòng)作鏈表RADList和人物狀態(tài)鏈表RSRList的內(nèi)容存入數(shù)據(jù)庫并將所有皮影背景鏈表backgroundList的內(nèi)容也存入數(shù)據(jù)庫。
7.如權(quán)利要求I所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述步驟4)皮影戲播放的具體過程是根據(jù)數(shù)據(jù)庫中保存的皮影人物對象、背景對象的初始狀態(tài)和終止?fàn)顟B(tài),通過線性插值算法進(jìn)行插值,得到完整的動(dòng)作數(shù)據(jù),獲得平滑的皮影動(dòng)畫播放效果O
8.如權(quán)利要求3所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述步驟2.I)中對構(gòu)成皮影人物形象的各個(gè)部件進(jìn)行掃描并進(jìn)行數(shù)字化的過程中,在掃描后、進(jìn)行數(shù)字化前還包括對掃描的皮影人物形象進(jìn)行濾波去噪,然后使用拉普拉斯圖像邊緣檢測算法獲得掃描的皮影人物形象的圖像邊緣信息,進(jìn)而獲得掃描的皮影人物形象的各部件的完整的邊緣信息。
9.如權(quán)利要求4所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述步驟2.2)中將皮影背景掃描并進(jìn)行數(shù)字化的過程中,在掃描后、進(jìn)行數(shù)字化前還包括對掃描的皮影背景進(jìn)行濾波去噪,然后使用拉普拉斯圖像邊緣檢測算法獲得掃描的皮影背景的圖像邊緣信息,進(jìn)而獲得掃描的皮影背景的各部件的完整的邊緣信息。
10.如權(quán)利要求6所述的基于互聯(lián)網(wǎng)的交互式皮影制作方法,其特征在于,所述用戶自定義設(shè)計(jì)的皮影動(dòng)作,其中用戶操作過程中的平移采用基于矩陣的圖像平移變換,圖象旋轉(zhuǎn)過程采用傳統(tǒng)的旋轉(zhuǎn)矩陣以及調(diào)用java. awt. geom. AffineTransform類來實(shí)現(xiàn)。
全文摘要
本發(fā)明提供了一種基于互聯(lián)網(wǎng)的交互式數(shù)字皮影戲制作方法,主要包括以下四個(gè)步驟1)交互式設(shè)計(jì);2)皮影建模;3)皮影戲制作;4)皮影戲播放。通過該方法實(shí)現(xiàn)了戲曲場景的布局與皮影戲的交互式表演,用戶可直接操縱和控制數(shù)字化的皮影道具,更加容易和方便地制作自己的數(shù)字皮影動(dòng)畫,并配合音頻視頻的多通道輸出反饋,達(dá)到與真實(shí)皮影戲相對吻合的程度,有效的解決目前數(shù)字皮影技術(shù)交互性不足和缺乏表演性的問題,為數(shù)字皮影的后期發(fā)展提供新的思路。
文檔編號(hào)G06T13/00GK102663797SQ20121011496
公開日2012年9月12日 申請日期2012年4月18日 優(yōu)先權(quán)日2012年4月18日
發(fā)明者馮筠, 華慶一 申請人:西北大學(xué)