max裡中代表物件在3d坐標中的位置的transform是經由object transform跟物件本身的transform推算出來的。
transform 是一組由四個向量組成的陣列值
在MAX中可用
而transfrom這東西在 get 和 SET 時給你的都是以世界軸為主,
所以在設定時就相當的方便,
就算你要要設定父物件是a物件的b物件的位置,想要他對齊一個c物件,你也只須要寫一行
但如果你遇上了想讓物件跟pivot二個不一樣時,那就還要借助上object offset 這個 transform
在設定 rigging control 時
很常會遇到一個情況就是…例如:
spine的控制器對齊spine骨頭之外,外觀要對齊世界坐標軸向,
我們可以用
ps: 最後的那個 as quat 可以不用寫,max會自已幫你轉換。
transform 是一組由四個向量組成的陣列值
在MAX中可用
的到如下的東西(就是 matrix3 預設值啦)matrix3 1
(matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
而transfrom這東西在 get 和 SET 時給你的都是以世界軸為主,
所以在設定時就相當的方便,
就算你要要設定父物件是a物件的b物件的位置,想要他對齊一個c物件,你也只須要寫一行
b.transform = c.transform
就搞定了,而不用去管c物件有沒有父物件。
但如果你遇上了想讓物件跟pivot二個不一樣時,那就還要借助上object offset 這個 transform
在設定 rigging control 時
很常會遇到一個情況就是…例如:
spine的控制器對齊spine骨頭之外,外觀要對齊世界坐標軸向,
我們可以用
spineControl.transform = spineBone.transform之外再加上
spineControl.objectoffsetrot = (((matrix3 1) * inverse spineControl.transform) as quat)就可以讓控制器在"外觀上"是和世界標對齊的~
ps: 最後的那個 as quat 可以不用寫,max會自已幫你轉換。
沒有留言:
張貼留言