今天為大家帶來Maya7.0 骨骼動力學之骨骼動畫制作教程,教程真的很不錯,很值得學習,好了,大家一起來學習吧!
骨骼制作標志著用戶已進入到高級特征動畫制作的領域,在 Maya 中使用骨骼比較容易,但也有可能變得復雜。在我們為骨骼制作動畫之前,首先要了解動力學的一些屬性,這對于制作好的骨骼動畫至關重要。
正向動力學
Forward Kinematics 對于處理諸如行走時手臂的擺動或人轉身時脊柱的旋轉之類的自由運動是非常有效的。對于 Forward Kinematics ,主要關心的是給動畫正確建立關節,下面就用 Joint 工具來建立一個人體骨骼。
首先要做的是創建有骨骼的腿部,這需要放置腿、膝和足關節。具體操作步驟如下:
(1) 執行 Skeleton → Joint Tool 命令,單擊 Reset Tool 將所有的選項都設置為默認狀態,然后執行 Auto Joint Limits 。
(2) 進入側視圖,按住 X 鍵并單擊關節,將它捕捉到柵格上,如圖 13-8 所示。創建完所有的關節后,按 Enter 鍵完成制作。
提示:
在關節創建過程中的任何時候,用戶可以用鼠標中鍵拖動以調整創建的最后一個關節的位置,或者用向上箭頭鍵回到其他關節。注意:如果返回少許幾個關節,并用鼠標左鍵單擊的話,就會在關節外得到另一個關節分支。
圖 13-8 創建骨骼
(3) 分別給關節命名為 Lleg , Lknee 和 Lfoot(L 代表左的意思 ) ?,F在沒必要考慮關節鏈中的最后一個關節,因為現在還用不上。
(4) 進入透視圖,執行膝或足關節并試著轉動它,這時可以發現它僅能繞 Z 軸旋轉,且對 Z 旋轉還有一個限制。用 Auto Joint Limit 設置可以創建一個 Hinge 關節,這種關節旋轉時不會通過父關節或者說該關節彎曲不會超過 180 度。因此,和膝關節一起使用是最好不過了,如圖 13-9 所示。
如果還要使足繞關節 X 或 Y 軸旋轉,可以在 Attribute Editor 中進行設置。在 Joint 欄,設置 Degrees of Freedom 為 X 和 Y ,繼續對 Z 軸應用關節限制,除非在 Limit Information 欄關閉 Rot Limit Z 設置。
在創建腿時一定要注意,創建的骨頭間是傾斜的,而不是一條直線。因為,在骨頭之間的角度決定了骨頭彎曲的方式。另外,在 Maya 中默認的關節方向是由該關節與其子關節的關系決定的。是指創建一個關節時,局部坐標的 X 軸沿著骨頭方向, Y 軸指向彎曲方向, Z 軸垂直于彎曲方向。執行 Display → Components Object → Local Rotation Axes 命令,可以顯示出一個關節的局部旋轉軸,如圖 13-10 所示。
圖 13-9 旋轉骨骼 圖 13-10 局部旋轉軸
當用默認設置創建一個關節時, Z 軸旋轉方向始終是指向彎曲骨頭的方向, Y 軸旋轉方向就是骨頭從一邊到另一邊的旋轉方向。這樣,執行要創建關節的窗口就非常重要了,因此應指出要使骨頭如何彎曲,然后相應地在正確的窗口中創建這些骨頭。例如,模型面向前視圖,則可以在側視圖中創建脊椎和腿。這樣,當創建其他的骨骼時,就可以在不同的窗口觀察創建關節的示例。
移動和鏡像關節
用戶可以使用 Move 工具移動創建的關節。如果執行一個關節并用 Move 工具移動它,該關節層級下的關節也會一起移動。如果執行 Move 工具,然后按 Insert 鍵顯示軸心點控制器并移動該軸心點,則只要移動該執行的關節即可以。當然也可以使用 Maya 的 Skeleton 菜單中的其他工具來編輯創建的關節,通過插入、刪除、連接和斷開關節 —— 甚至重新創建關節。
下面用鏡像來創建另一條腿,因為關節的運動與一般物體節點有區別,所以需要使用 Mirror Joint 功能對稱地復制右腿,其具體操作步驟如下。
(1) 將腿層級移動到 (2 , 0 , 0) ,然后執行 Skeleton → Mirror Joint 命令。執行 YZ 作為設置,并單擊 Mirror 。
(2) 試試同時旋轉左、右膝蓋,這兩個膝蓋會像彼此的鏡像圖像一樣旋轉,如圖 13-11 所示。
(3) 將被鏡像的關節命名為 Rleg 、 Rknee 和 Rfoot 。
在鏡像關節時,旋轉的限制信息應該也拷貝到被鏡像的關節上,但用戶也許會發現它們并未被激活。如果出現這種情況,可以選擇 Attribute Editor 并激活它們 ( 在那里有這些數字信息 ) 。如果有一些 Rotate 域是灰色的但關節仍可以旋轉,那么可以在 Degree of Freedom 框中雙擊鼠標左鍵以解鎖。
圖 13-11 同時旋轉兩個骨骼
如果發現關節鏡像得不對,可以在另一個關節下把它們編成組,先鏡像它們然后再解散它們。
建立人體其余的骨骼
下面是增加脊椎和肩部關節層級的方法,具體操作步驟如下:
(1) 進入側視圖,用默認的 Joint Tool 選項設置創建脊椎鏈,如圖 13-12 所示。脊椎關節需要的是 Ball 關節形式。在頂視圖中創建左肩骨骼鏈,如圖 13-13 所示 ( 記住現在創建的是一個非常簡單的骨骼 ) 。
圖 13-12 脊椎骨形狀 圖 13-13 左肩骨骨鏈
(2) 將脊椎層級命名為 waist 、 chest 、 neck 和 head ,并將肩部層級命名為 Lshoulder 、 Larm 、 Lforearm 和 Lhand 。
(3) 在前視圖中,將肩部骨骼鏈向上移至稍稍低于頸骨的位置。
(4) 在 Hypergraph 或者 Outliner 中,將腰以下的腿骨鏈編為一組,并把胸部下方的 Lshoulder 鏈編為一組,這時應看到像層級和圖片的一些東西,如圖 13-14 所示。
圖 13-14 改變層級
(5) 要在肩部關節加上旋轉限制,打開 Attribute Editor 并執行 Lshoulder 關節。因肩部不需要繞 X 軸旋轉,因此可以在 Degrees of Freedom 設置中關閉 X 。因為要使 Larm 像 Ball 關節一樣旋轉,因此它的設置不改變。 Lforearm 是一個普通關節,不能繞 Y 軸旋轉,因此關閉 Y ; Lhand 也是一個普通關節,不能繞 X 軸旋轉,因此關閉 X 。
(6) 對這些關節和其他關節也可以設置具體的最小和最大旋轉范圍。下面以 Lforearm 關節為例加以說明。執行 Lforearm ,在 Attribute Editor 中打開 Limit Information 和 Rotate 屬性,這時可以看到 3 個 Rot Limit 域,且 Y 旋轉為灰色。選中 4 個 Rot Limit X 和 Z 框,并使 Min 和 Max 域解鎖。
(7) 在頂視圖中將 Lforearm 繞 Z 軸旋轉。當前臂變直時,其度數大約為– 28 ,因此輸入– 30 作為 Min 值,當前臂彎曲與 Larm( 胳膊 ) 重疊時,度數大約為 137 ,因此輸入 130 作為 Max 值。
(8) 對于 X 旋轉,假設掌心是朝下的。在這種情況下, Lforearm 應能夠旋轉– 90 度使掌心朝前,在起始位置旋轉 45 °可以使掌心朝后。輸入– 90 和 45 作為 Min 和 Max 值,如圖 13-15 所示。
提示:
同樣,對 Translate 和 Scale 也有限制,這個限制也許有時會用到。 Maya 還有 Rotation Limit Damping 設置,該設置允許關節在旋轉限制之內或之外移動。
圖 13-15 旋轉限制
(9) 執行 Lshoulder 關節并鏡像該關節,此時可以得到一個雖然非常簡單,但是完整的人體骨骼,最后效果如圖 13-16 所示。
圖 13-16 人體骨骼最后效果
重定位關節的局部坐標軸。為了得到對關節如何旋轉的精確控制,有必要知道如何重定位關節。譬如說在已創建的骨骼中,用軸心點操縱器將肩關節向下平移了一個單位。如果顯示局部旋轉坐標軸,則 X 軸不再是指向骨頭中心,而是大約偏離了– 24 °。
要重定位 X 軸,可以執行 Rotate 工具并切換到組件模式。用 RM 執行問號標記按鈕 ( 多重表列 ) 并選中 Local Rotation Axes 復選框,然后執行肩關節??梢栽谇耙晥D旋轉 Y 軸手柄直到 X 軸指向肩關節,也可以在命令行中通過輸入一條 MEL 命令來輸入一個精確的旋轉值。例如:可以輸入 rotater os 0 24 0 命令以使局部坐標圍繞 Y 軸相對旋轉– 24 °。
在 MEL 命令中與上述命令相關的還有 jointe oj xyz zso 命令,該命令可以自動地重定位一個關節的局部坐標。但在用這個命令時要特別小心,因為有可能會破壞對稱層級的鏡像特性。
骨骼制作標志著用戶已進入到高級特征動畫制作的領域,在 Maya 中使用骨骼比較容易,但也有可能變得復雜。在我們為骨骼制作動畫之前,首先要了解動力學的一些屬性,這對于制作好的骨骼動畫至關重要。
反向運動學
使用 Forward Kinematics 工具主要涉及到的是正確地建立關節。在創建關節并將關節編為一組,且給關節加了合適的限制之后,就要轉換關節并給它們作關鍵幀。首先從頂部層級開始,然后向下處理底層關節直到獲得所要的姿態。
對于定向運動來說 ( 如一個人將腳放到地面或伸手開門 ) ,使用正向運動學來實現非常困難和麻煩,一般需用反向運動學 (IK) 來制作動畫。
反向運動學包括 IK 手柄和 IK 解算器。一個 IK 手柄貫穿受影響的關節,這些受影響的關節就叫 IK 鏈,并且手柄線貫穿關節。手柄矢量指的是從起始關節開始指向末端關節的矢量,末端關節是 IK 手柄的末端受動器所在位置,如圖 13-17 所示。
圖 13-17 IK 手柄
IK 解算器可以查看 IK 鏈末端受動器的位置并作一些必要的計算,以使關節能正確旋轉。旋轉方式是從起始關節開始到 IK 鏈的末端關節為止,這種方式意味著末端關節在末端受動器所在位置。當末端受動器移動時, IK 解算器就將末端受動器的平移值改為關節的旋轉值,關節也會相應地改變。通常, IK 鏈只使用 3 個關節,但也可以處理更多的關節。
Maya 的界面有 3 種 IK 解算器: IKRP(Rotate Plane) 解算器, IKSC(Single Chains) 解算器和 IK Spline 解算器,每種 IK 解算器都有各自的 IK 手柄類型。
使用 IKRP 手柄
IKRP 解算器是 IK 手柄工具的默認設置,其具體操作步驟如下:
(1) 在側視圖中,畫一條簡單的關節鏈,如圖 13-18 所示。
(2) 執行 Skeleton → IK Handle Tool □命令,并將工具重置為默認設置。
(3) 單擊第 1 個關節,然后單擊最后一個關節,一個 IK 手柄已創建起來。頂部的圓復雜,如圖 13-19 所示。當得到其組件的內容時,設置起來就非常簡單。
IKRP 解算器僅計算末端受動器的位置值,而忽略了末端受動器的旋轉值。通過 IKRP 解算器旋轉的關節,其旋轉方式是關節的 Y 軸是平的、 X 軸指向骨頭中心、 Z 軸垂直于彎曲方向。這是建立關節的默認局部方向坐標,如果沒有看到旋轉圓面,則可以執行末端受動器并按 F 鍵顯示 Show Manipulator 工具。
沿著關節彎曲方向的平面由平面指示器顯示,平面作為關節鏈平面。用旋轉 IK 鏈的扭曲圓平面可以繞手柄矢量旋轉該平面。相對于由手柄矢量和極矢量創建的參考面可以測出 Twist 度,該參考面可以被移動且可以作關鍵幀。
圖 13-18 建立骨骼 圖 13-19 IK 手柄
注意:
有時,手臂彎曲的方式會引起 IK 鏈與默認參考平面設置相互轉換,為了避免這種轉換,可以調整極矢量或作極矢量動畫。
使用 IKRP 手柄的好處在于能比較精確地控制 IK 鏈的旋轉,缺點在于必須處理較多的組件。
使用 IKSC 手柄
IK SC 手柄比 IK RP 手柄要簡單些,下面 介紹如何使用 IK SC 手柄。具體操作步驟如下:
(1) 首先進入側視圖并另畫一條簡單的關節鏈。
(2) 執行 Skeleton → IK Handle Tool 命令,如圖 13-20 所示進行沒置,然后關閉該對話框。
圖 13-20 設置 IK SC 手柄
(3) 單擊第 1 個關節,然后單擊最后一個關節,可以看到 IKSC 手柄了。
(4) 執行 Rotate 并旋轉 IK 手柄發現這似乎只對局部 X 和 Y 旋轉手柄有效,且釋放手柄后它們又回到一定的角度。
而要按 F 鍵顯示 Show Manipulator 工具,那么將什么也看不到,因為 IKSC 手柄沒有額外的控制器 —— 所有的東西都是由 IK 手柄所控制。 IKSC 解算器計算末端受動器的旋轉值并以一定的方式旋轉 IK 鏈,其中一定的方式是指在鏈中的所有關節都有默認的局部方向。盡管在手柄中看不到任何有關關節鏈平面的表示,但關節鏈平面確實存在于 IKSC 解算器中。作為 IKSC 手柄,該平面通過關節鏈,這樣 X 和 Y 軸正位于平面上,如圖 13-21 所示。
圖 13-20 一個 IKSC 手柄
對于 IKSC 手柄,在 Attribute Editor 中,如果有兩個或兩個以上鏈相重疊時, IKSC 就會有一個 Priority 賦值。 Priority 1 設置的手柄將首先旋轉鏈中的關節,然后 Priority 2 設置的手柄將旋轉手柄的關節,依次類推。 Po Weight 設置決定了手柄的位置和方位權重,如果權重為 1 ,那么末端受動器將僅獲得手柄的位置;如果權重為 0 ,那么末端受動器將僅獲得手柄的方位。一般應將這個設置設為默認值 1 。
使用 IKSC 手柄的優勢是只需要使用末端受動器來控制 IK 鏈即可。在位置上不需要大量的 IK 鏈旋轉,這對動畫來說是很有效的方法。
使用 IKSC 手柄旋轉 IK 鏈時,可以用 Graph Editor 交互調整旋轉值。用這種方法可以產生預定結果。
在正向運動和反向運動學間的切換
Maya 允許用戶在用 IKRP 、 IKSC 手柄和旋轉關節 ( 正向動力 ) 之間來回切換。下面以 13.3.6 小節中創建的 IKSC 手柄為例介紹這項技術。具體操作如下:
(1) 進入第 1 幀并打開 Auto Key 按鈕。若沒有這個設置,制作過程將變得非常麻煩。
(2) 給 IK 手柄作關鍵幀,移動到第 10 幀并平移 IK 手柄,此時會自動設置另一個關鍵幀。
(3) 在 Attribute Editor 窗口中取消選中 Solver Enable 復選柜,以局部地關閉這個 IK 手柄的 IKSC 解算器。
(4) 選擇 IK 鏈中的兩個關節并給它們作關鍵幀,然后進入第 20 幀并旋轉關節,再進入第 30 幀并重復操作。
(5) 再次 IKSC 手柄在 Attribute Editor 對話框中選中 Solver Enable 復選框以打開 IKSC 解算器。這時 IK 手柄在定義關鍵幀的關節處為第 20 幀和第 30 幀獲取了關鍵幀。
為了使切換能夠得以實現,需要在 Attribute Editor 對話框中打開 IK 手柄的 Snap 設置并關閉 Stickiness 。如果 Snap 被關閉或 Stickiness 被打開,那么在關節旋轉時 IK 手柄將不會捕捉到末關節。
在反向和正向連接運動間來回切換還應注意由關節旋轉產生的運動和末端受動器的相應關鍵幀不會始終都匹配。它們大致會一致,但也許需要扭轉末端受動器的動畫制作。
提示:
如果創建的關節鏈在一條直線上, IKSC 或 IKPR 解算器不能計算和彎曲該關節鏈。在解決該問題時,首先要旋轉子關節使該關節鏈成一定的角度 —— 即使是一個很小的角度。然后對關節應用 Skeleton → Set Prefered Angle 。刪除這個已存在的 IK 鏈并創建一個新鏈。 IKSC 或 IKPR 解算器便可以彎曲該關節鏈了。
骨骼制作標志著用戶已進入到高級特征動畫制作的領域,在 Maya 中使用骨骼比較容易,但也有可能變得復雜。在我們為骨骼制作動畫之前,首先要了解動力學的一些屬性,這對于制作好的骨骼動畫至關重要。
使用 IK Spline 手柄
盡管與 IKRP 、 IKSC 手柄在屬性上相似,但 IK Spline 手柄在作用方式上卻與它們不一樣。 IK Spline 解算器以一條 NURBS 曲線作為其手柄的一部分,并且隨著曲線的形狀旋轉 IK 鏈。 NURBS 曲線的 CV 被作成了動畫,而不是手柄的末端受動器轉成動畫。對于制作諸如尾巴、脊柱、蛇或觸須等類似的曲線型或扭曲型動畫時, IK 曲線手柄非常理想。 C IK Spline 手柄來作動畫的具體操作步驟如下:
(1) 在側視圖中建立一個關節鏈,如圖 13-22 所示。對于 IK Spline 手柄,關節不必作成一定的角度,但骨頭應該短一些,以確保鏈會平滑地移動。
(2) 執行 Skeleton → IK Spline Handle Tool 命令,并執行 Number of Spans 4 ,其他的選項保持為默認設置并關閉對話框。
(3) 單擊頂部關節,然后單擊最后一個關節,可以看到 IK Spline 手柄,如圖 13-23 所示。
(4) 在 Outliner 中窗口,執行關節鏈或者 IK 手柄,并試著移動關節。這時關節已連接到曲線上,而且 IK 手柄并不顯示操縱器。
(5) 顯示 CV 并將它們在附近移動一下,如圖 13-24 所示。
圖 13-22 建立曲線骨骼 圖 13-23 建立 IK 手柄
圖 13-24 移動 IK 手柄
也可以創建自己的 NURBS 曲線并使 IK Spline 手柄使用該曲線。在 IK Spline Handle 選項組中取消選中 Auto Create Curve 復選框,然后單擊根部關節和端部關節,再單擊曲線以創建 IK Spline 手柄。
(6) 對 IK 手柄打開 Attribute Editor 對話框。在 Offset 、 Roll 和 Twist 文本框輸入數值。
Offset( 偏置 ) 將關節鏈沿著曲線平移,以 0.0 作為曲線的開始,以 1.0 作為曲線的結束; Roll( 滾轉 ) 則旋轉整個關節鏈; Twist( 扭轉 ) 通常從第 2 個關節處開始扭轉。如果選中 Root Twist Mode 復選框,則扭轉將從根關節開始扭轉。在 Curve 設置上的 Root 將約束根部關節到曲線的開始。把它關掉就可以將根部關節移離曲線,但要注意根部關節還是被約束到曲線。
骨骼可以隨著正向或反向運動學在一個對象的不同部分的動畫進行移動和旋轉。除了 IK 工具外, Maya 在 Animation 模式中還提供了 Constrain 菜單。菜單中的約束與 IK 工具一道用于動畫制作。
以上就是Maya7.0 骨骼動力學之骨骼動畫制作教程,希望大家這篇教程能對大家有所幫助!
新聞熱點
疑難解答