【Maya Rigging Fundamentals】Part1~Part7筆記 (IK Arm, IK Leg+ Reverse Foot完整作法)

【Maya Rigging Fundamentals】Part1~Part7筆記 (IK Arm, IK Leg+ Reverse Foot完整作法)

 




這是一個在Youtube上非常棒的頻道,對於想要學習Maya Rigging的人來說絕對不可錯過!


就是---------- antCGI !! 


裡面有非常詳細的從無到有Rig角色的影片,解說淺顯易懂,圖文豐富,想要學習Rigging卻不知從何下手的人非常推薦!!!


-----------------------------------------------------------------------------------------------------------------------------

【如果想知道如何使用Advanced Skeleton Body Rig可以看這篇!】

【如果想知道如何使用Advanced Skeleton Facial Rig可以看這篇!】

-----------------------------------------------------------------------------------------------------------------------------



以下是看完了Fundamentals Part1~Part7的筆記!!

個人覺得有幾點非常值得記錄下來:



  • Rotate Order原理
  • Joint Orient Tool用法
  • 反轉Joints階層
  • Symmetry Joints工具
  • Joint Rotate Axis與Transform不同步時解法
  • IK Arm完整的製作
  • IK Leg+Reverse Foot完整製作
  • Control Tag功能
  • Combine Curve







Rotate Order原理



