国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      動畫曲線優(yōu)化方法

      文檔序號:6542321閱讀:220來源:國知局
      動畫曲線優(yōu)化方法
      【專利摘要】本發(fā)明涉及計算機(jī)動畫領(lǐng)域,公開了一種動畫曲線優(yōu)化方法,包括以下的具體步驟,準(zhǔn)備步驟,找尋文件中的物體;曲率計算步驟,計算每個物體在所有動畫幀上的曲率;非關(guān)鍵幀排除步驟,剔除非關(guān)鍵幀;從而達(dá)到減少非關(guān)鍵幀,優(yōu)化動畫曲線的目的。本發(fā)明的優(yōu)點在于,優(yōu)化效果好,可以大幅度地減少動畫文件中的K幀,可以大幅簡化后期的動畫修改流程,人工干預(yù)少,同時具有計算步驟少的特點,尤其適應(yīng)于對于動畫文件的后期優(yōu)化操作,具有較好的應(yīng)用價值。
      【專利說明】動畫曲線優(yōu)化方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計算機(jī)動畫領(lǐng)域,特別涉及一種動畫曲線優(yōu)化方法。
      【背景技術(shù)】
      [0002]隨著3D動畫時代的來臨,各式各樣的動畫充斥在人們的電腦上。有時,為了獲得更好的動畫效果,有些動畫公司采用動作捕捉來制作動畫,然后把動作捕捉的數(shù)據(jù)轉(zhuǎn)到Maya的人物或動物中,之后還要進(jìn)行一些動畫的修飾和調(diào)整,這時密密麻麻的k幀就給用戶帶來極大的不便。還有動力學(xué)的k幀烘培,烘培之后若想修改烘培之后的k幀那是相當(dāng)困難。于是,在已經(jīng)制作完成的動畫文件中,例如Maya文件中實現(xiàn)動畫曲線優(yōu)化的技術(shù)應(yīng)運而生。
      [0003]現(xiàn)有技術(shù)中,對于動畫文件中曲線的優(yōu)化還僅僅停留在通過固定的動畫參數(shù)修改曲線的階段,通過現(xiàn)有技術(shù)對動畫曲線的修改的問題在于每條曲線的形狀差異較大,無法較為準(zhǔn)確地確定上述固定的動畫參數(shù)的范圍,通常而言,只能設(shè)定一個較寬的數(shù)值范圍,因此導(dǎo)致優(yōu)化效果不佳。此外,采用固定參數(shù)進(jìn)行優(yōu)化只能對一條曲線進(jìn)行一次優(yōu)化,無法應(yīng)用迭代進(jìn)行再次優(yōu)化,需要再次調(diào)整參數(shù)后方能進(jìn)一步進(jìn)行優(yōu)化,導(dǎo)致優(yōu)化過程的人工干預(yù)程度上升,實際上對優(yōu)化效率影響較大。
      [0004]有鑒于此,有必要研發(fā)一種具有多種能夠根據(jù)動畫曲線的具體情況,智能地進(jìn)行動畫曲線的修改的新型動畫曲線優(yōu)化方法。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明針對現(xiàn)有技術(shù)中,對在動畫文件中的曲線進(jìn)行優(yōu)化的過程中普遍存在的控制優(yōu)化參數(shù)過多,優(yōu)化效果不好的缺點,提供了一種新型的智能動畫曲線優(yōu)化方法,可以在提供較少的控制參數(shù)的情況下,根據(jù)曲線的情況自動地完成優(yōu)化操作。
      [0006]為實現(xiàn)上述目的,本發(fā)明可采取下述技術(shù)方案:
      [0007]動畫曲線優(yōu)化方法,包括以下的具體步驟:
      [0008]準(zhǔn)備步驟:找尋動畫文件中的所有物體并形成物體集合,確定物體集合中所有物體在所述動畫文件的時間軸上的所有時間點;
      [0009]曲率計算步驟:依次計算每個物體在所有動畫幀上的曲率,所述曲率是指在以時間變化為X軸,物體取值變化為I軸的x-y坐標(biāo)系中,動畫幀所在時間點的物體取值的變化程度,所述時間點是指所述動畫幀在X軸上的位置,所述物體取值包括物體在空間坐標(biāo)系內(nèi)的位置、形狀;
      [0010]非關(guān)鍵幀排除步驟:根據(jù)所述曲率的大小,剔除那些曲率較小的動畫幀以達(dá)到優(yōu)化動畫曲線的目的,所述曲率較小的動畫幀是指對物體在x-y坐標(biāo)系中的運動曲線曲率改變影響較小的動畫幀,所述剔除那些曲率較小的動畫幀包括剔除所述曲率較小的動畫幀所在時間點的物體取值和/或動畫幀所在時間點。
      [0011]于本發(fā)明的實施例中,所述曲率計算步驟中,所述曲率較小的動畫幀是通過計算該動畫幀分別上游幀以及下游幀之間的變化率之差得到的,所述上游幀是指在X軸上的位置先于該動畫幀的位置的動畫幀,所述下游幀是指在X軸上的位置后于該動畫幀的位置的動畫幀。
      [0012]于本發(fā)明的實施例中,所述上游幀以及下游幀分別為與所述曲率較小的動畫幀相鄰的動畫幀。
      [0013]于本發(fā)明的實施例中,所述變化率為絕對變化率。
      [0014]于本發(fā)明的實施例中,所述變化率之差包括上游變化率與下游變化率之差,所述上游變化率是指所述曲率較小的動畫幀與上游幀之間的物體取值之差與間隔時長的比值,所述下游變化率是指所述曲率較小的動畫幀與下游幀之間的物體取值之差與間隔時長的比值。
      [0015]于本發(fā)明的實施例中,還包括閾值計算步驟:首先將所述曲率計算步驟中計算得到的單個物體在所有動畫幀上的曲率進(jìn)行排序,計算所有動畫幀上的曲率的百分比相對排名,取百分比相對的排名等于或者最接近于預(yù)設(shè)值的動畫幀的曲率作為閾值,所述閾值用于判斷所述曲率較小的動畫幀,并于所述非關(guān)鍵幀排除步驟中保留曲率大于閾值的動畫幀,所述百分比相對排名是指以百分?jǐn)?shù)表示的特定動畫幀的曲率在所述單個物體在所有動畫幀上的曲率的排名順序,所述預(yù)設(shè)值為預(yù)先設(shè)定的百分比數(shù)值。
      [0016]于本發(fā)明的實施例中,所述物體取值包括該物體在三維空間內(nèi)的包括位移、旋轉(zhuǎn)或者縮放的變化。
      [0017]于本發(fā)明的實施例中,所述物體取值包括該物體分別在三維空間的X、y、z軸上的變化。
      [0018]于本發(fā)明的實施例中,還包括迭代優(yōu)化步驟:對經(jīng)過所述非關(guān)鍵幀排除步驟排除非關(guān)鍵幀后的物體再次應(yīng)用所述曲率計算步驟和非關(guān)鍵幀排除步驟以進(jìn)一步排除非關(guān)鍵幀。
      [0019]本發(fā)明具有以下的顯著技術(shù)效果:
      [0020]可以較為智能地實現(xiàn)對動畫文件中的曲線進(jìn)行優(yōu)化操作,只需要預(yù)設(shè)極少的參數(shù)即可,本發(fā)明所記載的方法可以自動地實現(xiàn)對動畫文件的曲線優(yōu)化;此外,本發(fā)明通過判斷并剔除非關(guān)鍵幀的方法大幅度減少動畫文件中K幀的數(shù)量,優(yōu)化效率高。
      [0021]進(jìn)一步地,本發(fā)明采用了一種依據(jù)曲率百分比自動調(diào)整曲線優(yōu)化閾值的步驟,有效地避免了曲線在被優(yōu)化后需要相應(yīng)地調(diào)整預(yù)設(shè)參數(shù)的問題,進(jìn)一步簡化了優(yōu)化過程,提高了智能程度。
      【專利附圖】

      【附圖說明】
      [0022]圖1為動畫曲線優(yōu)化方法的流程步驟示意圖。
      [0023]圖2為一種動畫曲線優(yōu)化裝置的連接結(jié)構(gòu)示意圖。
      [0024]圖3為優(yōu)化前的曲線以及關(guān)鍵幀。
      [0025]圖4為優(yōu)化后的曲線以及關(guān)鍵楨。
      【具體實施方式】
      [0026]下面結(jié)合實施例對本發(fā)明作進(jìn)一步的詳細(xì)描述。[0027]實施例1
      [0028]動畫曲線優(yōu)化方法,如圖1所示,包括以下的具體步驟:
      [0029]準(zhǔn)備步驟100:找尋動畫文件中的所有物體并形成物體集合,確定物體集合中所有物體在所述動畫文件的時間軸上的所有時間點,即K幀所在時間點。
      [0030]曲率計算步驟200:依次計算每個物體在所有動畫幀上的曲率,所述曲率是指在以時間變化為X軸,物體的空間取值變化為I軸的x-y坐標(biāo)系中,動畫幀所在時間點的物體取值的變化程度,通常而言,所述的動畫幀是指K幀,即將關(guān)鍵幀作為衡量物體的取值變化的節(jié)點,所述時間點是指所述動畫幀在X軸上的位置,所述物體的空間取值變化即物體取值,包括物體在空間坐標(biāo)系內(nèi)的位置、形狀。文件內(nèi)的物體在每一個動畫幀處產(chǎn)生空間上的變化,即發(fā)生物體取值變化,因此,每一個物體在各個動畫幀處所發(fā)生的空間上的變化在時間軸上就形成了一條物體的變化曲線,由于本發(fā)明所使用的物體的變化曲線是基于物體的取值在時間軸上的變化,而非物體在實際的三維空間內(nèi)的空間變化,因此所形成的K幀剔除類似于一種虛擬的動畫幀剔除方法,即僅僅剔除物體在特定的動畫幀上的取值。
      [0031]非關(guān)鍵幀排除步驟300:根據(jù)所述曲率的大小,剔除那些曲率較小的動畫幀以達(dá)到優(yōu)化動畫曲線的目的,所述曲率較小的動畫幀是指對物體在χ-y坐標(biāo)系中的運動曲線曲率改變影響較小的動畫巾貞,所述剔除那些曲率較小的動畫幀是指包括剔除所述曲率較小的動畫巾貞所在時間點的物體取值和/或動畫巾貞所在時間點,剔除動畫巾貞所在時間點是指將某一個動畫幀完全去除,所述運動曲線即上文所指的每一個物體在各個動畫幀處所發(fā)生的空間上的變化在時間軸上形成的一條物體的變化曲線。
      [0032]所述曲率計算步驟200中,所述曲率較小的動畫幀是通過計算該動畫幀分別上游幀以及下游幀之間的變化率之差得到的,所述上游幀是指在X軸上的位置先于該動畫幀的位置的動畫幀,所述下游幀是指在X軸上的位置后于該動畫幀的位置的動畫幀。
      [0033]所述上游幀以及下游幀分別為與所述曲率較小的動畫幀相鄰的動畫幀。
      [0034]所述變化率為絕對變化率。
      [0035]所述變化率之差包括上游變化率與下游變化率之差,所述上游變化率是指所述曲率較小的動畫幀與上游幀之間的物體取值之差與間隔時長的比值,所述下游變化率是指所述曲率較小的動畫幀與下游幀之間的物體取值之差與間隔時長的比值。
      [0036]動畫曲線優(yōu)化方法還包括閾值計算步驟400:首先將所述曲率計算步驟200中計算得到的單個物體在所有動畫幀上的曲率進(jìn)行排序,計算所有動畫幀上的曲率的百分比相對排名,取百分比相對排名等于或者最接近于預(yù)設(shè)值的動畫幀的曲率作為閾值,所述閾值用于判斷所述曲率較小的動畫幀,并于所述非關(guān)鍵幀排除步驟300中保留曲率大于閾值的動畫幀,所述百分比相對排名是指以百分?jǐn)?shù)表示的特定動畫幀的曲率在所述單個物體在所有動畫幀上的曲率的排名順序,所述預(yù)設(shè)值為預(yù)先設(shè)定的百分比數(shù)值,優(yōu)選地,該預(yù)設(shè)值在20%-40%之間,可以有效地提高剔除效率,且可以防止對關(guān)鍵的K幀的剔除。
      [0037]所述物體取值包括該物體在三維空間內(nèi)的包括位移、旋轉(zhuǎn)或者縮放的變化。所述物體取值包括該物體分別在三維空間的X、1、z軸上的變化。可選地,物體取值亦可以為其他影響一個物體在計算機(jī)三維繪圖技術(shù)中的變量或者參數(shù),進(jìn)一步提高本實施例的應(yīng)用范圍。
      [0038]動畫曲線優(yōu)化方法還包括迭代優(yōu)化步驟500:對經(jīng)過所述非關(guān)鍵幀排除步驟300排除非關(guān)鍵幀后的物體再次應(yīng)用所述曲率計算步驟200和非關(guān)鍵幀排除步驟300以進(jìn)一步排除非關(guān)鍵巾貞。具體而目,為了能夠進(jìn)一步地實現(xiàn)對曲線的優(yōu)化,并且提聞非關(guān)鍵巾貞的副除率,需要在一次剔除的基礎(chǔ)上,迭代地進(jìn)行多次,剔除,該步驟是通過一個迭代器實現(xiàn)的,不僅提高了剔除效果,且簡化了代碼,提高了代碼的執(zhí)行效率。優(yōu)選地,通過3次迭代,可以達(dá)到較好的剔除效果,達(dá)到曲線的最佳優(yōu)化效果,具體如圖3-4所示,經(jīng)過優(yōu)化,在保持曲線的原有形狀的基礎(chǔ)上,大大減少了關(guān)鍵幀的數(shù)量,便于后期對曲線的進(jìn)一步修改。
      [0039]實施例2
      [0040]動畫曲線優(yōu)化方法,包括以下的具體步驟:
      [0041]打開動畫文件,于本實施例而言,是一個Maya文件,以Maya文件為例,在文件中找尋其所包含的物體,將所有在Maya文件中找到的物體集合成為物體集合,分別對物體進(jìn)行標(biāo)識。查找Maya文件中的動畫曲線,即每一個物體在各個K幀處所發(fā)生的空間上的變化在時間軸上形成的一條物體的變化曲線,查找特定K幀所對應(yīng)的物體,一個K幀可能包括多個物體,分別確定物體在特定K幀的空間變化,該空間變化包括位移、旋轉(zhuǎn)以及縮放的變化。選擇一個特定的空間變化,分別計算物體的空間變化于特定K幀的曲率。曲率的計算采用以下方法進(jìn)行計算,分別計算曲線在特定K幀位置的左值以及右值,所述左值是K幀與上游幀之間物體取值的變化率,所述右值是指K幀與下游幀之間的物體取值的變化率。結(jié)合左值與右值以便于判斷曲線在特定K幀處的曲率變化,即將滿足以下4個判斷之一的K幀作為關(guān)鍵幀進(jìn)行保留,所述4個判斷為:左值小于等于O且右值大于O ;左值小于O且右值大于等于O ;左值大于等于O且右值小于O ;左值大于O且右值小于等于0,該判斷的作用在于,編輯物體k幀曲率上的關(guān)鍵幀,確認(rèn)物體k幀曲率上的k幀的輸入角度為O輸出角度為O。進(jìn)一步地,還需要對曲線進(jìn)行迭代,重復(fù)地進(jìn)行上述K幀剔除過程,以便于更進(jìn)一步地實現(xiàn)曲線優(yōu)化,最終得到一條優(yōu)化后的曲線。上述具體步驟可以采用以下的代碼實現(xiàn):
      [0042]string$object_jh[]='ls-sl' ;// 拾取物體集合名字
      [0043]string$object;//拾取物體
      [0044]string$ACNameh [] ;// 定義 $ACNameh[]
      [0045]string$ACName;//定義 $ACName
      [0046]for ($object in$object_jh)//物體是否在物體集合名字中
      [0047]{
      [0048]$ACNameh='keyframe-q-n$object' ;// 定義 $ACName=詢問 k 巾貞物體的名字
      [0049]for ($ACName in$ACNameh)//$ACName 是否在 $ACNameh 中
      [0050]{
      [0051]float$at[]='keyframe-q-tc$ACName';
      [0052]//定義$at []=詢問k巾貞的時間變化$ACName
      [0053]float$av[]='keyframe-q-vc$ACName';
      [0054]//定義$av []=詢問k巾貞的值變化$ACName
      [0055]float$kfav[]='keyTangent-t$at[O]-q-oa$ACName';
      [0056]//定義$kfav[]=巾貞切線的時間詢問$ACName的輸出角度
      [0057]float$klav[]='keyTangent_t$at[I]-q_ia$ACName';
      [0058]//定義$klav[]=巾貞切線的時間詢問$ACName的輸入角度
      【權(quán)利要求】
      1.一種動畫曲線優(yōu)化方法,其特征在于,包括以下的具體步驟: 準(zhǔn)備步驟(100):找尋動畫文件中的所有物體并形成物體集合,確定物體集合中所有物體在所述動畫文件的時間軸上的所有時間點; 曲率計算步驟(200):依次計算每個物體在所有動畫幀上的曲率,所述曲率是指在以時間變化為X軸,物體取值變化為I軸的χ-y坐標(biāo)系中,動畫幀所在時間點的物體取值的變化程度,所述時間點是指所述動畫幀在X軸上的位置,所述物體取值包括物體在空間坐標(biāo)系內(nèi)的位置、形狀; 非關(guān)鍵幀排除步驟(300):根據(jù)所述曲率的大小,剔除那些曲率較小的動畫幀以達(dá)到優(yōu)化動畫曲線的目的,所述曲率較小的動畫幀是指對物體在χ-y坐標(biāo)系中的運動曲線曲率改變影響較小的動畫幀,所述剔除那些曲率較小的動畫幀包括剔除所述曲率較小的動畫幀所在時間點的物體取值和/或動畫幀所在時間點。
      2.根據(jù)權(quán)利要求1所述的動畫曲線優(yōu)化方法,其特征在于,所述曲率計算步驟(200)中,所述曲率較小的動畫幀是通過計算該動畫幀分別上游幀以及下游幀之間的變化率之差得到的,所述上游幀是指在X軸上的位置先于該動畫幀的位置的動畫幀,所述下游幀是指在X軸上的位置后于該動畫幀的位置的動畫幀。
      3.根據(jù)權(quán)利要求2所述的動畫曲線優(yōu)化方法,其特征在于,所述上游幀以及下游幀分別為與所述曲率較小的動畫幀相鄰的動畫幀。
      4.根據(jù)權(quán)利要求2所述的動畫曲線優(yōu)化方法,其特征在于,所述變化率為絕對變化率。
      5.根據(jù)權(quán)利要求2所述的動畫曲線優(yōu)化方法,其特征在于,所述變化率之差包括上游變化率與下游變化率之差,所述上游變化率是指所述曲率較小的動畫幀與上游幀之間的物體取值之差與間隔時長的比值,所述下游變化率是指所述曲率較小的動畫幀與下游幀之間的物體取值之差與間隔時長的比值。
      6.根據(jù)權(quán)利要求1所述的動畫曲線優(yōu)化方法,其特征在于,還包括閾值計算步驟(400):首先將所述曲率計算步驟(200)中計算得到的單個物體在所有動畫幀上的曲率進(jìn)行排序,計算所有動畫幀上的曲率的百分比相對排名,取百分比相對的排名等于或者最接近于預(yù)設(shè)值的動畫幀的曲率作為閾值,所述閾值用于判斷所述曲率較小的動畫幀,并于所述非關(guān)鍵幀排除步驟(300)中保留曲率大于閾值的動畫幀,所述百分比相對排名是指以百分?jǐn)?shù)表示的特定動畫幀的曲率在所述單個物體在所有動畫幀上的曲率的排名順序,所述預(yù)設(shè)值為預(yù)先設(shè)定的百分比數(shù)值。
      7.根據(jù)權(quán)利要求1-6任一所述的動畫曲線優(yōu)化方法,其特征在于,所述物體取值包括該物體在三維空間內(nèi)的包括位移、旋轉(zhuǎn)或者縮放的變化。
      8.根據(jù)權(quán)利要求1-6任一所述的動畫曲線優(yōu)化方法,其特征在于,所述物體取值包括該物體分別在三維空間的X、1、Z軸上的變化。
      9.根據(jù)權(quán)利要求1所述的動畫曲線優(yōu)化方法,其特征在于,還包括迭代優(yōu)化步驟(500):對經(jīng)過所述非關(guān)鍵幀排除步驟(300)排除非關(guān)鍵幀后的物體再次應(yīng)用所述曲率計算步驟(200)和非關(guān)鍵幀排除步驟(300)以進(jìn)一步排除非關(guān)鍵幀。
      【文檔編號】G06T13/00GK103927776SQ201410124595
      【公開日】2014年7月16日 申請日期:2014年3月28日 優(yōu)先權(quán)日:2014年3月28日
      【發(fā)明者】沈杰, 吳佳, 沈玉良 申請人:浙江中南卡通股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1