摘 要:Maya動畫模塊普遍被認為是一個趣味性較強,學起來比較直觀的一個模塊,其中骨骼綁定是Maya動畫模塊中一個比較重要的知識點,本文通過例舉一個綁定的實例來了解骨骼綁定過程中所要注意的一些實際問題。
關鍵詞:骨骼綁定
中圖分類號:R738文獻標識碼:A文章編號:1674-098X(2011)07(a)-0233-01
1 建立骨骼、Ik線
在準備給一個模型建立骨骼之前,要先看它是否有垃圾,刪除垃圾跟歷史。其次,如果物體不是在方向軸的中央時,要把物體移到正中央,因為后面綁骨骼時會需要用到。移動好物體之后就凍結一下屬性。選中物體,在maya的右下方找到層建立窗口,新建一個laver,然后按右鍵add selected Object一下物體,再選擇T的形式,就可以開始建骨骼了。在Animation狀態下,選擇里面的Skeleton菜單下的Joint tool后面的小方格,在出現的對話框里,一般選擇xyz的方式建骨骼,如果是腿的可以選擇none的形式。兩種形式都可以嘗試,建立兩種骨骼,用兩種形式對比可加深對這個命令的理解。在xyz的形式下,x軸是永遠向下一節骨骼方向的。而在none的情況下,x軸始終跟透視圖的xyz一致。建立第一根骨骼時要注意位置。然后建立骨骼。建立后,把骨骼移到相應的位置,按D來移動,這個可以應用在腳骨骼的建立上,但是在手骨骼的建立上,不用D來進行移動,因為骨骼剛開始建立的時候除了第一節骨,其他的都只有x軸上有數值,而當用D移動了骨骼之后,其它的軸就會出現數值,這對后面的一些例如拉伸會產生問題。建立完骨骼之后就可以設置ik了,選擇Skeleton菜單下Ik Handle Tool后方格對話框,對話框里會出現建立IK的兩種形式ikRPsolver和ikSCsolver。建立腳的時候我們可以選擇ikRPsolver,因為手肘和膝蓋要用極向量控制,而ikSCsolver是不行的。sticky可以勾選,也可以不勾選。具體的骨骼ik綁定就在腳的上部和腳踝處建立一條ik,腳踝和腳中間一個ik,腳中間和腳尖一個ik。在建立身體的骨骼時,從下往上建立,真人模型不需要太多節骨骼,但在頸部的地方必須建立一個骨骼,用來控制頭部的運動。建立身體骨骼時,骨骼的位置最好根據人運動的規律來建立,例如彎腰,向后仰。建立完身體骨骼后,打開大綱面板進行命名。選擇腳的骨骼和身上的骨骼,P一下。手部骨骼的建立很容易出錯,不可以用D來建立,可以用cv curve里面的linear曲線,在前視圖建立從手臂一直到手腕的點,調整好curve曲線的位置,如圖4所示。然后把它的點顯示出來,在Display菜單里選擇Nurbes后面的CVs并點擊它,骨骼就可以順利的吸附到它上面。因為人的胸腔也有一節骨,所以再建立多一個curve的點,在建立curve的時候,手臂和手腕之間在前視圖最好保持成一條直線,在俯視圖中又能看到另一個curve點,因為后面如果要進行ik、fk轉換的話,如果在前視圖不是直線就會出現問題。在手肘與手腕中間,再插入一段骨骼,這是為了旋轉手腕的時候手上的皮膚可以跟著一起轉,達到自然的效果。建完之后,把手上的骨骼和胸腔前的那個骨點P一下。命名對于骨骼綁定很重要,建議學習者都有自己的一套骨骼命名方式。在建立手指上的骨骼時,先把模型變成線的模式,選擇手指的一個面的點新建一個cluster,手指面中間出現一個c的符號,每個手指都有四根骨骼,但拇指的第一根位置放在了虎口的上面,選擇所有手指跟手腕的那根骨骼P一下。在手臂與手腕之間再插入一段骨骼,因為手臂旋轉是手腕旋轉的70%,所以要添加一節骨骼給它。建立手ik的時候要注意,設置IK形式是ikRPsolver,把sticky去掉。
2 打組
打組是初學者的難點,這里有很多需要理解的地方。Ik不用命名,只要把它的組命名就行。首先選擇腳踝與腳中間的一個骨骼的ik打組,然后把中心移到腳中間的骨骼上。前腳的兩個ik也打一個組,再把前面兩個組打成一個組。然后把那個組的中心,移動腳尖。再在原來的基礎上打一個組,可以再打一個組,中心放到腳的中間控制腳部的左右翻轉。
3 添加控制器
選擇create菜單下的CV工具中的Linear屬性,建議使用controlMake插件,在綁定里面,這個插件很好用。打開之后直接復制它的命令,用打開,先清除歷史,然后復制在面板上,再直接拖動到工具箱上面就可以了。點擊工具欄上的mel就會出現control make的對話框。這里面有方向約束、點約束、控制器的顏色選擇、控制控制器大小的選擇。然后就生成了一個 Nurbs Cube,也就是控制器。這樣做起來很方便。這里值得注意的是要習慣的把控制器刪除歷史和凍結屬性。(如圖1)
4 驅動
4.1 腳部驅動
每建立一個驅動就按add,因為直接按ok,這個對話框就會不見。首先把控制器加載到diver里,選中控制器,按load diver,再把ankle加載進driven。選中之后,在0的狀態下key一下,然后再調整ankle與rotate x,在他們最小值0以及最大值的情況下都要key禎。這些基本是一樣的做法,只是數值不同,driver里面最大、小的數值就是之前建立add Attribute時所輸入的數值。關于rotate的數值根據實際人骨骼運動所能轉動的大小而定。
4.2 手部驅動
手部的綁定是難度最大的。首先新建一個控制器做左手,在復制一個做右手。先選擇手的骨骼,然后再選擇控制器,這樣就可以吸附到骨骼上了,當然,也可以直接V過去。然后把outline里面的這兩個組刪掉。再在組上面匹配它的大小。還需要把組上面的scale屬性進行凍結。然后把兩個ik P給控制器,這兩個ik的作用就是控制它旋轉。這樣就可以省去為這個控制器進行旋轉約束了。我們在為手肘做一個極向量約束。每新建一個控制器,都得命名一下,養成良好的習慣。刪除歷史、凍結一下。觀察一下,它們是否在同一條直線上,只有這樣,它在添加極向量約束的時候才不會跳動。這樣就做好了手肘的極向量約束。