一種三維角色循環(huán)動畫的自動累積方法
【技術領域】
[0001]本發(fā)明屬于三維動畫設計技術領域,具體涉及一種三維角色循環(huán)動畫的自動累積方法。
【背景技術】
[0002]三維動畫技術,是近年來隨著計算機軟硬件技術的發(fā)展而產生的一種新興技術,可以方便快捷地制作出滿足導演需求的三維動畫或影視特效鏡頭。
[0003]三維動畫片的制作原理一般為:首先,利用三維軟件(比如3ds Max、Maya或Houdini)在計算機中建立一個虛擬的世界;然后,在這個虛擬的三維世界中添加場景和三維卡通角色等三維模型;最后,設定模型的動畫曲線、虛擬攝影機的運動軌跡和其它動畫參數,渲染得到角色動畫。
[0004]由于三維動畫技術具備可精確模擬真實景象、幾乎無創(chuàng)作限制等特點,目前被廣泛應用于娛樂、教育、軍事等諸多領域。
[0005]針對娛樂領域的應用,通常需要根據設計師提供的卡通人物造型,制作相應的三維動畫角色和骨骼綁定系統(tǒng),并通過在不同的時間點設置不同的關鍵幀數值,從而使之具備符合角色性格、年齡或其他特征的逼真動作。
[0006]當前動畫制作,常用技術主要分為關鍵幀技術,基于真人表演的動作捕捉技術,以及物理模擬技術三類。后兩類技術具有自動化操作、快速逼真的特點,無需動畫師設置關鍵幀,節(jié)省了大量人力,但是對于卡通角色非物理真實的夸張動作無能為力。在制作卡通角色動畫時,為節(jié)省時間,動畫師往往制作出一個周期內的動作,然后循環(huán)播放,構成一段連續(xù)的動畫,比如角色的行走、跑動,都可以分解為兩腳各邁出一步的動作的周期反復。
[0007]但是,僅是循環(huán)播放,會使角色在原地踏步。另外,為了使角色的行走、跑動等動畫看起來不像機械運動,需要在循環(huán)周期內加入更多的細節(jié)變化,使角色的動作在整個運動過程中不是完全機械的重復前一個周期的動作。當前,三維動畫制作工具并沒有提供完善的解決方案,需要動畫師手動更新角色的位置以避免原地不動,并根據角色的運動路徑,對角色身上各部位的運動進行相應的手工修正,比如沿曲線運動時兩腳的位移和角度變化是略有差異的。本發(fā)明的目的就是針對以上制作中常見問題,提供一種自動化的快速解決方案。
【發(fā)明內容】
[0008]有鑒于此,本發(fā)明的目的是提供一種三維角色循環(huán)動畫的自動累積方法,該方法能夠快速生成角色沿平面上路徑運動的動畫。
[0009]本發(fā)明的技術方案如下:
[0010]一種三維角色循環(huán)動畫的自動累積方法,具體步驟為:
[0011]步驟一,針對已經完成骨骼綁定的三維角色模型,將角色腹部中心點R作為三維角色模型的基準點,以角色腹部中心點作為坐標原點,計算角色各部位對應的控制器Ck的相對位置Qk,k = O, I, 2……K-1,K為控制器的總數,所述相對位置Qk為在以角色腹部中心點作為坐標原點的坐標系下計算;沿角色移動路徑S進行等間距采樣,計算出各采樣點處路徑曲線的法線Nn和切線T η;
[0012]步驟二,根據所述Nn和切線Tn,計算連續(xù)兩個采樣點之間的旋轉變換矩陣Mn;基于所述循環(huán)變換矩陣MjP各部位對應的控制器Ck的相對位置Qk,計算三維角色各部位對應的控制器Ck的步幅變換因子Step n;
[0013]步驟三,根據所述步幅變換因子Stepn,計算出角色各部位對應的控制器Ck在沿移動路徑S運動過程中考慮到步幅累積后的位移和旋轉動畫數據。
[0014]進一步地,本發(fā)明所述步驟三的過程為:
[0015]301、計算出角色沿移動路徑S運動t時刻時角色腹部中心點R的相位信息phi和位置信息Pt ;
[0016]302、基于所述相位信息phi和位置信息Pt,根據步幅變換因子Stepn計算三維角色中各部位對應的控制器Ck在t時刻時的位移坐標;
[0017]303、根據所述相位phi,計算三維角色中各部位對應的控制器Ck在t時刻時的旋轉。
[0018]進一步地,本發(fā)明所述步驟303中將各部位劃分為非接觸地面部位和接觸地面的部位;
[0019]計算三維角色中非接觸地面的部位對應的控制器(^在t時刻時的旋轉為:
[0020]設三維角色在t時刻位于采樣點Sni和S M1之間,根據相位phi,對采樣點S π和采樣點Sm+1處的旋轉變換矩陣M , M m+1進行插值,得到t時刻的旋轉變換矩陣M t,利用Mt對控制器(^進行旋轉變換。
[0021]計算三維角色中接觸地面的部位對應的控制器(;2在t時刻時的旋轉為:
[0022]首先,獲得一個循環(huán)動畫周期內,腳掌或腳趾接觸地面的時間Tt,計算出在腳掌或腳趾接觸地面的時間Tt內,三維角色沿移動路徑運動所完成的旋轉變換矩陣M’,計算M’的逆變換矩陣M—1;根據動畫需要設置一個時間范圍T ,,使逆變換矩陣M—1在T ,時間內逐漸變?yōu)閱挝痪仃嘔,獲得I;時間內各時刻的逆變換矩陣M廣;
[0023]然后,分情況計算腳掌或腳趾對應的控制器(;2在t時刻的旋轉變換矩陣M t;
[0024]I)如果t時刻,腳掌或腳趾接觸地面,此時Mt為單位矩陣;
[0025]2)如果t時刻,腳掌或腳趾未接觸地面且上一時刻有接觸,標記當前時刻為T。,按照非接觸地面的部位的Mt計算方式,計算出t時刻的旋轉變換矩陣M temp,此時Mt為Mtemp+M S
[0026]3)如果t時刻,腳掌或腳趾未接觸地面且t時刻在時間范圍I;內,則根據t時刻距離Ttl的時間在Tr內的相對值,獲得t時刻的逆變換矩陣M廣,此時Mt為M 一+Mf1;
[0027]4)當t時刻不屬于前面三種情況時,此時按照非接觸地面的部位的Mt計算方式,計算t時刻的旋轉變化矩陣Mt。
[0028]最后利用Mt對腳掌或腳趾的控制器C ,2進行旋轉變換。
[0029]進一步地,本發(fā)明還包括為循環(huán)動畫中角色上半身的運動添加幅度或相位變化;過程為:
[0030]獲得該循環(huán)動畫中上半身各部位所對應的控制器Ck3的各屬性值V,然后進行AXv+b的線性變換;
[0031]如果V代表的是Ck3的位移,那么A就是動作幅度變換的倍數,b是位移的偏移;如果V代表的是Ck3的旋轉,那么A就是旋轉幅度的倍數,b就是旋轉角度的偏移。
[0032]有益效果:
[0033]1、本發(fā)明僅需動畫師提供一個周期內的循環(huán)動畫,能夠快速、自動生成三維角色的路徑動畫,并避免了滑步現象。
[0034]2、本發(fā)明分為腳掌或腳趾離開地面與接觸地面等多種情況,分別對其進行旋轉動畫,能夠提供循環(huán)動畫中腳步運動的精確細節(jié)。
[0035]3、本發(fā)明可以對構成路徑動畫的各個循環(huán)周期的動畫進行細節(jié)調整,從而使角色的路徑動畫看起來不是機械的重復。
【附圖說明】
[0036]圖1為本發(fā)明三維角色循環(huán)動畫的自動累積方法的流程圖。
【具體實施方式】
[0037]下面結合附圖和具體實例對本發(fā)明進行詳細說明。
[0038]如圖1所示,本發(fā)明一種三維角色循環(huán)動畫的自動累積方法,具體步驟為:
[0039]步驟一,針對已經完成骨骼綁定的三維角色模型,將角色腹部中心點R作為三維角色模型的基準點,以角色腹部中心點作為坐標原點,計算角色各部位對應的控制器Ck的相對位置Qk,k = O, I, 2……Κ_1,Κ為控制器的總數,所述相對位置Qk為在以角色腹部中心點作為坐標原點的坐標系下計算;沿角色移動路徑S進行等間距采樣,計算出各采樣點處路徑曲線的法線Nn和切線T ηο
[0040]S101、在第O幀時,設三維角色位于移動路徑S的起點處,以角色腹部中心位置作為坐標原點R,計算角色各部位對應的控制器的坐標矢量Qk,k = O, I, 2……K-1,K為控制器的總數。
[0041]S102、根據動畫師制作的腳部循環(huán)動畫中的步幅,得到三維角色在一個循環(huán)動畫周期內的位移d,即左右腳各邁一步后的位移;并獲得循環(huán)動畫的周期Tc,Tc即循環(huán)動畫的整體時長。
[0042]S103、設三維角色的移動路徑S的長度為L,則N = L/d為移動路徑上的采樣點數量。在移動路徑S上進行等間距為d的采樣,獲得采樣點sn,其位置為Pn;計算出各采樣點處的切線矢量為Tn以及法線矢量Nn,其中η = 0,1,2……N-1。假設Tn= (a,b,c),那么Nn=(b,-a,0)。這里所有矢量均做了歸一化處理。
[0043]步驟二,根據所述Nn和切線Tn,計算連續(xù)兩個采樣點之間的旋轉變換矩陣Mn;基于所述循環(huán)變換矩陣MjP各部位對應的控制器Ck的相對位置Qk,計算三維角色各部位對應的控制器Ck的步幅變換因子Step no具體步驟如下:
[0044]I)計算出采樣點Sn處切線矢量T n相對于采樣點S n_i處切線矢量T n_i的旋轉變換矩陣Mn。
[0045]2)計算出三維角色各部位對應的控制器Ck在采樣點S ?處相對于采樣點S n_i處的位移 deltaPn= Mn 〃 Q k+(Pn-Plri)。則采樣點 Sn處的步幅變換因子 Step n= |deltaPn|/d。
[0046]步驟三,根據所述步幅變換因子Stepn,計算出角色各部位對應的控制器Ck在沿移動路徑S運動過程中考慮到步幅累積后的位移和旋轉動畫數據。具體步驟如下:
[0047](I)、計算出角色沿移動路徑S運動t時刻時角色腹部中心點R的位置信息Pt和三維角色循環(huán)動畫的相位信息phi。
[0048]設三維角色在t時刻位于采樣點Sn^P Sm+1之間,其中m = Floor