黃婉陽
摘 要:本文介紹了二維角色構件化、hsf簡介及人體動畫自動生成。對人體動畫自動生成的流程進行分析,最后給出了構件化二維人體動畫自動生成的實現方式。
關鍵詞:中職;二維角色構件化;制作
一、二維角色構件化
1.角色構件化分析
建立角色模型是動畫制作的基礎,二維動畫亦是如此。參照人體建模標準H-Anim,將整個實體看作一個分層結構,由一定數量的骨段構成,如手臂、腳、腿等,段與段之間借助關節相連如肘、髖、腳踝、手腕等,并且除腰骨段之外,其它每個連接點都是另外一個連接點的子節點。每個節點都包含豐富的信息,如段的長度、質量、尺寸及關節的運動范圍等。
由動畫的制作流程可以知道,二維動畫畫面本質上就是由多幅二維圖像組合而成的一幅二維圖像。二維人體也是一張二維圖像,結合上面的人體結構分析,可以將一個二維人體構件分成多個類似骨段的元件。這樣只要選擇相應的人體元件序列,然后將元件序列用關節點連接即可將元件重組得到人體構件。只要通過人體對各個元件自由度進行控制,即可得到不同的人體姿態,序列不同人體姿態的連續播放即人體動畫。
2.二維動畫人體結構分析
人體結構復雜,一個完整的人體是由多個部位組成的。參照傳統三維動畫中人體組成方式,一般人體結構是由頭部、軀干、上肢、下肢組成。再進一步細分后頭部由頭和頸部組成,軀干有臀部、腹部、胸部組成,上肢由左右兩邊的手掌、手指、前臂、上臂組成,下肢由左右兩邊的腳踝、腳掌、小腿、大腿組成。由于二維動畫與三維動畫風格的不同,二維動畫對角色的真實感要求較弱,因此可以對二維人體結構進行適當簡化和改變,如將頭和頸部結合,將胸部與腹部結合,將手掌手指合二為一等,簡化后的人體結構包含15部分,分別是頭、軀干、腰、左(右)上臂、左(右)前臂、左(右)手、左腳、左(右)大腿、左(右)小腿、左(右)腳。基于此即可分別建立與之相對應的二維人體元件庫,為個性化人體構件的生成提供條件。
3.二維人體特征點的分布
每個角色都有著高矮胖瘦及服裝款式大小的差別,所以角色定義非常復雜。即便如此,所有角色還是具有共性的,可以尋找一種角色共性描述的語言來進行角色定義。結合項目需求,及角色對象本身的特點,本著在用盡量少的關節表現盡量多動作的原則下,在角色模型上定義了14個特征點,分為8種,分別是頸接點(1)、肩接點(2)、肘接點(2)、手接點(2)、腰接點(1)、髖接點(2)、膝接點(2)、腳接點(2)。由于人體的對稱性,所以除頸接點與腰接點數目為1以外,其它接點數均為2。
二、hsf簡介
ASF與AMC是由卡內基梅隴大學人體運動圖形所提出來的數據格式,其中ASF文件記錄的是人體的骨架信息,AMC文件記錄的人體自由度的變化信息。參照ASF-AMC標準,本文利用兩個文件對二維人體進行控制,其中一個文件記錄人體構件的結構信息,另一個文件記錄人體構件各元件自由度的變化信息,兩者分別命名為hsf文件和hxm文件。本節主要對hsf文件進行介紹,hxm文件將在下節介紹,該文件中主要是記錄了基于特征點的二維人體的結構信息。
1.hsf文件內容
hsf文件主要存儲人體構件的結構信息,即與元件位置相關的各類特征點信息。文件中數據信息的記錄順序為從中間到兩邊,自上而下,先左后右,即首先軀干關節鏈,然后左右上肢關節鏈,左右下肢關節鏈,每個關節鏈內部都是從父骨段到子骨段。在hsf文件中,每個骨段的數據信息占一行。
2.hxm文件
人體動畫主要分為表情動畫和骨骼動畫,人體運動控制屬于骨骼動畫。人體骨架關鍵姿態由各關節位置和旋轉角度唯一確定,只要對人體骨架的姿態進行控制,即可實現人體的運動控制。例如人體步行動作,可以通過控制一個步行周期內人體各關節位置與旋轉角度得到人體步行姿態序列,連續多個周期步行姿態序列即可構成人體步行動畫片段。
3.人體構件自由度分析
三維空間中,人體關節一般會有旋轉和平移兩類自由度,每個自由度的變化空間為一個由X軸、Y軸和Z軸構成的三維立體空間。與三維動畫相比,二維動畫的變化范圍限定在由X軸和Y軸構成的二維空間即平面內,所以二維人體角色的自由度的變化范圍也受到一定限制。參照三維人體自由度的概念,以及人體動畫本身的特點,我們為二維人體關節引入長度和旋轉角度兩個自由度。本文中二維人體構件是由15個元件構成的,每個元件都有長度、旋轉角度二個自由度,一共有30個自由度,比三維動畫中人體角色的200多個自由度要少的多。
4.hxm文件內容
參照ASF-AMC標準,我們使用hxm文件來記錄人體各元件的自由度變化信息。與hsf文件類似,為了增強人體自由度描述信息的適用性,一律采用相對值記錄方式。hxm文件以行為單位,先后記錄人體構件各元件的長度和旋轉角度變化,即先是15個長度變化,后是15個角度變化,共30個數字。長度的變化范圍為0到1,角度的變化為0到360,超過360度的可以用360度除取余求得。hxm中每一行信息都對應個一個人體構件姿態。
三、人體動畫自動生成
二維動畫的基本原理就是序列圖像以一定的幀速率連續播放,讓人產生畫面在動的感覺。在這里二維人體動畫實現方式亦是如此,所以說如何利用動作hxm文件得到人體關鍵姿態圖像序列,是人體動畫自動生成的關鍵。
人體動畫自動生成的流程:人體構件是由15個不同的元件組成的,它們的信息都存儲在與構件相關的hsf文件中。要控制人體構件使其呈現不同的姿態,首先就需要控制這15個元件姿態。每個元件都有長度和旋轉角度兩個自由度,它們會隨著姿態的變化而變化,而hxm文件中就記錄了這些變化。人體動畫生成的第一步就是要依據hxm文件與hsf文件確定到每個元件的姿態,然后依據這些變化后的元件,得到相應姿態的人體構件。元件本質上也是一幅二維圖像,所謂元件的姿態即變化后的二維圖像。
四、本文小結
本文主要是針對基于構件化二維動畫制作技術進行介紹。文中首先對二維角色構件化方法討論,通過對二維角色的人體結構進行分析,將二維人體構件分成15個不同的元件,然后結合ASF-AMC標準,提出了兩種分別用于存儲人體構件結構信息與自由度變化信息的文件即hsf文件與hxm文件,并對文件的內容和格式進行了介紹。接著對人體動畫自動生成的流程進行分析,最后給出了構件化二維人體動畫自動生成的實現方式。
參考文獻:
[1]陸汝鈐,張松懋.從故事到動畫片——全過程計算機輔助動畫自動生成.自動化學報,2002,28(3),321~348
(作者單位:福建省南安職業中專學校)