本文轉(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控制器。

打開網(wǎng)易新聞 查看精彩圖片

解算器(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):

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

Twist——

用于在極坐標向量決定的方向基礎上,重新定向。

關(guān)節(jié)鏈平面(Joint Chain Plane)

關(guān)節(jié)鏈平面,是一個有方向的抽象面片,以IK起始端到末端位置做為面片的長度和方向的參考,以極向量在旋轉(zhuǎn)平面上的方向做為面片寬度上的朝向。操縱極向量時,實際上就是在操控關(guān)節(jié)鏈平面,直接決定關(guān)節(jié)鏈的彎曲方向。

打開網(wǎng)易新聞 查看精彩圖片

操作相關(guān)——

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

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

樣條IK(Spline)

Spline IK控制器通過Nurbs曲線控制關(guān)節(jié)鏈的整體彎曲。

注意——

1 - 樣條IK無法直接操控IK控制手柄的位置,只能通過操控曲線的頂點,控制關(guān)節(jié)鏈的形態(tài)。

2 - 創(chuàng)建樣條IK控制之前,最好使骨骼關(guān)節(jié)的坐標軸向和場景的世界坐標對齊。

打開網(wǎng)易新聞 查看精彩圖片

創(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é)鏈在曲線上整體偏移:

打開網(wǎng)易新聞 查看精彩圖片

https://help.autodesk.com/view/MAYAUL/2022/ENU/?guid=GUID-390788DB-527D-4EE5-A8DC-B99BE2D4861F

全文完

《哪吒2》再發(fā)威,都沖上日票房第二了?!

賤賤的狐貍耍劍