Maya角色三維動(dòng)畫制作中鳥類的骨骼綁定
瀏覽次數(shù):2753 分類:技術(shù)支持
Maya角色三維動(dòng)畫制作中鳥類的骨骼綁定,在制作之前我們要充分的了解鳥類的骨骼,尤其是翅膀部分的結(jié)構(gòu)。很多時(shí)候初學(xué)者在做翅膀的骨骼設(shè)置時(shí),都會(huì)犯一些結(jié)構(gòu)上的錯(cuò)誤。
下圖中,我們可以看見(jiàn)一些常見(jiàn)的鳥類翅膀,雖然他們大小、形狀不盡相同,但其骨骼的解剖結(jié)構(gòu)都是一致的。

??? 鳥類翅膀的骨骼結(jié)構(gòu)(下圖),和其它脊椎動(dòng)物上肢的骨骼、甚至是人類,都有類似的地方。我們甚至可以一一對(duì)應(yīng)。比如,紅色的部分相當(dāng)于人類的上臂,綠色部分對(duì)應(yīng)小臂,藍(lán)色部分可以對(duì)應(yīng)手掌和手指。

??? 了解了鳥類翅膀的骨骼結(jié)構(gòu),我們回到maya中,實(shí)際的制作一套鳥的骨骼設(shè)置。
??? 模型制作的時(shí)候,需要了解最終動(dòng)畫的要求。在我們的例子當(dāng)中,這只卡通的烏鴉需要有收起翅膀和張開翅膀的動(dòng)作,同時(shí)還需要用翅膀做出擬人化的手勢(shì)。所以這對(duì)我們進(jìn)行骨骼設(shè)置提出了比較高的要求。

??? 我們現(xiàn)在頂視圖里,畫出大致的翅膀骨骼。選擇創(chuàng)建骨骼工具Skeletonàjiongt tool,應(yīng)用默認(rèn)的屬性設(shè)置。此時(shí)創(chuàng)建出的骨骼軸向?yàn)槟J(rèn)的XYZ。然后在透視圖中把骨鏈沿Y軸移動(dòng)到模型的位置,旋轉(zhuǎn)骨鏈與模型匹配。(如下圖)

