本文轉(zhuǎn)自公眾號:十二只熊
IK即反向運動學(inverse kinematics),通過可位移的手柄控制器,反向描述關(guān)節(jié)鏈中的骨骼旋轉(zhuǎn)。使用IK,可以直接專注于關(guān)節(jié)鏈的最終形態(tài),而不必糾結(jié)于每個關(guān)節(jié)的旋轉(zhuǎn)狀態(tài)。
一、IK結(jié)構(gòu)
IK控制器(手柄),可以僅通過控制器兩端之間的距離、方向,控制某一段關(guān)節(jié)鏈(Joint Chains)中所有骨骼的旋轉(zhuǎn)值,該控制器分為三部分:
起始關(guān)節(jié)(Start Joint)
末關(guān)節(jié)(End Joint)
控制柄(IK Handle)
菜單Skeleton - Create IK Handle,切換到IK控制器創(chuàng)建模式,分別點擊需要操控的關(guān)節(jié)鏈的首尾兩端的骨骼關(guān)節(jié),即可為當前關(guān)節(jié)鏈創(chuàng)建IK控制器。

解算器(ikXXsolver)節(jié)點
IK系統(tǒng)的實際運行中,是由IK解算器根據(jù)末端效應器(ikEffector)的位置、方向,從而最終解算并應用IK控制的關(guān)節(jié)鏈中各個關(guān)節(jié)的旋轉(zhuǎn)。
根據(jù)不同的關(guān)節(jié)鏈形式,Maya支持以下幾種IK解算器類型:
單鏈IK:Single Chain IK solver (ikSCsolver)
旋轉(zhuǎn)平面IK:Rotate Plane IK solver (ikRPsolver)
樣條IK:Spline IK solver (ikSplineSolver)
人體IK:Human IK solver (hikSolver)
效應器(ikEffector)節(jié)點
骨骼層級關(guān)系中,效應器一般與IK關(guān)節(jié)鏈中的末端關(guān)節(jié)同級,所以稱為末端效應器,該效應器的位置屬性被末端骨骼的Translate屬性所控制,間接的受IK控制器移動手柄的影響。
效應器的位置就是IK鏈末端的最終位置,為解算器提供解算信息。
控制柄(ikHandle)
控制柄即視圖中所顯示的 十字手柄以及連接到骨骼上的柄干部分:
選中控制柄,右鍵調(diào)出熱盒菜單,Disable ikHandle和Enable ikHandle可以禁用和開啟控制柄的影響。
決定關(guān)節(jié)鏈中的骨骼的整體旋轉(zhuǎn)方向的向量等屬性即可在ikHandle節(jié)點的屬性面板中修改。
注意:官方文檔建議,使用IK控制器時,目標關(guān)節(jié)鏈中的各個關(guān)節(jié)最好提前調(diào)節(jié)好基礎的彎曲程度,這樣控制器能夠更輕便地識別彎曲方向。
創(chuàng)建方式
一般IK控制器的創(chuàng)建方式,都是執(zhí)行Create IK 相關(guān)命令,使鼠標光標進入IK創(chuàng)建模式,然后點擊目標起始、末端關(guān)節(jié),指定當前的IK關(guān)節(jié)鏈。Maya會自動創(chuàng)建并連接相關(guān)的必要節(jié)點(如上所述的節(jié)點類型)。
二、解算器類型
文檔建議:對只有2-4個關(guān)節(jié)的關(guān)節(jié)鏈,使用單鏈IK或旋轉(zhuǎn)平面IK;對于較長的關(guān)節(jié)鏈(如蛇類的骨骼),則最好使用樣條IK。
默認情況下,如果創(chuàng)建多個相同類型的IK控制柄,則它們就會共享同一個解算器節(jié)點,如果想要單獨針對某個控制柄修改解算器,則可以使用Mel命令另外創(chuàng)建新的解算器節(jié)點。
createNode ikSCsolver;
對于單鏈和旋轉(zhuǎn)平面,都可以通過菜單命令——Create IK Handle的創(chuàng)建選項面板中的設置,選擇當前所創(chuàng)建的完整IK控制系統(tǒng)是基于單鏈解算器還是旋轉(zhuǎn)平面解算器,從而決定最終創(chuàng)建哪個解算器節(jié)點:
已創(chuàng)建的ikHandle節(jié)點的屬性面板中,仍可以修改解算器,從而相應創(chuàng)建另一類解算器,用于切換連接當前選擇的解算器節(jié)點:
單鏈IK(Single Chains)
創(chuàng)建途徑:菜單-Skeleton-Create IK Handle-口 創(chuàng)建選項-Current Solver選項面板:選擇創(chuàng)建基于單鏈IK的控制系統(tǒng)。
關(guān)聯(lián)了單鏈IK解算器的IK十字手柄,其位移和旋轉(zhuǎn)可以分別影響關(guān)節(jié)鏈的整體彎曲程度和彎曲方向。
也就是說,除了手柄的位移可以操控關(guān)節(jié)鏈的彎曲,手柄的旋轉(zhuǎn)也可以操控關(guān)節(jié)鏈的彎曲方向。
旋轉(zhuǎn)平面IK(Rotate Plane)
創(chuàng)建途徑——
菜單-Skeleton-Create IK Handle-口 創(chuàng)建選項-Current Solver選項面板:選擇創(chuàng)建基于旋轉(zhuǎn)IK的控制系統(tǒng)。
關(guān)聯(lián)了旋轉(zhuǎn)IK解算器的IK十字手柄,僅可以通過其位移影響關(guān)節(jié)鏈的整體彎曲程度,但其旋轉(zhuǎn)不會影響關(guān)節(jié)鏈的彎曲方向。
Pole Vector
在基于該解算器的IK系統(tǒng)中,關(guān)節(jié)鏈的彎曲方向是通過ikHandle節(jié)點屬性面板中的極向量(Pole Vector)參數(shù)控制的:
最終得到的“極坐標向量”,是以IK關(guān)節(jié)鏈的起始關(guān)節(jié)的位置為極坐標中心,以面向 末端關(guān)節(jié)方向的面片為極坐標平面(也就是旋轉(zhuǎn)平面Rotate Plane),通過Pole Vector參數(shù)定義的三維向量 在 旋轉(zhuǎn)平面(Rotate Plane)上的投影,得到的結(jié)果向量:
該向量在旋轉(zhuǎn)平面上的方向,即決定著IK關(guān)節(jié)鏈中的所有關(guān)節(jié)的彎曲方向。
極向量的三維方向也決定著ikHandle的移動范圍——一旦ikHandle的方向與極向量所指方向之間的角度達到180°,或大于180°時,則會發(fā)生重置方向的旋轉(zhuǎn):
Twist——
用于在極坐標向量決定的方向基礎上,重新定向。
關(guān)節(jié)鏈平面(Joint Chain Plane)
關(guān)節(jié)鏈平面,是一個有方向的抽象面片,以IK起始端到末端位置做為面片的長度和方向的參考,以極向量在旋轉(zhuǎn)平面上的方向做為面片寬度上的朝向。操縱極向量時,實際上就是在操控關(guān)節(jié)鏈平面,直接決定關(guān)節(jié)鏈的彎曲方向。

