2011年7月1日金曜日

SoftimageScripts : DirectObjects v0.1


遠景の背景は板ポリです

カメラに向かって、最大限の面積を確保するため正面に向かせたいものです。
ただ、動かない板ポリの場合、コンストレインまで使う必要はありませし、
特にY軸は固定したいものです。


というわけで、数が大量だったので、
お昼休み作ってみました。
※エラー処理も何もしてないです。

使い方
・向かせたいオブジェクトを選択(複数化)
・ターゲットのオブジェクトを選択(カメラなど)



Python
#DirectObjects
#v0.1
#2011 06 30
from win32com.client import constants as c
app = Application
log = app.Logmessage

def direction(inTargetObj,inObj):
 tPos = inTargetObj.Kinematics.Global.Transform.Translation
 oTrans = inObj.Kinematics.Global.Transform
 oPos = oTrans.Translation
 
 z = XSIMath.CreateVector3()
 y = XSIMath.CreateVector3(0,1,0)
 x = XSIMath.CreateVector3()
 
 z.Sub(tPos,oPos)
 z.Y = 0;
 z.NormalizeInPlace()
 
 x.Cross(y,z)

 m3 = XSIMath.CreateMatrix3()
 m3.Set(
 x.X , x.Y , x.Z ,
 y.X , y.Y , y.Z ,
 z.X , z.Y , z.Z
 )
 
 oTrans.SetRotationFromMatrix3(m3)
 inObj.Kinematics.Global.Transform = oTrans

 
oSels = app.Selection
oPick = app.PickObject()(2)
for i in oSels:
 direction(oPick,i)
 

0 件のコメント:

コメントを投稿