??? 默認(rèn)時(shí)創(chuàng)建出的骨骼軸向?yàn)榈腦YZ。這樣的骨骼X軸指向下一節(jié)關(guān)節(jié),Z軸為旋轉(zhuǎn)軸。通常,在角色的骨骼設(shè)置時(shí),大多數(shù)情況下我們都使用默認(rèn)的XYZ軸向設(shè)置。選擇不同的骨骼軸向,需要根據(jù)角色的運(yùn)動(dòng)來(lái)確定。比如人的上肢,我們需要肘部關(guān)節(jié)沿一定的方向旋轉(zhuǎn)(Z軸),同時(shí),還需要手腕以自身的方向做翻轉(zhuǎn)手腕的動(dòng)作(X軸的旋轉(zhuǎn))。
??? 打開骨骼局部軸向的顯示(在屬性編輯器里DisplayàDisplay Local Axis),我們可以檢查每一個(gè)根骨骼的軸向是否正確。(如下圖)如果骨骼的軸向有錯(cuò)誤,我們可以選擇手動(dòng)的方式在次物體模式下修改骨骼的軸向。如下圖:
然后選擇jiont01,執(zhí)行ModifyàFreeze Transformation命令(將jiont01的旋轉(zhuǎn)屬性歸零)。
小帖士:在骨骼設(shè)定的時(shí)候,我們應(yīng)該注意骨骼的旋轉(zhuǎn)、縮放屬性是否為默認(rèn)數(shù)值。正常情況下,骨骼的Rotate應(yīng)該保持為零,Scale保持為1. 如果在視圖里骨骼看起來(lái)比較小,我們可以通過(guò)主菜單DisplayàJiont Size命令,調(diào)整視圖內(nèi)骨骼的顯示。也可以在每一節(jié)骨骼的參數(shù)通道欄Radius屬性下調(diào)節(jié)。
現(xiàn)在,翅膀的主骨骼就建立好了,我們可以參看下圖的骨骼布局以及每一節(jié)骨骼的軸向。Jiont01可以對(duì)應(yīng)為人的鎖骨,jiont02對(duì)應(yīng)上臂,jiont03和jiont04對(duì)應(yīng)小臂(joint04主要的作用是在X軸方向旋轉(zhuǎn),帶動(dòng)翅膀前端的左右運(yùn)動(dòng)),jiont05和jiont06對(duì)應(yīng)手掌和手指。
???? 接下來(lái),我們要給羽毛單獨(dú)的設(shè)置骨骼。骨骼的軸向仍然使用默認(rèn)的XYZ模式,適當(dāng)?shù)慕?至6節(jié)骨骼(骨骼的數(shù)量根據(jù)羽毛需要的動(dòng)作設(shè)置,在這個(gè)案例中,翅膀前端大片的羽毛需要像手指一樣做擬人化的手勢(shì),所以需要較多的骨骼)。如下圖A, 因?yàn)槌岚蛞芡暾暮仙稀⒄归_,所以每一片羽毛我們都要單獨(dú)的添加骨骼,以便隨著翅膀的動(dòng)作運(yùn)動(dòng)。如下圖B(在這里,,為了讓大家能夠看清楚,我們只以大片羽毛為例)
接下來(lái),我們要設(shè)置每一篇羽毛的驅(qū)動(dòng)關(guān)鍵幀,在翅膀主骨骼伸展和彎曲的時(shí)候,自動(dòng)的跟隨運(yùn)動(dòng)。我們以鳥的肘關(guān)節(jié)(也就是jiont03)的彎曲運(yùn)動(dòng)為例。
打開主菜單下AnimatcàSet Driven KeyàSet窗口。(如下圖)
??? 選擇翅膀肘部關(guān)節(jié)(jiont03),點(diǎn)擊Set Driven Key窗口下的Load Driver,在右邊的通道欄屬性窗口選擇用來(lái)驅(qū)動(dòng)物體的屬性,這里我們選擇rorateZ。
??? 然后選擇cc_jiont002—07(就是每根羽毛的骨骼,可以一次多選幾個(gè)被驅(qū)動(dòng)物體),點(diǎn)擊Load Driven,在窗口調(diào)入被驅(qū)動(dòng)物體。在右邊的通道欄屬性窗口選擇用來(lái)被驅(qū)動(dòng)的屬性,這里我們選擇rorateY,我們可能還需要選擇trabslateX和Z屬性(需要在位移上也有一些變化)。
??? 點(diǎn)擊Set Driven Key窗口下的Key鍵。這是我們可以看到被驅(qū)動(dòng)的骨骼的Rotate Y屬性變?yōu)榻埸S色,已經(jīng)記錄了驅(qū)動(dòng)關(guān)鍵幀。
??? 小帖士:驅(qū)動(dòng)關(guān)鍵幀在maya的骨骼設(shè)置中常常會(huì)用到,他可以用一個(gè)物體的任意屬性驅(qū)動(dòng)另一個(gè)物體的屬性。比如,你可以設(shè)置一個(gè)球的縮放,驅(qū)動(dòng)另外一個(gè)圓柱體在X周上的位移,設(shè)置完成后每單你縮放那個(gè)小球的時(shí)候,圓柱體都會(huì)在X軸方向上自動(dòng)的對(duì)應(yīng)位移。
??? 接下來(lái),我們將翅膀主骨骼jiont03的Rotate Z屬性數(shù)值旋轉(zhuǎn)為80,并依次將cc_jiont02—07調(diào)整到相應(yīng)的角度、位置(翅膀彎曲時(shí),羽毛會(huì)跟隨翅膀的運(yùn)動(dòng)做相應(yīng)的位移和旋轉(zhuǎn)),點(diǎn)擊Set Driven Key窗口下的Key鍵。
然后,我們?cè)賹iont03的Rotate Z屬性數(shù)值旋轉(zhuǎn)為-40,并依次將cc_jiont02—07調(diào)整到相應(yīng)的角度、位置(羽毛的被動(dòng)位移的位置需要合理調(diào)整)。點(diǎn)擊Set Driven Key窗口下的Key鍵。
?? 小帖士:在例子中,我們用相同的方式驅(qū)動(dòng)了其他的所有羽毛,可以讓每一片羽毛的運(yùn)動(dòng)隨著翅膀的不同姿勢(shì)做自動(dòng)的跟隨。驅(qū)動(dòng)關(guān)鍵幀可以有重疊的相互作用,就是同一個(gè)物體可以被不同的物體屬性同時(shí)驅(qū)動(dòng)。在鳥翅膀的制作中,羽毛的收合需要非常仔細(xì)的調(diào)整,翅膀部分每一個(gè)關(guān)節(jié)的運(yùn)動(dòng),都會(huì)給相鄰近的羽毛有影響。
??? 我們現(xiàn)在旋轉(zhuǎn)翅膀的肘關(guān)節(jié),可以看到羽毛會(huì)自動(dòng)的匹配翅膀的運(yùn)動(dòng)做相應(yīng)的跟隨動(dòng)作。(如上圖)我們還可以在動(dòng)畫曲線編輯器(Graoh Editor)里微調(diào)驅(qū)動(dòng)關(guān)鍵幀數(shù)值。如圖:
用相同的方式設(shè)置翅膀根部和手腕部分同羽毛的驅(qū)動(dòng)后,翅膀部分的設(shè)置基本完成。
??? 接下來(lái),我們?cè)趥?cè)視圖里創(chuàng)建身體的骨骼。為了便于查看身體的位置,我們先隱藏了翅膀上的羽毛模型和之前做好的翅膀骨骼。(下圖A)
??? 鳥類的身體部分我們大概可以分為四個(gè)部分:頭和脖子,身體的軀干,腿和爪子,尾巴。
??? 身體的軀干部分因?yàn)椴粫?huì)有太多動(dòng)作,所以我們只需要兩節(jié)骨骼就可以,root是整個(gè)鳥的設(shè)置骨架的根關(guān)節(jié),腿部關(guān)節(jié)最后會(huì)與它連接。bak是身體胸部的骨骼,兩只翅膀的鎖骨和脖子的骨骼會(huì)與它連接。tail是身體連接尾巴的骨骼,以后鳥的尾部整體扭動(dòng)的時(shí)候,我們會(huì)通過(guò)旋轉(zhuǎn)這節(jié)骨骼實(shí)現(xiàn)。下圖B
??? 鳥類的頭和脖子的運(yùn)動(dòng)會(huì)比較多,所以在這里我們需要設(shè)置足夠數(shù)量的骨骼。neck01, neck02, neck03為脖子的骨骼點(diǎn)位置,脖子的三節(jié)骨骼的長(zhǎng)度基本一致,不需要有太多的長(zhǎng)短區(qū)別,盡量在脖子模型的中間部分,不需要太靠前或靠后。Head是頭部骨骼關(guān)節(jié),這個(gè)關(guān)節(jié)的位置放在頭骨的下部。下圖C
???? 接下來(lái)我們創(chuàng)建腿部和爪子的骨骼。我們還是在側(cè)視圖創(chuàng)建骨骼。Leg01和leg02分別是鳥的大腿和小腿骨骼,heel和foot分別是鳥的腳跟和腳掌。(這里的大腿小腿等,可以分別對(duì)應(yīng)人體骨骼,注意鳥類骨骼和人體骨骼的區(qū)別)。如圖A
我們將maya視圖切換到透視圖窗口,這是我們可以看見(jiàn)腿部的骨骼并沒(méi)有和模型匹配,而是在世界坐標(biāo)空間的YZ軸平面上。如圖B我們需要手動(dòng)的移動(dòng)、旋轉(zhuǎn)腿部骨骼,讓它和腿部模型位置匹配。如圖C。(記住在每一次調(diào)整完骨骼位置后,要將骨骼的旋轉(zhuǎn)屬性數(shù)值歸零)
??? 接下來(lái)我們創(chuàng)建爪子的骨骼。我們?nèi)匀辉趥?cè)視圖創(chuàng)建骨節(jié)點(diǎn),依據(jù)轉(zhuǎn)子的形狀和以后運(yùn)動(dòng)的要求,我們需要多幾節(jié)骨骼。如圖A。切換到透視圖,我們調(diào)整這一段骨骼鏈的位置,如圖B。也可以在頂視圖準(zhǔn)確的匹配骨骼和模型的位置,如圖C。如果再頂視圖看不清楚爪子的結(jié)構(gòu),可以調(diào)整頂視圖攝像機(jī)的剪切平面,讓視圖里只顯示我們希望看到的爪子部分,如圖D。
??? 小帖士:攝像機(jī)的剪切平面可以手動(dòng)的調(diào)整,如在本例子當(dāng)中,我們將頂視圖的攝像機(jī)剪切平面調(diào)整為:Near Clip Plane=112,F(xiàn)ar Clip Plane=1000。這個(gè)數(shù)值只是在我們的場(chǎng)景里適用,其他場(chǎng)景需要根據(jù)模型的實(shí)際大小調(diào)整。當(dāng)一根腳趾骨骼的位置調(diào)整好后,我們復(fù)制出其他的幾根腳趾骨骼,并放置在相應(yīng)的位置。通常情況下,每一根腳趾的長(zhǎng)度會(huì)不一樣,這是我們可以在物體局部坐標(biāo)模式下,單獨(dú)的調(diào)整每一根腳趾骨骼的長(zhǎng)度,與模型匹配。這樣可以盡量保持骨骼軸向不會(huì)出錯(cuò)。
??? 小帖士:通常情況下,我們選擇與被創(chuàng)建骨骼的旋轉(zhuǎn)平面相近的視圖為工作窗口,例如為標(biāo)準(zhǔn)的人體模型創(chuàng)建骨骼系統(tǒng),脊椎、腿、脖子和頭的骨骼,都會(huì)在側(cè)視圖窗口創(chuàng)建。胳膊的骨骼一般會(huì)在頂視圖創(chuàng)建。這樣做做得原因是盡量讓創(chuàng)建的骨骼的旋轉(zhuǎn)平面與模型一致。這樣在之后的調(diào)整骨骼軸向時(shí),會(huì)簡(jiǎn)單一些,也可以盡量的避免錯(cuò)誤發(fā)生。
??? 現(xiàn)在我們已經(jīng)將鳥的身體骨骼準(zhǔn)備好,(軀干、脖子和腿部,腿部骨骼我們只需要制作左邊的,右邊的骨骼之后用鏡像工具直接復(fù)制過(guò)去)如圖A。接下來(lái)我們將脖子、腿、爪子的骨骼和身體相連接。選擇四根腳趾的骨骼,同時(shí)選擇腿部的foot骨骼,按鍵盤的P鍵(Parent的快捷鍵)。選擇脖子的neck01,同時(shí)選擇bak骨骼,按鍵盤的P鍵。選擇leg01及root并按鍵盤的P鍵,如圖B。然后腿部關(guān)節(jié)leg01,執(zhí)行SkeletonàMirror Joint命令,鏡像骨骼,如圖C。
??? 鏡像骨骼的時(shí)候,我們用默認(rèn)的設(shè)置,只是要選擇鏡像的平面,通常的場(chǎng)景都是選擇YZ平面鏡像,如下圖。
現(xiàn)在我們的骨骼基本已經(jīng)創(chuàng)建完成,我們還需要最后再檢查一遍每一節(jié)骨骼的軸向是否正確。紅色的X軸指向下一節(jié)關(guān)節(jié),蘭色的Z軸是骨骼的旋轉(zhuǎn)平面,如下圖。
??? 小帖士:右邊腿部骨骼鏡像后的軸向與左邊的相反,紅色的X軸指向了后一節(jié)骨骼關(guān)節(jié),這樣的結(jié)果是正確的。這樣的骨骼軸向可以讓我們同時(shí)旋轉(zhuǎn)腿部關(guān)節(jié)時(shí),兩條腿的運(yùn)動(dòng)保持一致。如我們將人體的胳膊骨骼這樣做時(shí),可以同時(shí)將兩邊的胳膊舉起或放下。
??? 我們將翅膀的骨骼顯示出來(lái),并將鎖骨的joint01與bak連接。如下圖。這樣,這只鳥的骨骼我們就基本建立好了,接下來(lái),我們還需要給骨骼加上一些控制器,便于我們動(dòng)畫的時(shí)候控制。
??? 小帖士:尾巴部分的骨骼就是在每一片羽毛上建立骨骼,然后添加一些簡(jiǎn)單的控制,通過(guò)驅(qū)動(dòng)關(guān)鍵幀與控制器屬性相連接,如張開、收起等。與翅膀部分類似,所以這里不再單獨(dú)說(shuō)明。
??? 控制器的制作,要按照特定的動(dòng)畫習(xí)慣來(lái)做,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)。不同的項(xiàng)目和動(dòng)畫制作精度,會(huì)對(duì)角色控制器的制作有不同的要求。通常情況下,控制器不易太多太復(fù)雜,盡量簡(jiǎn)介概括,這樣可以最大限度的提高制作的效率。
??? 在這里,我們?cè)诳梢詽M足項(xiàng)目需要的前提下,盡量的簡(jiǎn)化了鳥的控制器數(shù)量,翅膀部分只選擇了正向控制(FK),只在鎖骨、翅膀跟部和手指部分(擬人化的五根羽毛)建立了控制器。如下圖:(為了看著清楚,只顯示了翅膀的骨骼和控制器)
鎖骨的淡藍(lán)色控制器控制肩膀部分的運(yùn)動(dòng)(相對(duì)于人體來(lái)說(shuō))。翅膀根部的綠色的控制器控制翅膀的展開,收起,旋轉(zhuǎn)等,黃色的手指控制氣單獨(dú)的控制手指羽毛的動(dòng)作。
如圖,圖A部分綠色的控制器控制屬性,默認(rèn)的RotateX,Y,Z屬性控制翅膀根部的旋轉(zhuǎn)。M_z屬性控制肘部關(guān)節(jié)Z軸的旋轉(zhuǎn)(伸展或收起肘部關(guān)節(jié)),T_x屬性控制小臂第二根關(guān)節(jié)Joint04 X軸的旋轉(zhuǎn)(相當(dāng)于翻轉(zhuǎn)、左右扭動(dòng)小臂),T_z_a屬性控制手腕關(guān)節(jié)Z軸的旋轉(zhuǎn)(手腕的前后運(yùn)動(dòng))。T_y屬性控制手腕Y軸的旋轉(zhuǎn)(上下運(yùn)動(dòng)),Scale_a屬性控制翅膀前端幾根大片羽毛的縮放(再收起翅膀時(shí)需要縮放羽毛以配合收起時(shí)翅膀的大小)。通過(guò)這些基本的控制屬性,我們就可以很好的控制翅膀的運(yùn)動(dòng),達(dá)到項(xiàng)目要求的可以展開、收起等動(dòng)作(需要和鎖骨部分的淡藍(lán)色控制器配合使用)。
上圖B部分,手指黃色的控制器,屬性通道欄里面的屬性相應(yīng)的控制手指骨骼每一節(jié)的旋轉(zhuǎn)。
小帖士:在maya里,我們可以根據(jù)自己的需要,任意的添加自定義屬性。比如上面的M_z,T_x等屬性。通過(guò)這些自定義屬性,可以把我們需要的控制連接到相應(yīng)的骨骼上,以便于我們動(dòng)畫師的需要。
??? 接著,在身體和脖子、頭部,我們也制作一些控制器。并連接到相應(yīng)的骨骼上,分別控制鳥的身體的各個(gè)部位。如圖。
小帖士:鳥身體部分除了腿部關(guān)節(jié)應(yīng)用反向控制(IK)之外,身體其他部位的控制器我們都是用正向控制(FK)。控制器與骨骼之間用約束或?qū)傩躁P(guān)聯(lián)編輯器相連接。脖子、翅膀、身體的控制器按照層級(jí)方式連接,并最終放在腳底下跟控制器下。 控制器的制作要根據(jù)動(dòng)畫的要求設(shè)置,一個(gè)好的骨骼設(shè)置,需要你對(duì)動(dòng)畫師的工作習(xí)慣和要求有比較深刻的理解,在maya中的各個(gè)工作環(huán)節(jié)是需要相互銜接的,所以一個(gè)合格的骨骼設(shè)置人員,除了要具備基礎(chǔ)的技能和知識(shí),還需要了解本工作流程之外的更多環(huán)節(jié)的要求。
到這里,這只鳥的骨骼設(shè)置基本就完成了,我們將模型與做好的骨骼系統(tǒng)綁定在一起(SkinàBindSkinàSmooth Bind),調(diào)整好蒙皮的權(quán)重之后,我們就可以最終完成的整套骨骼設(shè)定了,如下圖。
小帖士:做骨骼設(shè)置的時(shí)候,可以在整個(gè)骨骼系統(tǒng)完成之后再綁定蒙皮,也可以在骨骼創(chuàng)建好、添加控制器之前綁定蒙皮。通常的做法是在建立好骨骼后,添加控制器之前就綁定蒙皮。因?yàn)橛幸恍㊣K系統(tǒng)在添加到骨骼上之后,會(huì)導(dǎo)致骨骼的輕微變形、位移,(線性Spline IK)這樣你建立的初始骨骼可能就會(huì)和模型不匹配,雖然這只是輕微的變化。
您好!請(qǐng)登錄