操作相關(guān)——
選中IK手柄,快捷鍵T切換至操縱器模式,可以單擊IK末端的旋轉(zhuǎn)盤,拖動調(diào)整極坐標方向:


樣條IK(Spline)
Spline IK控制器通過Nurbs曲線控制關(guān)節(jié)鏈的整體彎曲。
注意——
1 - 樣條IK無法直接操控IK控制手柄的位置,只能通過操控曲線的頂點,控制關(guān)節(jié)鏈的形態(tài)。
2 - 創(chuàng)建樣條IK控制之前,最好使骨骼關(guān)節(jié)的坐標軸向和場景的世界坐標對齊。

創(chuàng)建曲線
自動創(chuàng)建:
執(zhí)行Skeleton - Create IK Spline Handle命令的工具設置面板:
Auto Create Curve:默認勾選,自動根據(jù)骨骼走勢創(chuàng)建Nurbs曲線。
Number of spans:用于指定自動創(chuàng)建的曲線的細分點數(shù)量。
手動創(chuàng)建:
首先,手動繪制NURBS曲線(最好避免出現(xiàn)急彎)。然后執(zhí)行Skeleton - Create IK Spline Handle命令的工具設置面板:
Auto Create Curve:取消勾選。
先后選中起始關(guān)節(jié)、末端關(guān)節(jié),最后再選中手動繪制的曲線即可。
操控曲線
創(chuàng)建由曲線控制的樣條IK系統(tǒng)后,即可以通過操控曲線的細分頂點,控制IK關(guān)節(jié)鏈的整體形態(tài)。
為方便操作,需要為曲線的頂點添加Cluster變形器,一般情況下為幾何對象添加Cluster時,需要選中三維對象的組件(Components),然后執(zhí)行Deform菜單下的Cluster命令添加1個Cluster控制器;對于曲線,則可以直接選中曲線,執(zhí)行Select菜單下的Cluster Curve,該命令會為當前選中曲線的每一個點批量創(chuàng)建對應的Cluster。
骨骼翻滾(旋轉(zhuǎn))
選中IK控制柄,快捷鍵T,會在關(guān)節(jié)鏈的首尾兩端出現(xiàn)控制旋轉(zhuǎn)的兩個旋轉(zhuǎn)圓環(huán),可以單擊選中,并直接拖動旋轉(zhuǎn),這兩個圓環(huán)分別對應ikHandle節(jié)點的Roll和Twist參數(shù)。
Root控制點
其中起始關(guān)節(jié)處的旋轉(zhuǎn)圓環(huán)中心位置,有一個控制點,該控制點對應ikHandle節(jié)點的Offset參數(shù),可以使關(guān)節(jié)鏈在曲線上整體偏移:

https://help.autodesk.com/view/MAYAUL/2022/ENU/?guid=GUID-390788DB-527D-4EE5-A8DC-B99BE2D4861F
全文完
《哪吒2》再發(fā)威,都沖上日票房第二了?!
賤賤的狐貍耍劍
熱門跟貼