專利名稱:一種動(dòng)畫片頭和片尾字幕的生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及動(dòng)畫制作自動(dòng)化領(lǐng)域,特別是涉及 一 種動(dòng)畫片頭和片尾字 幕的生成方法。
背景技術(shù):
動(dòng)畫片頭和片尾字幕的制作是數(shù)字動(dòng)畫制作中非常重要的環(huán)節(jié),現(xiàn)有
的方法大都停留在手工制作的層面。手工制作的方式通過^f吏用3D MAX或 者M(jìn)aya制作出需要的字幕效果模型,然后將制作好的模型導(dǎo)入After Effects或者Adobe Premiere,產(chǎn)生各種效果的字幕類型。該方式需要耗費(fèi) 較多的人力和財(cái)力。在實(shí)際的工作過程中需要生成大量的動(dòng)畫片段,因而 字幕的制作就需要盡量節(jié)省時(shí)間,很明顯傳統(tǒng)的工作方式無法滿足需求。
因此,迫切需要一種動(dòng)畫片頭和片尾字幕的自動(dòng)生成方法,使其能夠 自動(dòng)生成動(dòng)畫腳本,從而產(chǎn)生動(dòng)畫效果,提高字幕制作的效率。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供 一種自動(dòng)生成動(dòng)畫片頭和片尾的方 法,以節(jié)省手工制作動(dòng)畫的人力和財(cái)力。
為了實(shí)現(xiàn)上述發(fā)明目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種動(dòng)畫片 頭和片尾字幕的生成方法,包括下列步驟
00)構(gòu)建NarLog字幕語言源文件,其中所述Narlog字幕語言源文件 的每一行包括屬性名和屬性值;
10 )對Narlog字幕語言源文件的每一行進(jìn)行語法分析,識(shí)別所述行的 屬性類別;
20)對于所述屬性類別是顯示屬性,根據(jù)當(dāng)前文境下的顯示屬性對當(dāng) 前文境下的動(dòng)畫屬性進(jìn)行語義計(jì)算生成腳本子例程,刪除當(dāng)前文境下的動(dòng) 畫屬性,用所述顯示屬性更新所述文境;
30)對于所述屬性類別是動(dòng)畫屬性,將所述動(dòng)畫屬性添加到當(dāng)前文境;40)利用Maya腳本編輯器執(zhí)行所生成的子例程,渲染生成所述字幕。
其中,所述步驟00)后還包括步驟01)導(dǎo)入字典文件,其中所述字 典文件包括所述顯示屬性和/或動(dòng)畫屬性的多種語言描述;
所述步驟30)后還包括步驟31)根據(jù)所述字典文件,將所述顯示屬 性和/或所述動(dòng)畫屬性翻譯為不同于當(dāng)前的另一種語言描述。
其中,所述步驟30)后還包括步驟32)對所述子例程進(jìn)行規(guī)范化顯示。
其中,所述規(guī)范化顯示包括添加格式化符號。
其中,所述格式化符號包括制表符和分隔符。
其中,所述Narlog字幕語言源文件的每一行還包括動(dòng)畫名。
其中,所述子例程用于控制字幕的材質(zhì)、字幕的特效、字幕的字體、
字幕的行樣式、字幕的面板、字幕的片尾或攝像機(jī)的動(dòng)畫效果。
本發(fā)明的技術(shù)效果在于,能夠解決手工制作動(dòng)畫耗費(fèi)較多人力和財(cái)力
的問題。本發(fā)明通過Narlog字幕語言設(shè)置動(dòng)畫片頭和片尾的字幕,能夠自
動(dòng)生成動(dòng)畫片頭或片尾字幕,且通過預(yù)先設(shè)定的動(dòng)畫字幕描述,可以產(chǎn)生
驚恐類、輕松類或莊嚴(yán)類的動(dòng)畫效果。
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的動(dòng)畫片頭和片尾字幕生成流程圖; 圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的字幕的示意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖 及實(shí)施例,對本發(fā)明的動(dòng)畫片頭和片尾字幕生成的方法進(jìn)行進(jìn)一步詳細(xì)說 明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限 定本發(fā)明。
現(xiàn)有技術(shù)中存在的問題,本質(zhì)在于現(xiàn)有技術(shù)很大程度上依賴于手工制 作完成,針對特定的動(dòng)畫內(nèi)容,編輯人員從選材到字幕制作完成需要較長 的周期?;诖?,本發(fā)明在總結(jié)大量的電影電視字幕的基礎(chǔ)上,提供了一 種動(dòng)畫片頭和片尾字幕自動(dòng)生成的方法,旨在通過預(yù)先設(shè)定的動(dòng)畫字幕描 述,自動(dòng)生成動(dòng)畫腳本,乂人而產(chǎn)生動(dòng)畫效果。本發(fā)明基于Maya軟件實(shí)現(xiàn)虛擬角色的口形生成和復(fù)制。Maya軟件是 三維動(dòng)畫軟件的后起之秀,深受業(yè)界歡迎和鐘愛。Maya集成了最先進(jìn)的 動(dòng)畫及數(shù)字效果技術(shù),它不僅包括一般三維和視覺效果制作的功能,而且 還結(jié)合了最先進(jìn)的建才莫和運(yùn)動(dòng)匹配技術(shù)。MEL是Maya Embedded Language(Maya內(nèi)置語言)的縮寫,是一種強(qiáng)大的命令和腳本語言,通過 MEL可直接控制Maya的特征、進(jìn)程和工作流程。
為自動(dòng)生成動(dòng)畫片頭和片尾,本發(fā)明開發(fā)了一種Narlog字幕語言,并 自動(dòng)的將Narlog字幕語言翻譯為Maya可以執(zhí)-f亍的MEL腳本,執(zhí)行MEL 腳本即可在Maya中得到字幕動(dòng)畫,渲染輸出即可得到最終的字幕視頻了 。 主要步驟為首先輸入NarLog語言源文件;然后將入NarLog語言源文件 讀入到MEL接口函數(shù)中,輸出語義等價(jià)的MEL腳本,直接在Maya環(huán)境 下運(yùn)行該MEL腳本。
根據(jù)本發(fā)明的實(shí)施例,可以實(shí)現(xiàn)常見的淡入淡出、對齊、字體縮;^文、 滑動(dòng)、透視、字體輝光、色彩變換等動(dòng)畫效果。
為具體說明本發(fā)明的動(dòng)畫片頭和片尾字幕自動(dòng)生成的方法,首先對根 據(jù)本發(fā)明 一個(gè)具體實(shí)施例的Narlog字幕語言進(jìn)行說明。
NarLog字幕語言源文件是由"顯示屬性"和"動(dòng)畫屬性"關(guān)鍵字所引 領(lǐng)的"行"組成的,每一行包括三元?jiǎng)赢嬅?、屬性名和屬性值?顯示 屬性"和"動(dòng)畫屬性,,為保留字,"顯示屬性,,表達(dá)顯示時(shí)的樣式,"動(dòng)畫 屬性"表達(dá)要顯示的內(nèi)容。下面將詳細(xì)描述Narlog字幕語言中"顯示屬性" 行的文法
顯示屬性(<動(dòng)畫名>,語言, <自然數(shù)>), 其表示NarLog語言源文件用何種:^吾言書寫;
|顯示屬性(<動(dòng)畫名〉,內(nèi).容分類, <片頭|片尾>), 其表示NarLog語言源文件描述的是片頭還是片尾;
|顯示屬性(<動(dòng)畫名>,屬性可見, <是|否>), 其表示"屬性"是否要在屏幕上顯示出來;
|顯示屬性(<動(dòng)畫名>,屬性字體, <華文中宋|華文細(xì)黑|...);
|顯示屬性(<動(dòng)畫名>,屬性顏色, <紅色|橙色|黃色|綠色|青色|藍(lán)色| 紫色l黑色);
|顯示屬性(<動(dòng)畫名>,屬性字號, <自然數(shù)>); |顯示屬性(<動(dòng)畫名>,屬性加粗, <是|否>);|顯示屬性(<動(dòng)畫名>,屬性斜體, <是|否>);
|顯示屬性(<動(dòng)畫名>,屬性水平字距, <浮點(diǎn)數(shù)>), 在順序排列方式下,屬性和第一屬性值顯示在一行上,兩者之間要有
個(gè)空擋,"屬性水平字距"即用來表示這個(gè)空檔的大小; |顯示屬性(<動(dòng)畫名〉,行間距, <浮點(diǎn)數(shù)>),
"行間距,,表示行與行之間固有的間隔大小,主要用于有多個(gè)屬性值 分行顯示時(shí);
|顯示屬性(<動(dòng)畫名>,屬性垂直字距, <浮點(diǎn)數(shù)>), 在上下,左齊,右齊排列方式下,屬性和第一屬性值分行顯示,"屬 性垂直字距"用來表示兩種之間間隔的大?。?br>
|顯示屬性(<動(dòng)畫名>,屬性排列方式, <順序|上下|左齊|右齊>), 順序?qū)傩院偷谝粚傩灾翟谕恍酗@示,其余屬性值和第一屬性值左 對齊,并都分4于顯示,
上下屬性和第一屬性值分行顯示,屬性和所有屬性值都居中對齊; 左齊屬性和第一屬性值分行顯示,屬性和所有屬性值都居左對齊; 右齊屬性和第一屬性值分行顯示,屬性和所有屬性值都居右對齊;
|顯示屬性(<動(dòng)畫名>,屬性出現(xiàn)方式, <合顯|分顯>), 合顯多個(gè)"動(dòng)畫屬性,,表達(dá)的內(nèi)容顯示在一個(gè)屏幕里, 分顯每個(gè)"動(dòng)畫屬性,,表大的內(nèi)容單獨(dú)顯示在一個(gè)屏幕里;
|顯示屬性(<動(dòng)畫名>,淡入淡出速度, <快|慢|一般>), 表示文字在顯示時(shí)由淡入到淡出速度的快慢;
|顯示屬性(<動(dòng)畫名>,上拉速度, <快|慢|一般>), 片尾的演職員表是向上拉動(dòng)的,"上拉速度"表示上拉速度的快慢;
|顯示屬性(<動(dòng)畫名>,片頭文字特效, <發(fā)光|閃爍|放大|收縮1放大閃 爍|收縮閃爍>),
表示文字在顯示時(shí)的特殊動(dòng)態(tài)效果;
|顯示屬性(<動(dòng)畫名>,片尾文字特效, <內(nèi)凸|外凸>), 片尾的演職員表是多個(gè)"角色 姓名"行組成的,"角色"形成一 列,"姓名"形成一列,"片尾文字特效"表示這兩列在透視排列時(shí)的效果;
|顯示屬性(<動(dòng)畫名>,屬性值字體,黑體);
|顯示屬性(<動(dòng)畫名>,屬性值顏色,黑色);
|顯示屬性(<動(dòng)畫名>,屬性值加粗, <是|否>);|顯示屬性(<動(dòng)畫名>,屬性值斜體, <是|否>); |顯示屬性(<動(dòng)畫名>,屬性值字號, <自然數(shù)>); |顯示屬性(<動(dòng)畫名>,屬性值水平字距, <浮點(diǎn)數(shù)>); |顯示屬性(<動(dòng)畫名>,屬性值垂直字距, <浮點(diǎn)數(shù)>); |顯示屬性(<動(dòng)畫名>,幀計(jì)數(shù), <自然數(shù)>), 顯示時(shí)的一屏是由多個(gè)幀組成的,"幀計(jì)數(shù)"表示多少幀組成了一屏; |顯示屬性(<動(dòng)畫名>,面板水平, <居左|左黃金分割|居中|右黃金分 割|居右>),
顯示于一屏內(nèi)的所有內(nèi)容的凸包形成一個(gè)面板,"面板水平,,描述這 個(gè)面板在水平方向上位于屏幕的什么位置;
|顯示屬性(<動(dòng)畫名>,面板垂直, <居上|上黃金分割|居中|下黃金分 割|居下>),
顯示于一屏內(nèi)的所有內(nèi)容的凸包形成一個(gè)面板,"面板垂直"描述這 個(gè)面板在垂直方向上位于屏幕的什么位置。
下面將詳細(xì)描述Narlog字幕語言中"動(dòng)畫屬性,,行的文法 |動(dòng)畫屬性(<動(dòng)畫名>,片名, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,原著, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,導(dǎo)演, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,情節(jié)設(shè)計(jì)師, <字符串>);
|動(dòng)畫屬性(<動(dòng)畫名>,場景設(shè)計(jì)師, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,攝影師, <字符串>);
|動(dòng)畫屬性(<動(dòng)畫名>,燈光設(shè)計(jì)師, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,角色特寫造型師, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,角色建模師, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,角色動(dòng)作設(shè)計(jì)師, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,服裝師, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,音樂設(shè)計(jì)師, <字符串>);
|動(dòng)畫屬性(<動(dòng)畫名>,獻(xiàn)給, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,創(chuàng)作單位, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,創(chuàng)作時(shí)間, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,發(fā)行單位, <字符串>); |動(dòng)畫屬性(<動(dòng)畫名>,版權(quán)所有, <字符串>);|動(dòng)畫屬性(<動(dòng)畫名>,分級, <兒童|普通|成人>); |動(dòng)畫屬性(<動(dòng)畫名>,配音,(<主體>, <字符串>)); |動(dòng)畫屬性(<動(dòng)畫名>,劇終, <字符串〉)。 下面結(jié)合例子對上述的NarLog字幕語言進(jìn)行描述 如顯示屬性(東郭先生和狼,淡入淡出速度,慢)表示的是動(dòng)畫片"東 郭先生和狼",此刻的動(dòng)畫屬性在顯示時(shí)由淡入到淡出,速度是"慢"。
如動(dòng)畫屬性(東郭先生和狼,導(dǎo)演,許秉鐸)表示的是動(dòng)畫片"東郭 先生和狼",此刻要顯示的內(nèi)容是"導(dǎo)演許秉鐸"。"動(dòng)畫屬性,,中確定的 要顯示的內(nèi)容要根據(jù)此時(shí)的"顯示屬性,,來設(shè)置在屏幕上顯示,比如粗體, 紅色等。
上述是對NarLog字幕語言的文法的詳細(xì)說明,本領(lǐng)域普通技術(shù)人員 可以理解,上述NarLog字幕語言的每一行中動(dòng)畫名這一元是可選的。而 且上述的各個(gè)屬性行可以不是同時(shí)都出現(xiàn)在一個(gè)具體實(shí)施例中,即,在具 體實(shí)施例中,可以根據(jù)需要選擇相應(yīng)的屬性行;而且NarLog字幕語言也 可用除中文以外的其它語言書寫。
如上所述NarLog語言源文件可由多種語言書寫。為支持多語言功能, 根據(jù)本發(fā)明的優(yōu)選實(shí)施例,本發(fā)明還提供一種多語言字典,其中包括對顯 示屬性和/或動(dòng)畫屬性的多種語言描述。此處,僅以中英文字典進(jìn)行解釋說 明,本領(lǐng)域普通^支術(shù)人員可以理解其它語言同樣可加入多語言字典中。另 外,字典條目可以才艮據(jù)NarLog語言描述能力進(jìn)行擴(kuò)充。
下面是該字典的部分條目,用:隔開,其中在::后面的部分是英文,: 前面的部分是對應(yīng)的中文
NKI動(dòng)畫本體.NKI敘事智能與動(dòng)畫藝術(shù)研究組出 品NKIAnimationOntology. An NKI Animation Picture
NKI動(dòng)畫本體.版權(quán)所有:NKIAnimationOntology.Copyright NKI動(dòng)畫本體.場景i殳計(jì)師:NKIAnimationOntology.Scene NKI動(dòng)畫本體4乍單4立:NKIAnimationOntology.Producer NKI動(dòng)畫本體.創(chuàng)作時(shí)間:NKIAnimationOntology.Date NKI動(dòng)畫本體.導(dǎo);寅:NKIAnimationOntology.Director NKI動(dòng)畫本體.燈光i殳計(jì)師:NKIAnimationOntology.Juicer NKI動(dòng)畫本體.動(dòng)畫屬性NKIAnimationOntology.animation attr NKI動(dòng)畫本體.發(fā)行單位:NKIAnimationOntology.PublisherNKI動(dòng)畫本體.分級::NKIAnimationOntology.Rank
NKI動(dòng)畫本體.分顯NKIAnimationOntology.separate frame
NKI動(dòng)畫本體.月l裝師:NKIAnimationOntology.Costume
NKI動(dòng)畫本體.合顯NKIAnimationOntology.merged frame
NKI動(dòng)畫本體.監(jiān)制NKIAnimationOntology.Supervisor
NKI動(dòng)畫本體.角色動(dòng)作i殳計(jì)師:NKIAnimationOntology.Action
NKI動(dòng)畫本體.角色建才莫師:NKIAnimationOntology.Model Creator
NKI動(dòng)畫本體.角色特寫造型師:NKIAnimationOntology.Close-Up
NKI動(dòng)畫本體.居中NKIAnimationOntology.centered
NKI動(dòng)畫本體.劇終::NKIAnimationOntology.End
NKI動(dòng)畫本體.酉己音:NKIAnimationOntology.Dubbing
NKI動(dòng)畫本體.片名:NKIAnimationOntology.Title
NKI動(dòng)畫本體.普通級::NKIAnimationOntology.General
NKI動(dòng)畫本體.十青節(jié)i殳i十師NKIAnimationOntology.Screenplay
NKI動(dòng)畫本體.上下NKIAnimationOntology,up down
NKI動(dòng)畫本體.才聶景》師NKIAnimationOntology.Cinematographer
NKI動(dòng)畫本體.是:NKIAnimationOntology.yes
NKI動(dòng)畫本體.屬性出現(xiàn)方式:NKIAnimationOntology.attr frame
NKI動(dòng)畫本體.屬性可見:NKIAnimationOntology.attr visibility
NKI動(dòng)畫本體.屬性才非列方式:NKIAnimationOntology.attr arrange
NKI動(dòng)畫本體.屬'IK立置:NKIAnimationOntology,attr position
NKI動(dòng)畫本體.屬性顏色:NKIAnimationOntology.attr color
NKI動(dòng)畫本體.屬性值力口粗::NKIAnimationOntology.attrv bold
NKI動(dòng)畫本體.屬性^f直顏色:NKIAnimationOntology.attrv color
NKI動(dòng)畫本體.屬寸生Y直字號:NKIAnimationOntology.attrv fontsize
NKI動(dòng)畫本體.屬性值字體::NKIAnimationOntology.attrv font
NKI動(dòng)畫本體.屬性值H字距:NKIAnimationOntology.attv h margin
NKI動(dòng)畫本體.屬性值V字距:NKIAnimationOntology.attv v margin
NKI動(dòng)畫本體.屬性字號:NKIAnimationOntology.attr fontsize
NKI動(dòng)畫本體.屬性字體::NKIAnimationOntology.attr font
NKI動(dòng)畫本體.屬性H字距:NKIAnimationOntology.attr h margin
NKI動(dòng)畫本體.屬'i"生V字3巨:NKIAnimationOntology.attr v margin
9NKI動(dòng)畫本體.順序NKIAnimationOntology.sequential NKI動(dòng)畫本體.獻(xiàn)給::NKIAnimationOntology.To NKI動(dòng)畫本體.顯示屬'l"生NKIAnimationOntology.display attr NKI動(dòng)畫本體.音樂i殳計(jì)師:NKIAnimationOntology.Music NKI動(dòng)畫本體.右齊NKlAnimationOntology.right aligned NKI動(dòng)畫本體.語言NKIAnimationOntology丄anguage NKI動(dòng)畫本體.原著:NKIAnimationOntology.Writer NKI動(dòng)畫本體.中文NKIAnimationOntology.Chinese NKI動(dòng)畫本體.左齊NKIAnimationOntology.left aligned 〃顏色
NKI動(dòng)畫本體.紅色:NKIAnimationOntology.red NKI動(dòng)畫本體.橙色NKIAnimationOntology.orange NKI動(dòng)畫本體.黃色NKIAnimationOntology.yellow NKI動(dòng)畫本體.綠色NKIAnimationOntology.green NKI動(dòng)畫本體.藍(lán)色:NKIAnimationOntology.blue NKI動(dòng)畫本體.紫色:NKIAnimationOntology.pink NKI動(dòng)畫本體.黑色:NKIAnimationOntology.black 〃字體
NKI動(dòng)畫本體.華文細(xì)黑:NKIAnimationOntology.xihei NKI動(dòng)畫本體.華文中宋:NKIAnimationOntology.zhongsong
不同的影片,字幕風(fēng)格也有所不同。常見的字幕風(fēng)格主要有三類驚 險(xiǎn)恐怖類、輕松類、和莊嚴(yán)類。
研究總結(jié)大量的電影電視字幕后,發(fā)現(xiàn)這三類字幕風(fēng)格有如下特點(diǎn) (l)驚險(xiǎn)恐怖類文字快速地閃現(xiàn)出來,并且有閃爍光的感覺,或 是文字緩慢淡入、緩慢放大、緩慢淡出,或是伴有文字收縮。 (2 )輕松類多是緩慢地淡入淡出。
(3)莊嚴(yán)類多是基本的淡入淡出,淡入淡出的速度要掌握好,要 顯得沉穩(wěn),但又不能太拖奮。
在具體實(shí)施例中,可以根據(jù)上述不同風(fēng)格的字幕特點(diǎn),選擇不同的屬 性行。
為了實(shí)現(xiàn)上面的幾類字幕風(fēng)格,本發(fā)明提供程序接口,以使NarLog 字幕語言可采用該程序接口作為載體導(dǎo)入Maya中。具體為首先將這些程序接口導(dǎo)入Maya,再將NarLog字幕語言中的具體內(nèi)容作為程序接口的實(shí) 參生成MEL腳本例程,運(yùn)行該MEL腳本例程則可生成需要的動(dòng)畫效果。 MEL程序接口包括但是不限于
proc TColor(float $R,float $G, float $B,string $SGName,string $speed—fade,string $flag):本接口是字幕的材質(zhì)接口。其中R、 G、 B分別 代表顏色的三個(gè)分量,SGName是渲染節(jié)點(diǎn)的名稱,speed—fade是設(shè)置字 幕的滾動(dòng)速度,flag表示字幕的類型,如是否是片頭、片尾等。該接口控 制字體的透明變化、色彩、輝光等材質(zhì)效果,以及淡入淡出。由于字體的 淡入淡出是通過字體材質(zhì)的透明度變化實(shí)現(xiàn)的,所以除了字體的色彩、輝 光等被TColor()控制外,字體的淡入淡出也在TColor()中控制。
proc TFX(string $speed_fade, string $FX,string $flag):本接口是字幕的 特效接口。其中speed—fade表示字幕的滾動(dòng)速度,F(xiàn)X表示文字的特效, 如發(fā)光、放大等,flag表示字幕的類型,如是否是片頭、片尾等。該接口 的功能是控制字體的放大、縮小、燈光等效果。
proc TText(string $Ttext,string $Ttype,string $Tsize,int $TBold, int $TIncline, float $Tlinegap,string $Tcolor):該接口是字幕的字體接口,用 于控制文字、字體、間距等。其中的Ttext表示顯示的文字的內(nèi)容,Ttype 表示字體,如黑體、楷體等,Tsize表示文字的大小,TBold表示是否是粗 體,TIncline表示文字是否是斜體,Tlinegap表示行間距,Tcolor表示設(shè) 置的字體色彩。
proc TStyle( int $Tstyle, float $h—gap,float $v—gap,int $starts[], int $ends[]):該接口是字幕的行樣式接口 ,用于控制字幕行與行之間的樣式, 例如上下兩行居中對齊、左對齊等。其中Tstyle表示文字對齊的方式,如 左對齊等,h_gap表示字與字之間的水平間距,v—gap表示字與字之間的 豎直間距,starts[]表示多行顯示的開始的文字行,ends[]表示多行顯示的結(jié) 束的文字行。
proc TLayout( int $TTstart, int $TTend, int $TmodeX, int $TmodeY):該接口是字幕的面板接口,用于控制字幕在屏幕上的位置。例 如居于屏幕中間或上下黃金分割線處。其中TTstart表示面板顯示的開始 時(shí)間,TTend表示面板顯示的結(jié)束時(shí)間,TmodeX表示文字行相對于橫軸 的顯示模式,TmodeY表示文字行相對于縱軸的顯示模式。
proc TEnd(int $END—starts[], int$END—ends[],float $H—gap,float$V_gap,string $end—FX):該接口是字幕的片尾接口。控制片尾的效果,字 體透視、旋轉(zhuǎn)等效果。其中END—starts []表示多行顯示的開始的文字行, END—ends []表示多行顯示的結(jié)束的文字行,H_gap表示字與字之間的水平 間距,V一gap表示字與字之間的豎直間距,end—FX表示文字的特效。
proc TCamera(string $speed,float $r,float $g, float $b):該4矣口是攝《象機(jī) 接口,用于控制攝像機(jī)動(dòng)畫效果。尤其對于片尾的字幕滾動(dòng)效果,這里是 通過移動(dòng)攝像機(jī)來實(shí)現(xiàn)的。其中speed表示攝像機(jī)的移動(dòng)速度,r、 g、 b 分別表示攝像機(jī)的背景的三個(gè)顏色分量。
本領(lǐng)域普通技術(shù)人員可以理解通過對每種情況下的各個(gè)參數(shù)賦值即 可實(shí)現(xiàn)上述程序4妻口 。例如在proc TFX(string $speed—fade, string $FX,string $flag)中控制淡入淡出速度的具體代碼如下所示 〃控制淡入淡出速度 switch ($speed—fade){
case "慢"
int $Time =160;
int$Speed = $Time/3;
kit $Delay = $Time/10; 〃一行字的淡出與另 一行字的淡入之間
的間隔
break;
case "快"
int $Time =75;
int $ Speed = $Time/3;
intSDelay-STime/10;〃一行字的淡出與另一4亍字的淡入之間
的間隔
breakj
case "—般"
int $Time =120;
int $ Speed = $Time/3;
^11$06^乂 = $111116/10;〃一行字的淡出與另一行字的淡入之間
的間隔
break; default:int $Time =120;
int $ Speed = $Time/3;
int $Delay = $Time/10; 〃一行字的淡出與另 一行字的淡入之間
的間隔
break;
} 〃end switch $speed—fade
根據(jù)本發(fā)明的具體實(shí)施例,下面介紹本系統(tǒng)中可能涉及到的數(shù)據(jù)結(jié) 構(gòu),在Maya中Narlog字幕語言采用下述數(shù)據(jù)結(jié)構(gòu)的形式表達(dá)。在實(shí)施例 中,"顯示屬性"行和"動(dòng)畫屬性,,行交織在一起。多個(gè)"顯示屬性,,行 整體上形成了一個(gè)顯示文境,這個(gè)文境用Context結(jié)構(gòu)體來表示,Context 的每個(gè)域記錄著當(dāng)前對應(yīng)的"顯示屬性,,的值。每個(gè)"動(dòng)畫屬性,,行表示 一個(gè)要顯示的內(nèi)容,并且根據(jù)最近作用域原則受且僅受一個(gè)Context的控 制。Context結(jié)構(gòu)體中包含一個(gè)Content結(jié)構(gòu)體鏈表用于表示受這個(gè)Context 結(jié)構(gòu)體控制的"動(dòng)畫屬性"全體。
要進(jìn)行字幕的自動(dòng)生成,需要經(jīng)過語法分析、屬性處理、語義計(jì)算、 字典對照翻譯、代碼生成與優(yōu)化、導(dǎo)入例程與渲染生成等步驟。根據(jù)本發(fā) 明的一個(gè)具體實(shí)施例,如圖l的流程圖所示,字幕的自動(dòng)生成的主要步驟 如下
步驟1:根據(jù)如上描述的格式構(gòu)建NarLog字幕語言源文件;
步驟2:初始化字典文件。如前所述,字典文件中每個(gè)條目格式為中 文::英文,其中中文為英文的對應(yīng)翻譯,即在導(dǎo)入每個(gè)英文對應(yīng)的中文關(guān) 系,以用來做字幕的翻譯。
步驟3:然后依次讀入NarLog字幕語言源文件的一行,進(jìn)行語法分析, 分析得出包含動(dòng)畫名、屬性名和屬性值的三元組結(jié)構(gòu)體Content;根據(jù)該 行的屬性類別,判斷該行描述的是否為顯示屬性,如果是,則執(zhí)行步驟4, 如果不是則執(zhí)行步驟7。
步驟4:如果該行的屬性是"顯示屬性"則判斷Context結(jié)構(gòu)體的 Content結(jié)構(gòu)體鏈表是否為空,如果Context結(jié)構(gòu)體的Content結(jié)構(gòu)體鏈表 不為空,則執(zhí)行步驟5,如果為空,則執(zhí)行步驟6。
步驟5:在Context結(jié)構(gòu)體的當(dāng)前值之下,對Content結(jié)構(gòu)體鏈表進(jìn)行 語義計(jì)算并生成依賴于所提供接口的子例程。具體而言,從Context結(jié)構(gòu) 體的域中獲得"顯示屬性"的值,經(jīng)過語義計(jì)算將該值填入各個(gè)程序接口的相應(yīng)入口參數(shù)中,生成關(guān)于當(dāng)前文境下的動(dòng)畫屬性的腳本子例程;刪 除該Content結(jié)構(gòu)體鏈表,然后執(zhí)行步驟6。
步驟6:用步驟3的語法分析階段返回的Content結(jié)構(gòu)體更新Context 結(jié)構(gòu)體的相應(yīng)域以表示"顯示屬性"的更改。
步驟7:判斷該行的屬性是否為"動(dòng)畫屬性"。
步驟8:如果該行的屬性是"動(dòng)畫屬性",則將步驟3的語法分析階段 返回的Content結(jié)構(gòu)體添加到Context結(jié)構(gòu)體的Content鏈表上。
步驟9:如果該行的屬性不是"動(dòng)畫屬性",則顯示出錯(cuò)報(bào)告,并結(jié)束。 例如,顯示屬性(東郭先生和狼,屬性值顏色,黃色),顯示屬性(東郭 先生和狼,屬性值字號,6)等內(nèi)容,為下面緊接著的動(dòng)畫屬性描述了文字 在屏幕上顯示的具體場景,即字體是黃色,字號為6,因此對于接下來的 動(dòng)畫屬性(東郭先生和狼,原著,[明]馬中錫)轉(zhuǎn)化為TText("原著","華文新 魏","5",0,0,0.2,"ColorYellow",0,6)和TText("[明]馬中錫","華文新魏 ","6",0,0,0.2," ColorYellow ",1,6)。本實(shí)例最終在Maya中渲染出來的效果如 圖2所示。
步驟10:為了處理多語言顯示的問題,對顯示屬性和動(dòng)畫屬性進(jìn)行基 于字典的對照翻譯,將子例程中的英語短語轉(zhuǎn)換成相對應(yīng)的中文短語。
步驟ll:為了顯示的規(guī)范性,對子例程進(jìn)行規(guī)范化顯示,如添加制表 符、分隔符等格式化符號。
步驟12:判斷是否已經(jīng)處理到NarLog字幕語言源文件的最后一行, 如果不是,則轉(zhuǎn)到步驟3;如果是則執(zhí)行步驟13。
步驟13:利用Maya的腳本編輯器執(zhí)行所生成的子例程,進(jìn)行渲染則 可以生成本發(fā)明需要的字幕效果。
本領(lǐng)域普通技術(shù)人員可以理解根據(jù)需要可以選擇是否執(zhí)行步驟2、步 驟10或步驟11;而且對于顯示屬性和動(dòng)畫屬性的判斷處理,在該實(shí)施例 中是首先判斷是否為顯示屬性再進(jìn)行處理,當(dāng)然也可以首先判斷動(dòng)畫屬性 再進(jìn)行相應(yīng)的處理。
根據(jù)如上描述,能夠自動(dòng)生成動(dòng)畫片頭或片尾字幕,且通過預(yù)先設(shè)定 的動(dòng)畫字幕描述,可以產(chǎn)生驚恐類、輕松類或莊嚴(yán)類的動(dòng)畫效果。
1權(quán)利要求
1. 一種動(dòng)畫片頭和片尾字幕的生成方法,包括下列步驟00)構(gòu)建NarLog字幕語言源文件,其中所述Narlog字幕語言源文件的每一行包括屬性名和屬性值;10)對Narlog字幕語言源文件的每一行進(jìn)行語法分析,識(shí)別所述行的屬性類別;20)對于所述屬性類別是顯示屬性,根據(jù)當(dāng)前文境下的顯示屬性對當(dāng)前文境下的動(dòng)畫屬性進(jìn)行語義計(jì)算生成腳本子例程,刪除當(dāng)前文境下的動(dòng)畫屬性,用所述顯示屬性更新所述文境;30)對于所述屬性類別是動(dòng)畫屬性,將所述動(dòng)畫屬性添加到當(dāng)前文境;40)利用Maya腳本編輯器執(zhí)行所生成的子例程,渲染生成所述字幕。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟00)后還包括步驟01)導(dǎo)入字典文件,其中所述字典文件 包括所述顯示屬性和/或動(dòng)畫屬性的多種語言描述;所述步驟30)后還包括步驟31)根據(jù)所述字典文件,將所述顯示屬 性和/或所述動(dòng)畫屬性翻譯為不同于當(dāng)前的另 一種語言描述。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于, 所述步驟30)后還包括步驟32)對所述子例程進(jìn)行規(guī)范化顯示。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述規(guī)范化顯示包括添 加格式化符號。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述格式化符號包括制 表符和分隔符。
6. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述Narlog字幕 語言源文件的每一行還包括動(dòng)畫名。
7. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述子例程用于控 制字幕的材質(zhì)、字幕的特效、字幕的字體、字幕的行樣式、字幕的面板、 字幕的片尾或攝像機(jī)的動(dòng)畫效果。
全文摘要
本發(fā)明提供一種動(dòng)畫片頭和片尾字幕的生成方法,包括下列步驟00)構(gòu)建NarLog字幕語言源文件,其中每一行包括屬性名和屬性值;10)對Narlog字幕語言源文件的每一行進(jìn)行語法分析,識(shí)別該行的屬性類別;20)如果屬性類別是顯示屬性,根據(jù)當(dāng)前文境下的顯示屬性對當(dāng)前文境下的動(dòng)畫屬性進(jìn)行語義計(jì)算生成腳本子例程,刪除當(dāng)前文境下的動(dòng)畫屬性,用該顯示屬性更新該文境;30)如果該屬性類別是動(dòng)畫屬性,將該動(dòng)畫屬性添加到當(dāng)前文境;40)利用Maya腳本編輯器執(zhí)行所生成的子例程,渲染生成字幕。根據(jù)本發(fā)明的方法可以解決手工制作動(dòng)畫耗費(fèi)較多人力和財(cái)力的問題,能夠自動(dòng)生成動(dòng)畫片頭或片尾字幕。
文檔編號G06T15/70GK101441778SQ20081024044
公開日2009年5月27日 申請日期2008年12月19日 優(yōu)先權(quán)日2008年12月19日
發(fā)明者曹存根, 耀 朱, 李志豪, 齊保元 申請人:中國科學(xué)院計(jì)算技術(shù)研究所