反向運動學
使用 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 weig
[1] [2] 下一頁
|
新聞熱點
疑難解答