摘 要:一部動畫作品的制作過程是一個復(fù)雜的不斷反復(fù)#65380;逐步完善的過程,如何進(jìn)行數(shù)據(jù)版本的標(biāo)示并管理產(chǎn)品版本的變遷是一個困繞許多管理者的問題#65377;通過分析動畫制作過程中的數(shù)據(jù)流轉(zhuǎn)機制,采用文檔引用結(jié)構(gòu)樹來描述各個制作環(huán)節(jié)的文檔關(guān)系,設(shè)計一個獨特的數(shù)據(jù)結(jié)構(gòu),能夠?qū)崿F(xiàn)在動畫制作過程中快速地逐級傳遞文檔的變更信息,從而有效地控制大型并行環(huán)境中的動畫制作過程,提高協(xié)同工作效率#65377;
關(guān)鍵詞:動畫制作; 文檔結(jié)構(gòu)樹; 變更設(shè)計
中圖分類號:TP311.12文獻(xiàn)標(biāo)識碼:A
1 引 言
一部動畫作品的制作過程是一個復(fù)雜的過程,所涉及到的人員眾多#65377;在大部分動畫制作數(shù)碼化后的今天,制作過程中每個環(huán)節(jié)所產(chǎn)生的中間文檔繁多,利用計算機網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù)進(jìn)行各個環(huán)節(jié)間的文檔傳遞和管理是十分必要的#65377;特別是在動畫制作的反復(fù)變更過程中,如果沒有有效的途徑及時將修改信息傳遞到與之關(guān)聯(lián)的其它制作人員,控制好文檔的版本變更,則無法在動畫的變更制作過程中有效地協(xié)同工作,大大影響制作效率#65377;
2 控制動畫制作過程中數(shù)據(jù)的流轉(zhuǎn)機制
在動畫制作過程中,各個制作環(huán)節(jié)的完成標(biāo)志就是提交本環(huán)節(jié)的制作成果,這些成果隨環(huán)節(jié)的不同,數(shù)據(jù)格式各異#65377;這些文檔主要分為正在制作的個人工作文檔#65380;完成后等待審核的提交文檔#65380;審核通過后作為其它環(huán)節(jié)輸入的共享文檔和制作完成后最終歸檔的歸檔文檔#65377;
個人工作文檔是在各個環(huán)節(jié)的制作過程中由制作人員正在制作的文檔,存儲在制作人員的私有空間中,通常只有制作人員本人可以進(jìn)行修改#65377;當(dāng)制作人員完成一個環(huán)節(jié)的任務(wù)后,將個人工作文檔提交給審核人員審核,則該文檔從工作狀態(tài)轉(zhuǎn)化為提交狀態(tài),存儲在整個制作項目的共享空間中#65377;處于提交狀態(tài)的文檔稱作提交文檔,此時只有審核人員有權(quán)進(jìn)行修改,其它人員只能進(jìn)行瀏覽#65377;由該環(huán)節(jié)的審核人員審核后,如通過則該文檔將由提交文檔轉(zhuǎn)換成供后續(xù)環(huán)節(jié)使用的共享文檔#65377;如沒有通過,則將其退回給制作人員進(jìn)行修改,該文檔狀態(tài)由提交狀態(tài)返回到工作狀態(tài)#65377;當(dāng)所有的環(huán)節(jié)執(zhí)行完成后,最后一個環(huán)節(jié)生成的文檔將是本項目的最終文檔,歸檔成為可以發(fā)行的歸檔文檔,存儲在整個制作項目的歸檔空間中#65377;在進(jìn)行最終文檔歸檔時,需要檢測該文檔所引用的所有引用文檔,并一起進(jìn)行歸檔#65377;文檔的狀態(tài)轉(zhuǎn)換圖如圖1所示#65377;
3 文檔的組織結(jié)構(gòu)
分析動畫制作過程中的數(shù)據(jù)流轉(zhuǎn)機制,我們發(fā)現(xiàn),各個環(huán)節(jié)間的聯(lián)系主要通過兩條途徑實現(xiàn):一是通過動畫制作流程定義各環(huán)節(jié)間的關(guān)系,即本環(huán)節(jié)與前后環(huán)節(jié)間的關(guān)系;二是通過共享文檔的引用建立文檔引用層次關(guān)系,即本環(huán)節(jié)所產(chǎn)生的文檔,是依據(jù)哪個環(huán)節(jié)的哪個文檔經(jīng)過處理生成的#65377;
那么從動畫制作過程的首環(huán)節(jié)開始,所產(chǎn)生的文檔是整個動畫制作過程中其它環(huán)節(jié)的制作依據(jù),每經(jīng)過一個環(huán)節(jié),都將生成一批新的文檔,這些文檔將成為其后續(xù)的某些制作環(huán)節(jié)的制作依據(jù),一直到最后環(huán)節(jié)生成最終作品#65377;一個典型的動畫制作過程的文檔引用結(jié)構(gòu)樹如圖2所示#65377;該圖描述了一個作品從“劇本”開始,由導(dǎo)演分解編寫成“分鏡頭故事版”,再根據(jù)“分鏡頭故事版”編制出“角色設(shè)計圖”和“顏色設(shè)定表”#65377;將“分鏡頭故事版”分解成不同的場景和“角色設(shè)計圖”及“顏色設(shè)定表”一起分發(fā)給相應(yīng)的制作人員分別制作各個場景的“角色動作”和“場景設(shè)計”,再分別合成各個場景的故事,最后合成為作品的整個過程中的文檔關(guān)系#65377;
文檔引用結(jié)構(gòu)樹反映動畫制作流程中的文檔傳遞關(guān)系,每個環(huán)節(jié)所生成的文檔都可以說是整個作品的一個半成品,在經(jīng)過了所有的制作環(huán)節(jié)之后,才能最終生產(chǎn)出最終作品#65377;
每一個最終發(fā)行版本都將擁有一棵完整的文檔引用結(jié)構(gòu)樹,它描述了整個作品的制作過程#65377;
計算技術(shù)與自動化2007年6月第26卷第2期朱曉菊等:支持協(xié)同工作的動畫制作過程控制機制
4 文檔的版本控制機制
一個動畫作品,不可能在整個制作過程中通過制作流程一次性完成而不經(jīng)過任何修改,而且在很多環(huán)節(jié)的制作時間是重疊甚至是并行的#65377;對一個動畫產(chǎn)品來說,其制作過程是一個不斷反復(fù)#65380;逐步完善的過程#65377;在傳統(tǒng)的制作過程中,令管理者最為頭疼的問題是控制各個環(huán)節(jié)的修改版本,并需要快速地將設(shè)計的變更傳遞到正確的環(huán)節(jié)和正確的制作人員#65377;為了能夠快速有效地傳遞文檔的變更,需要設(shè)計有效的文檔版本控制機制#65377;
首先需要定義一下版本#65380;版次的概念#65377;
版本:版本是指一個歸檔文檔,經(jīng)過修改后重新歸檔的修改版#65377;
版次:版次是指在制作過程中,不斷反復(fù)修改完善過程中的共享文檔的修改版#65377;
由以上定義可以看出,版本是在歸檔空間作用于歸檔文檔的,而版次是在共享空間作用于共享文檔的#65377;一般情況下,版次的變更會比版本的變更要頻繁一些#65377;
工作文檔通常由制作人員的初始設(shè)計產(chǎn)生,也可以由其他文檔導(dǎo)出#65377;工作文檔在成為共享文檔之前其變更可能很頻繁,但因為它存儲在制作人員的個人空間中,這種變更不會影響其它環(huán)節(jié)的制作過程#65377;
共享文檔的變更需要進(jìn)行及時的傳遞,并加以控制,因為引用共享文檔的其它環(huán)節(jié)的制作人員必須及時的收到變更通知以便隨時對正在制作的工作文檔進(jìn)行更新#65377;所以當(dāng)一個工作文檔經(jīng)審核轉(zhuǎn)換成共享文檔時,需要記錄不同的版次#65377;
歸檔文檔在歸檔空間中,文檔一旦歸檔是不允許變更的#65377;如果需要進(jìn)行修改,必須啟動一個修改流程,獲得一個新的版本號創(chuàng)建一個新的版本#65377;
傳統(tǒng)的文檔引用結(jié)構(gòu)樹通常采用兩個表來描述,一個是文檔目錄表,用來記錄文檔的基本信息;一個是文檔引用結(jié)構(gòu)表,用來記錄文檔的引用關(guān)系#65377;那么,采用什么樣的版本傳遞機制才能將變更信息有效地進(jìn)行傳遞呢?從文檔引用結(jié)構(gòu)樹上,可以看到,除樹葉外,每一個節(jié)點都將受其下層節(jié)點的影響#65377;一旦修改了某個節(jié)點的版次,其上層節(jié)點必須對此作出反應(yīng),并根據(jù)已修改的下層文檔進(jìn)行本節(jié)點文檔的修改#65377;所以,任何一個版次的修改都必須及時地通知其上層節(jié)點,且是逐層向上傳遞的#65377;為此,需要在文檔引用結(jié)構(gòu)樹中記錄相應(yīng)的變更信息#65377;在傳統(tǒng)的文檔引用結(jié)構(gòu)表中,添加一個標(biāo)志字段,用來記錄該文檔的所引用的子文檔中有無版本更新,只要有一個或一個以上的子文檔有新版本,則將此標(biāo)志字段置為Y,只有當(dāng)所有子文檔的版本更新都被處理完后,才能將該標(biāo)志字段置為N#65377;同時,需要添加一個文檔更新表,用來記錄標(biāo)志字段置為Y時對應(yīng)的子文檔的更新版次,其表結(jié)構(gòu)主要有父文檔號#65380;父文檔版次號#65380;子文檔號#65380;子文檔新版次號#65377;當(dāng)父文檔處理完其中的一個更新版次后,相應(yīng)的記錄將從該表中刪除,并更新文檔引用結(jié)構(gòu)表中當(dāng)前父文檔的該子文檔的版次號為新版次號#65377;當(dāng)文檔更新表中當(dāng)前父文檔的所有子文檔的記錄全部處理完成后,更新文檔引用結(jié)構(gòu)表中當(dāng)前父文檔的標(biāo)志字段為N,并產(chǎn)生一個當(dāng)前父文檔的新版次號,更新該文檔的所有父文檔的標(biāo)志字段為Y,添加相應(yīng)的記錄到文檔更新表中#65377;圖3圖示了文檔的版次變化時的傳遞過程#65377;
圖3中的a#65380;b#65380;c#65380;d描述的是在共享空間中的一次修改過程#65377;通常一個作品的修改是要反復(fù)進(jìn)行的,當(dāng)經(jīng)過幾次反復(fù)后,其文檔層次引用結(jié)構(gòu)樹上的版次可能更新成圖4所示#65377;全部修改完成后,將要對已經(jīng)修改完成的文檔進(jìn)行歸檔,將文檔存入歸檔空間#65377;這時,所有被更新過的文檔都必須更改其版本號#65377;圖5是在歸檔空間中的與圖4對應(yīng)的文檔層次引用結(jié)構(gòu)樹#65377;可以看到,文檔在共享空間中是靠下層已升版標(biāo)志傳遞更新信息的,文檔的最新更新將以版次號加以區(qū)分,同一文檔的新版次總是取代其舊版次#65377;只有在需要保存文檔的變更歷史時,才有必要保存所有的版次#65377;一旦文檔進(jìn)行歸檔,有了新的版本,則一個作品的不同版本代表的是不同的產(chǎn)品,可以同時引用同一作品的不同版本#65377;
5 協(xié)同工作機制
一個動畫產(chǎn)品的制作是由一個團(tuán)隊共同完成的#65377;從文檔的版本控制機制中,可以看到一個文檔的修改可能影響到所有以它為依據(jù)創(chuàng)建的文檔#65377;當(dāng)一個文檔的版次變更時,在文檔更新表中記錄其所有的父文檔,并更新文檔引用結(jié)構(gòu)表中所有父文檔的相應(yīng)標(biāo)志#65377;這樣,能快速地通知所有與其相關(guān)的團(tuán)隊成員協(xié)同進(jìn)行產(chǎn)品的修改#65377;
同時,一個文檔可能同時有多個子文檔進(jìn)行了版次更新#65377;由于每次更新均會在文檔更新表中添加相應(yīng)的記錄,所以能夠及時得到所有已更新子文檔的更新信息,保證多人同時修改不同的文檔后能及時通知其共同的父文檔所有人,可以在多個子文檔進(jìn)行更新后一次性更新父文檔的版次,減少了版本變更次數(shù)和工作量,大大提高了工作效率#65377;
6 結(jié)束語
對一個動畫產(chǎn)品來說,其制作過程應(yīng)該是一個不斷反復(fù)#65380;逐步完善的過程,所產(chǎn)生的數(shù)據(jù)就會是一個不斷生成新版本的漸進(jìn)過程,數(shù)據(jù)版本的標(biāo)示和產(chǎn)品版本的變遷是一個困繞許多管理者的問題#65377;本文討論的解決方案能支持大型制作工程,提高協(xié)同工作效率#65377;同時,該方案也適應(yīng)于其它行業(yè)如機械制造企業(yè)的產(chǎn)品設(shè)計過程的協(xié)同控制#65377;
鑒于作者的水平有限,希望能以此起到拋磚引玉的作用,不正之處,還望專家指正#65377;
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。