親にグループを作ってあげる
タイトル通りで、急遽家でも必要になった為
作りました。
半端なやつですが、メモようにこちらにもアップ。
リグ作るときに、トランスフォームを「0」にする為、親のオフセット値を入れるとおもいます。
それの自動化版です。
特になにもしてない、マクロです。
こんな状態のやつが
実行すると、
こうなります。
以下コード
import maya.cmds as cmds import maya.OpenMaya as OpenMaya def DAGPath( objectName ): sel = OpenMaya.MSelectionList() sel.add( str( objectName ) ) obj = OpenMaya.MDagPath() sel.getDagPath(0,obj) return obj Sel = cmds.ls(sl = True) for i in Sel: DAG = DAGPath(i) Full = DAG.fullPathName() Grp = cmds.group(empty = True, world = True) Point = cmds.pointConstraint(Full,Grp) Ori = cmds.orientConstraint(Full,Grp) cmds.delete(Point,Ori) Pa = cmds.listRelatives(i,allParents=True) if not Pa: cmds.parent(Full,Grp) else: cmds.parent(Grp,Pa) cmds.parent(Full,Grp) cmds.setAttr( Grp + ".tx",lock=True) cmds.setAttr( Grp + ".ty",lock=True) cmds.setAttr( Grp + ".tz",lock=True) cmds.setAttr( Grp + ".rx",lock=True) cmds.setAttr( Grp + ".ry",lock=True) cmds.setAttr( Grp + ".rz",lock=True) #cmds.setAttr( Grp + ".rz",lock=True, keyable = False , channelBox = False) cmds.rename(Grp,i + "_Grp") cmds.select(Sel)
パスが変わるので、OpenMaya使ってパスを管理してます。
※使わくてもできたかも‥
以上メモかわりでした。