2009年9月30日水曜日

MaxScript ObjectTransform

$.transform

ではPivotを基点としたマトリクスになってしまう。

$.objecttrasnform

これを使うと、絶対値的なマトリクスの取得ができる。

getModContextTM()

モディファイアのコンテキスト変換に必要なマトリクスを取得する事ができる。
条件によってはObjectTransformとは違うマトリクスとなるので、これを使って以下のように必要な変換行列を取得できる事になる

inverse (getModContextTM $ $.modifiers[1]) * $.objecttransform

そして以下のように処理する事でギズモを任意の座標系で計算できる

obj = selection[1]
objTM = obj.objectTransform
modTM = getModContextTM obj obj.slice
WRot = (quat 0 0 0 1)
obj.slice.slice_plane.rotation = WRot * modTM * (inverse objTM)

setModContextTM()
モディファイアコンテキスト変換行列を設定できる。

0 件のコメント:

コメントを投稿