Maya Script Pymel – スケール変更

pymelやはり便利です。
最近はベクトルの計算なんかもほんの少しですが、やっております。
で、特定のノードのスケール変更です。
リグを作った後に見難いのでスケールを変えたいときなどに使えるかと思います。

import pymel.core as pm

rigNodes = [x for x in pm.ls(type=pm.nt.Transform) if "_Rig" == x.name()[-4:]]
if rigNodes:
	pDic = dict([x,x.getParent()] for x in rigNodes)
	[x.setParent(None) for x in rigNodes]
	[[x.sx.unlock(),x.sy.unlock(),x.sz.unlock(),x.tx.unlock(),x.ty.unlock(),x.tz.unlock()] for x in rigNodes]
	[x.setScale(pm.datatypes.Vector(x.getScale())*2) for x in rigNodes]
	[k.setParent(v) for k,v in pDic.items()]

シーン内に「_Rig」で終わるトランスフォームノードに対してスケールを変更します。

 

ここで役に立ったのが、「pm.datatypes.Vector()」通常getScale()メソッドで取得できる値はリストで、
ベクトルの計算はできない。
しかし、上記の物を使うとベクトルとして扱えるので、計算が楽になる。
これは面白い。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です