MayaでベベルノードだけアクティブにするPythonスクリプト
Maya pythonスクリプト
パスをベベルプラスで押し出したオブジェクトが複数あり、
一括で押し出し距離を変更したいとき・・・面倒ですよね。
オブジェクトを選択して実行すると、ベベルノードだけがアクティブになるスクリプト作りました。
# coding: UTF-8
##===================================================
## ベベルプラスで押し出したオブジェクトのベベルノードを一括選択
##===================================================
# 使い方:押し出したオブジェクトを選択、実行でベベルノードのみ選択
# 結果:ベベルノードだけがアクティブになります。
#
#
import maya.cmds as mc
#list select objects to Shapes
selObj = mc.ls(sl=True)
selObjShapes = mc.listRelatives(list)
bevelNodes = []
#list bevelNodes
for i in listShapes:
connectSource1 = mc.listConnections(i+".inMesh",s=True)
connectSource2 = mc.listConnections(connectSource1[0]+".inputPolymesh",s=True)
bevelNodes.append(connectSource2[0])
print bevelNodes
#[u'bevelPlus4', u'bevelPlus3', u'bevelPlus1', u'bevelPlus2']
内容としては、
選択したオブジェクトをリスト化。
ここでシェイプノードのリストに変換。
各シェイプノードで、コネクションを遡ってベベルノード名を取得。
ベベルノード名を、ベベルノードリストに追加。
これをシェイプノードのリストぶんだけfor文で繰り返す。
今回は、ベベルノードがアクティブになっただけで・・・
さらにこの後AttributeSpreadSheetとかで値を変更する必要があります。
時間あれば、リアルタイムに値が反映される attrFieldSlider を使ってみようと思います。
0 コメント:
コメントを投稿