MayaのCurveの色を変える おまけ

ノードの奥深くにあっていちいち色変更するのも面倒なので、簡単なスクリプトを書いてみた。

[python] def changeCurveColor(colorNum):
selectNode = mc.ls(sl=True,fl=True)
if selectNode != None:
for node in selectNode:
shapeNode =mc.listRelatives(node,s=True)
if shapeNode != None:
for shape in shapeNode:
if mc.objectType(shape) == "nurbsCurve":
mc.setAttr(shape + ".overrideEnabled",1)
mc.setAttr(shape + ".overrideColor",int(colorNum))
[/python]

changeCurveColor() 

UIあるとさらに便利そうだけど、UI書くのは面倒なのでまた今度。いい加減寝るんだ自分! 

おまけの追記。
setAttrのときに、Transformノードの名前だとダメかなと思って、ShapeノードをListしてきてListしたノードのうち、nurbsCurveノードにSetAttrするように書いたけど、

[python] def changeCurveColor(colorNum):
selectNode = mc.ls(sl=True,fl=True)
if selectNode != None:
for node in selectNode:
mc.setAttr(node + ".overrideEnabled",1)
mc.setAttr(node + ".overrideColor",int(colorNum))
[/python]

のように、transformノードの名前でSetAttrしても大丈夫なようです。
(ちゃんと確認したわけじゃないからアレだけど、CameraShapeとかもtransfromノードの名前で大丈夫だし そのへんは良きに計らってくれてるのか) 
まぁ、curveノード以外のものが選択されてても うえのほうがエラー吐かないしいい…のかな。 

コメントを残す

メールアドレスが公開されることはありません。

*