Maya


iron3d

Maya Python Scripts

OpenMaya?

  • Active Selection
    import maya.OpenMaya as om;
    sel=om.MSelectionList();
    om.MGlobal.getActiveSelectionList(sel);
    num=sel.length();
    for i in range(0,num):
    	obj=om.MObject();
    	sel.getDependNode(i,obj);
    	node=om.MFnDependencyNode(obj);
    	om.MGlobal.displayInfo(node.name()+" is "+node.typeName());
  • Matrix
    import maya.OpenMaya as om;
    sel=om.MSelectionList();
    om.MGlobal.getActiveSelectionList(sel);
    num=sel.length();
    if num>1:
    	# Last selected
    	last=om.MObject();
    	sel.getDependNode(num-1,last);
    	lastMtx=om.MTransformationMatrix( om.MFnTransform(last).transformation().asMatrix() );
    	# Align transform
    	for i in range(0,num-1):
    		obj=om.MObject();
    		sel.getDependNode(i,obj);
    		tfmNode=om.MFnTransform(obj);
    		tfmNode.set(lastMtx);

Samples

  • Lock Window Position
    #############################################################
    # Author: Tetsuya Wakao
    # Date: 2009.05.16
    # Sample script: Lock window position
    #############################################################
    # Import
    import maya.cmds as mc;
    #------------------------------------------------------------
    # frameLayout tips
    def frameLayoutFN(prnt,bstyles):
    	num=len(bstyles);
    	for i in range(0,num):prnt=mc.frameLayout(p=prnt,bs=bstyles[i],lv=0);
    	return(prnt);
    #------------------------------------------------------------
    # toggle lock state
    def toggleWinLock(win):
    	v=30; h=4; #offset values
    	pos=mc.window(win,q=1,tlc=1);
    	if mc.window(win,q=1,tb=1):
    		mc.window(win,e=1,tb=0,s=0);
    		pos[0]=pos[0]+v;
    		pos[1]=pos[1]+h;
    	else:
    		mc.window(win,e=1,tb=1,s=1);
    		pos[0]=pos[0]-v;
    		pos[1]=pos[1]-h;
    	mc.window(win,e=1,tlc=pos);
    #------------------------------------------------------------
    # Main
    def lockWindowSample():
    	hgt=30; wdt=200;
    	csw="characterSetupWin";
    	if mc.window(csw,q=1,ex=1):mc.deleteUI(csw);
    	win=mc.window(csw,t="Sample: Lock Window",tb=1,mnb=0,mxb=0);
    	ct=mc.columnLayout(p=win);
    	ct01=mc.rowColumnLayout(p=ct,nc=2,cw=[(1,hgt+2),(2,wdt)]);
    	ft=frameLayoutFN(ct01,["out","out"]);
    	btn=mc.button(p=ft,l="",w=25,h=25,);
    	mc.text(p=ct01,l=" <-------------------- Click here --");
    	mc.showWindow(win);
    	# Edit window elements
    	mc.window(win,e=1,h=hgt*2.25,w=wdt);
    	mc.button(btn,e=1,c="toggleWinLock(\'"+win+"\')");
    #------------------------------------------------------------
    # Executer
    lockWindowSample();

最新の20件

2010-11-18 2011-06-13 2010-10-13 2011-01-11 2010-09-28 2010-10-24 2009-07-15 2009-11-07 2011-04-03 2011-03-07 2011-01-18 2009-08-16 2011-08-10 2013-03-14 2012-04-18 2012-04-07 2012-03-23 2012-02-19 2012-01-31 2012-01-05

今日の12件

  • counter: 58
  • today: 1
  • yesterday: 0
  • online: 1