hibitekitou
(メモ)ポリゴンメッシュの頂点に既存のオブジェクトを配置(法線の向きを考慮)
xsi |2004-11-29
よくわからんけど、こんなもんで…
Dim oRoot, oObj, oGeometory, oNull, i , duplicatedObjectName
'複製するオブジェクトの名前を登録(existObjectNameを書き換える)
duplicatedObjectName = "existObjectName"
i = 1
DeselectAll
set oRoot = Application.ActiveProject.ActiveScene.Root
'対象オブジェクトをピックする。
PickElement "Object","Select Objct","Select Objct", oObj, button
set oObjTarget = oRoot.addNull("targetTempNull___Temp")
set oGeometry = oObj.ActivePrimitive.Geometry
'ピックしたオブジェクトの頂点にヌルを配置
for each oPoint in oGeometry.Points
'Phosphatideを複製して名前を変える
Duplicate duplicatedObjectName, , 2, 1, 1, 0, 0, 1, 0, 1, , , , , , , , , , , 0
SetValue duplicatedObjectName &"1.Name", duplicatedObjectName &"_"& i
'対象オブジェクトの頂点の法線を取り出す
set oNormal = oPoint.Normal
'対象オブジェクトの法線方向にNullを移動
SetValue oObjTarget &".kine.local.posx" , oNormal.x * 5
SetValue oObjTarget &".kine.local.posy" , oNormal.y * 5
SetValue oObjTarget &".kine.local.posz" , oNormal.z * 5
'Nullの方向にPhosphatideを傾ける
ApplyCns "Direction", duplicatedObjectName &"_"& i, oObjTarget
SetValue "Phosphatide_"& i &",.kine.dircns.dirx", 0
SetValue "Phosphatide_"& i &",.kine.dircns.diry", 1
Refresh
DeleteObj "Phosphatide_"& i &",.kine.dircns"
'Phosphatideをターゲットのポイント上に移動
SetValue duplicatedObjectName &"_"& i &",.kine.local.posx" , oPoint.Position.x
SetValue duplicatedObjectName &"_"& i &",.kine.local.posy" , oPoint.Position.y
SetValue duplicatedObjectName &"_"& i &",.kine.local.posz" , oPoint.Position.z
i = i + 1
next
'抽出用のヌルを削除
DeleteObj oObjTarget
コメント ( 0 )|Trackback ( )