コンストレイントとペアレント化のコマンドは以下の通りです。
import pymel.core as pm # 立方体のロケータを作成して、そのロケータを返す def makeCubeController(): c = pm.curve(d=1, p=[[-0.5, -0.5, -0.5], [0.5, -0.5, -0.5], [0.5, -0.5, 0.5], [-0.5, -0.5, 0.5], [-0.5, -0.5, -0.5], [-0.5, 0.5, -0.5], [0.5, 0.5, -0.5], [0.5, -0.5, -0.5], [0.5, 0.5, -0.5], [0.5, 0.5, 0.5], [0.5, -0.5, 0.5], [-0.5, -0.5, 0.5], [-0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [-0.5, 0.5, 0.5], [-0.5, 0.5, -0.5]]) return c j1 = pm.joint(p=(0, 10, 0)) j2 = pm.joint(p=(0, 5, 0)) j3 = pm.joint(p=(0, 0, 0)) pm.joint(j1, e=True, zso=True, oj='xyz', sao='yup') pm.joint(j2, e=True, zso=True, oj='xyz', sao='yup') j2.ry.set(10) pm.joint(j2, e=True, spa=True, ch=True) j2.ry.set(0) legik = pm.ikHandle(sj=j1, ee=j3, sol='ikRPsolver') cont1 = pm.spaceLocator() pm.move([0, 5, 5]) pm.makeIdentity(a=True, t=True, r=True, s=True, n=0) # トランスフォームのフリーズ pm.poleVectorConstraint(cont1, legik[0], w=1.0) pm.move([0, 0, 3]) cont2 = makeCubeController() pm.scale([1, 1, 2]) pm.move([0.5, 0.5, 1]) cont2.setRotatePivot([-0.5, -0.5, -1]) # 回転ピボットの位置変更 pm.parentConstraint(cont2, legik[0], mo=True, w=1.0) cont3 = makeCubeController() pm.move([0, 0, 5]) pm.parent(cont2, cont3)