Rotate order是有關Joint旋轉軸向優先順序的演算法(? 總之就是決定XYZ哪個軸向優先層級最高!

在開始之前先隨便創建一個Joint,然後旋轉方式選擇Gimbal。








接著開始旋轉!!

如下圖,可以發現旋轉Z軸時(藍色),其他兩個軸向也會跟著動,而旋轉Y軸時(綠色),就只有X軸會跟著動,而旋轉X軸時(紅色)其他兩軸都不會被影響!

這是因為現在的Rotate Order設定在XYZ模式,這代表最右邊的Z軸是層級最高的軸向,Y軸次之,X軸最末,也因此會得到這樣的結果!

通常預設就會是XYZ模式,而這個模式也是最適合拿來做四肢的模式!













Joint Orient Tool用法



在製作Rig時,最重要的就是Joint的軸向,因為它關係到之後所有控制器的軸向,也會影響Animators在調動作的順暢度;而在MAYA裡面有一個非常好用的工具可以讓我們確保每個Joint都有保持正確的軸向!


如下圖,左邊是錯誤或者說不正確的Joint軸向,因為照理說每個Joint應該都要跟指向下一個Joint的方向,這樣控制器才會有正確的軸向,就像右邊的joint,每個joint都確實指向了下一個層級Joint!

那麼要如何透過工具一鍵完成呢?







收先選擇最上層的Joint,然後到Skeleton------->Joint Orient ,選項保持預設,或者你有特定的需求也可以設定,確定兩個選項都有打勾,然後按下Apply! 瞬間就完成了Joint轉向!

這時我們可以發現尾巴的Joint並沒有跟著轉向,所以這時我們要把Orient Joint To World打勾,然後單獨選擇它按下Apply,就完成了! 現在整個Joint Chain都擁有了正確的軸向,非常方便!!














反轉Joints階層


當我們架完了Joint,有時會想要反轉整個階層,這時如果一個一個去移動Joint就太費時了,所幸MAYA也有一個可以快速反轉Joint的工具!


先選擇尾端的Joint,再到Skeleton------------->Reroot Skeleton就完成了!!!!













Symmetry Joints工具


在製作Skeleton時也可以打開鏡射功能,讓工作效率加速!! 說實話我也是第一次知道原來Joint也有這個功能!!!


我們可以看到不只在拉Joint的當下鏡射,就連後續微調也會一併鏡射過去!!!

完成之後記得到另一邊Joint底下把多餘的Constraint刪除!!!









Joint Rotate Axis與Transform不同步時解法


有時候我們會發現joint旋轉的軸向跟位移軸向不一致,這可能會導致之後再調動作出現問題,至於為什麼會發生這種事,是因為我們可能在製作過程中不小心動到了什麼,總之是個滿常會遇到的狀況!


如下圖,我們可以發現在Joint Attribute面板裡面的 Rotate Axis並沒有歸零!! 按照預設應該是不能有任何數值的!!







解法很簡單!! 只要在MEL欄位輸入 joint -e -zso就可以將其歸零了!! 軸向瞬間恢復正常!








IK Arm完整的製作



IK Arm可以說是Rig裡面最基礎的架構,所有角色的Rig必定都會包含這個功能!
底下會記錄如何從無到有完整地製作出可使用的IK Arm Rig!


首先,先做好肩膀、手肘、手腕結構,並且確認軸向都沒有問題!







接著選取Create IK Handle,然後先選第一個joint,再選最後,按下enter就完成了,現在只要移動IK Handle就可以有完整的效果!









接著我們簡單做一個控制器,軸向要跟手腕一致,暫且不要將他constraint到任何joint上。


然後我們把IK Handle丟進這個控制器,現在我們就可以透過控制器移動整隻手臂了,接著再使用控制器 Orient Constraint Wrist Joint,就可以得到旋轉效果!!! 







手臂完成之後,我們需要再幫手肘也加上控制器,這樣能讓整個Rig有更多的自由度!


一樣確認這個控制器軸向跟手肘joint一致,然後選擇它 pole vector constraint到IK Handle上!!


現在我們不只可以控制手腕的位置,也可以控制手肘指向的位置!!!


到此整個IK手臂就算是完成了!!!





IK Leg+Reverse Foot完整製作


IK Leg製作方式就跟Arm差不多,但是多了一個Reverse Foot的手續,有點複雜!!


首先一樣照著IK ARM的製作方式做了IK leg以及Pole Vector Constraint!





接著從Ankle的部分複製出一組Joint。 這組就當我們的Reverse Foot Joint。

接著複製一個新的ToesEnd當作腳踝,移動到腳踝位置,然後把它parent回去ToesEnd,接著再Reverse 整個階層,現在我們就可以靠著這個Reverse Foot做出類似腳掌前凹、墊腳的各種動作了!





接下來我們把Reverse Joint移動到Ankle 控制器底下!





然後,我們回到IK Leg Joint這邊,從Ankle開始到Toes End加上兩個IK Handle,這邊要注意的是Current Solver 那邊要選擇Single Chain Solver,然後Ankle到Toes,Toes到ToesEnd總共做兩次!


接著把這兩個IK Handle丟回相對應位置的Reverse Joint那邊!


然後我們現在移動IK Ankle控制器就可以發現已經可以做出腳掌往下垂的動作了!





在進入最後階段之前,我們還要做一件事,就是把原本IK Leg的Handle丟到Reverse Ankle Joint底下,這樣一來我們只要旋轉Rever Joint就可以做出各種額外的動作!







現在我們需要在Reverse Joint上面創建兩個Group,是為了做出腳踝內翻、外翻的效果!






接著我們移動這兩個Group的軸心,先按D,然後就可以調整他們的軸心位置,一個移到腳踝外側,一個移動到內側,現在旋轉Group就可以做出內外翻的感覺了!







再回到剛剛在IK Ankle Joint上做的兩個Ik Handle,我們把ToesEnd這個Group起來,然後移動軸心到Toes的位置上,這樣就可以透過Group來做處腳掌彎取的動作!







最後一步,我們要將剛剛在Reverse Joint上的東西透過數值串聯起來,讓Animator可以透過他們去控制這些東西!!

首先,先在IK Ankle 控制器上新增Attribute! 使用Float,但不用限定最大跟最小值!





首先,先Connect Heel Twist到IK_Reverse_ToedENd_L上,這就可以做出以腳踝為中心旋轉的動作!






接下來是Toe Twist connect到IK_Reverse_ToedENd_L上!








最後把Toe Tap connect到IK_Reverse_Toe_Tip這個Group上就完成了!







當然,還有腳踝內翻外翻的部分! 這邊要使用的是Node Editor 的condition 節點!

串法並不複雜,只是要熟悉哪邊接到哪邊! 要注意的地方是Input一個是If True R另一個是If False G,output也一樣。




那麼,最後真的來到最後一個步驟就可以完成IK LEG的製作了!


我們還要在控制器上加上一個Roll的數值!!!

這次我們要設定最大跟最小值,給它正十負十!





接著使用Driven key來驅動這三根Joint。





首先,新增Roll到IK Ankle控制器上,然後使用它作為Driven key的Driver。


這邊的Joint最後一個跟其他的軸向都不一樣,是過程中沒有檢查到.....所以在做Driven key時才需要Z軸Y軸切換,正常情況應該只要動Z軸就好了.....






再把腳踝後弓的加上去就真的完成了!!!



至此,就是一個基本的IK LEG完整流程!!!







Control Tag功能


這是一個滿特別的功能,可以讓控制器在滑鼠範圍內才出現,還有一個是可以透過Parent功能直接用方向鍵選取上層的控制器(一班來說控制器上層都會是Group)!







Combine Curve


最後介紹的是Combine curve的用法,有時候我們會想要自己做控制器,進而結合很多curve線,這時就會用到一些指令了!


假設現在我們要將下圖兩個curve合而為一!





先到outliner打開SHAPE,然後選擇其中一個curve線的shape,接著選另一個的group,然後執行 MEL : parent -s -r 

就完成了!!!! 現在兩個curve已經合體完畢。






如果覺得這篇文章有幫助你在動畫之路走得更長遠,可以使用 Google 或 Facebook 帳號快速登入,按Like五下,就可以幫助我從Likecoin得到回饋,完全不用任何費用! 一點點的鼓勵都會成為我寫作的動力,感激不盡!



 






張貼留言

0 留言