Houdini 里的 Cone Twist Constraint
Cone Twist Constrain的約束輔助線要加上constraint_type屬性,和其他幾種約束不同,默認(rèn)的@constraint_type = "position"沒有效果,因?yàn)樗且环N旋轉(zhuǎn)約束。加上s@constraint_type = "all"或者s@constraint_type = "rotation"都可以。
為了理解這種約束,可以想象一個正方體橡皮泥,再插入一個牙簽,正方體可以在這個牙簽上旋轉(zhuǎn)。
Cone Twist Constraint有3根這樣的牙簽:Goal Twist Axis軸向,最大旋轉(zhuǎn)角度由Max Twist控制;另一根與Goal Twist Axis垂直,Goal Up Axis軸向,最大旋轉(zhuǎn)角度由Max Up?Rotation控制;最后一根與其他兩根都垂直,最大旋轉(zhuǎn)角度由Max Out?Rotation控制。

注意這里只是定義了3個軸向,不是用3根牙簽把橡皮泥完全固定住了。當(dāng)3個軸向的自由度都達(dá)到最大,正方體可以旋轉(zhuǎn)到所有方向。
可是它為什么叫Cone(圓錐)Twist(扭曲)Constraint(約束)呢?當(dāng)兩個軸向的旋轉(zhuǎn)自由度都比較小,正方體可旋轉(zhuǎn)的角度疊在一起就形成了一個圓錐形狀,最后一個軸向的旋轉(zhuǎn)就是Twist。類似鈴鐺,正方體是里面的小撞球,可以在2個軸向限定的圓錐范圍擺動,與鈴鐺不同的是,它還可以在連接撞球的鐵柱軸向上旋轉(zhuǎn)。

那么Constraint Twist Axis和Constraint Up Axis的作用是什么,這兩個參數(shù)定義了正方體的初始方向,也就是在模擬之前,正方體已經(jīng)旋轉(zhuǎn)過這么多角度了。當(dāng)這個角度超過限制的角度,模擬后它會馬上彈回到限定范圍。