本文轉(zhuǎn)自公眾號(hào):十二只熊
IK即反向運(yùn)動(dòng)學(xué)(inverse kinematics),通過可位移的手柄控制器,反向描述關(guān)節(jié)鏈中的骨骼旋轉(zhuǎn)。使用IK,可以直接專注于關(guān)節(jié)鏈的最終形態(tài),而不必糾結(jié)于每個(gè)關(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)建模式,分別點(diǎn)擊需要操控的關(guān)節(jié)鏈的首尾兩端的骨骼關(guān)節(jié),即可為當(dāng)前關(guān)節(jié)鏈創(chuàng)建IK控制器。
解算器(ikXXsolver)節(jié)點(diǎn)
IK系統(tǒng)的實(shí)際運(yùn)行中,是由IK解算器根據(jù)末端效應(yīng)器(ikEffector)的位置、方向,從而最終解算并應(yīng)用IK控制的關(guān)節(jié)鏈中各個(gè)關(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)
效應(yīng)器(ikEffector)節(jié)點(diǎn)
骨骼層級(jí)關(guān)系中,效應(yīng)器一般與IK關(guān)節(jié)鏈中的末端關(guān)節(jié)同級(jí),所以稱為末端效應(yīng)器,該效應(yīng)器的位置屬性被末端骨骼的Translate屬性所控制,間接的受IK控制器移動(dòng)手柄的影響。
效應(yīng)器的位置就是IK鏈末端的最終位置,為解算器提供解算信息。
控制柄(ikHandle)
控制柄即視圖中所顯示的 十字手柄以及連接到骨骼上的柄干部分:
選中控制柄,右鍵調(diào)出熱盒菜單,Disable ikHandle和Enable ikHandle可以禁用和開啟控制柄的影響。
決定關(guān)節(jié)鏈中的骨骼的整體旋轉(zhuǎn)方向的向量等屬性即可在ikHandle節(jié)點(diǎn)的屬性面板中修改。
注意:官方文檔建議,使用IK控制器時(shí),目標(biāo)關(guān)節(jié)鏈中的各個(gè)關(guān)節(jié)最好提前調(diào)節(jié)好基礎(chǔ)的彎曲程度,這樣控制器能夠更輕便地識(shí)別彎曲方向。
創(chuàng)建方式
一般IK控制器的創(chuàng)建方式,都是執(zhí)行Create IK 相關(guān)命令,使鼠標(biāo)光標(biāo)進(jìn)入IK創(chuàng)建模式,然后點(diǎn)擊目標(biāo)起始、末端關(guān)節(jié),指定當(dāng)前的IK關(guān)節(jié)鏈。Maya會(huì)自動(dòng)創(chuàng)建并連接相關(guān)的必要節(jié)點(diǎn)(如上所述的節(jié)點(diǎn)類型)。
二、解算器類型
文檔建議:對只有2-4個(gè)關(guān)節(jié)的關(guān)節(jié)鏈,使用單鏈IK或旋轉(zhuǎn)平面IK;對于較長的關(guān)節(jié)鏈(如蛇類的骨骼),則最好使用樣條IK。
默認(rèn)情況下,如果創(chuàng)建多個(gè)相同類型的IK控制柄,則它們就會(huì)共享同一個(gè)解算器節(jié)點(diǎn),如果想要單獨(dú)針對某個(gè)控制柄修改解算器,則可以使用Mel命令另外創(chuàng)建新的解算器節(jié)點(diǎn)。
createNode ikSCsolver;
對于單鏈和旋轉(zhuǎn)平面,都可以通過菜單命令——Create IK Handle的創(chuàng)建選項(xiàng)面板中的設(shè)置,選擇當(dāng)前所創(chuàng)建的完整IK控制系統(tǒng)是基于單鏈解算器還是旋轉(zhuǎn)平面解算器,從而決定最終創(chuàng)建哪個(gè)解算器節(jié)點(diǎn):
已創(chuàng)建的ikHandle節(jié)點(diǎn)的屬性面板中,仍可以修改解算器,從而相應(yīng)創(chuàng)建另一類解算器,用于切換連接當(dāng)前選擇的解算器節(jié)點(diǎn):
單鏈IK(Single Chains)
創(chuàng)建途徑:菜單-Skeleton-Create IK Handle-口 創(chuàng)建選項(xiàng)-Current Solver選項(xiàng)面板:選擇創(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)建選項(xiàng)-Current Solver選項(xiàng)面板:選擇創(chuàng)建基于旋轉(zhuǎn)IK的控制系統(tǒng)。
關(guān)聯(lián)了旋轉(zhuǎn)IK解算器的IK十字手柄,僅可以通過其位移影響關(guān)節(jié)鏈的整體彎曲程度,但其旋轉(zhuǎn)不會(huì)影響關(guān)節(jié)鏈的彎曲方向。
Pole Vector
在基于該解算器的IK系統(tǒng)中,關(guān)節(jié)鏈的彎曲方向是通過ikHandle節(jié)點(diǎn)屬性面板中的極向量(Pole Vector)參數(shù)控制的:
最終得到的“極坐標(biāo)向量”,是以IK關(guān)節(jié)鏈的起始關(guān)節(jié)的位置為極坐標(biāo)中心,以面向 末端關(guān)節(jié)方向的面片為極坐標(biāo)平面(也就是旋轉(zhuǎn)平面Rotate Plane),通過Pole Vector參數(shù)定義的三維向量 在 旋轉(zhuǎn)平面(Rotate Plane)上的投影,得到的結(jié)果向量:
該向量在旋轉(zhuǎn)平面上的方向,即決定著IK關(guān)節(jié)鏈中的所有關(guān)節(jié)的彎曲方向。
極向量的三維方向也決定著ikHandle的移動(dòng)范圍——一旦ikHandle的方向與極向量所指方向之間的角度達(dá)到180°,或大于180°時(shí),則會(huì)發(fā)生重置方向的旋轉(zhuǎn):
→
Twist——
用于在極坐標(biāo)向量決定的方向基礎(chǔ)上,重新定向。
關(guān)節(jié)鏈平面(Joint Chain Plane)
關(guān)節(jié)鏈平面,是一個(gè)有方向的抽象面片,以IK起始端到末端位置做為面片的長度和方向的參考,以極向量在旋轉(zhuǎn)平面上的方向做為面片寬度上的朝向。操縱極向量時(shí),實(shí)際上就是在操控關(guān)節(jié)鏈平面,直接決定關(guān)節(jié)鏈的彎曲方向。
操作相關(guān)——
選中IK手柄,快捷鍵T切換至操縱器模式,可以單擊IK末端的旋轉(zhuǎn)盤,拖動(dòng)調(diào)整極坐標(biāo)方向:
樣條IK(Spline)
Spline IK控制器通過Nurbs曲線控制關(guān)節(jié)鏈的整體彎曲。
注意——
1 - 樣條IK無法直接操控IK控制手柄的位置,只能通過操控曲線的頂點(diǎn),控制關(guān)節(jié)鏈的形態(tài)。
2 - 創(chuàng)建樣條IK控制之前,最好使骨骼關(guān)節(jié)的坐標(biāo)軸向和場景的世界坐標(biāo)對齊。
創(chuàng)建曲線
自動(dòng)創(chuàng)建:
執(zhí)行Skeleton - Create IK Spline Handle命令的工具設(shè)置面板:
Auto Create Curve:默認(rèn)勾選,自動(dòng)根據(jù)骨骼走勢創(chuàng)建Nurbs曲線。
Number of spans:用于指定自動(dòng)創(chuàng)建的曲線的細(xì)分點(diǎn)數(shù)量。
手動(dòng)創(chuàng)建:
首先,手動(dòng)繪制NURBS曲線(最好避免出現(xiàn)急彎)。然后執(zhí)行Skeleton - Create IK Spline Handle命令的工具設(shè)置面板:
Auto Create Curve:取消勾選。
先后選中起始關(guān)節(jié)、末端關(guān)節(jié),最后再選中手動(dòng)繪制的曲線即可。
操控曲線
創(chuàng)建由曲線控制的樣條IK系統(tǒng)后,即可以通過操控曲線的細(xì)分頂點(diǎn),控制IK關(guān)節(jié)鏈的整體形態(tài)。
為方便操作,需要為曲線的頂點(diǎn)添加Cluster變形器,一般情況下為幾何對象添加Cluster時(shí),需要選中三維對象的組件(Components),然后執(zhí)行Deform菜單下的Cluster命令添加1個(gè)Cluster控制器;對于曲線,則可以直接選中曲線,執(zhí)行Select菜單下的Cluster Curve,該命令會(huì)為當(dāng)前選中曲線的每一個(gè)點(diǎn)批量創(chuàng)建對應(yīng)的Cluster。
骨骼翻滾(旋轉(zhuǎn))
選中IK控制柄,快捷鍵T,會(huì)在關(guān)節(jié)鏈的首尾兩端出現(xiàn)控制旋轉(zhuǎn)的兩個(gè)旋轉(zhuǎn)圓環(huán),可以單擊選中,并直接拖動(dòng)旋轉(zhuǎn),這兩個(gè)圓環(huán)分別對應(yīng)ikHandle節(jié)點(diǎn)的Roll和Twist參數(shù)。
Root控制點(diǎn)
其中起始關(guān)節(jié)處的旋轉(zhuǎn)圓環(huán)中心位置,有一個(gè)控制點(diǎn),該控制點(diǎn)對應(yīng)ikHandle節(jié)點(diǎn)的Offset參數(shù),可以使關(guān)節(jié)鏈在曲線上整體偏移:
https://help.autodesk.com/view/MAYAUL/2022/ENU/?guid=GUID-390788DB-527D-4EE5-A8DC-B99BE2D4861F
全文完
《哪吒2》再發(fā)威,都沖上日票房第二了?!
賤賤的狐貍耍劍
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.