Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
2.3 kB
5
Indexable
Never
import pymel.core as pm

def colorPicker():
    result = pm.colorEditor()
   
    colorList =result.split(" ")
   
    colorList = [float(v) for v in colorList if v != ""]
    return colorList[:-1]
   
def createControl(ctrlName="myControl", addInConstraint=False, myColor = [1,1,0]):
       
    # create a nurbs circle
    makeCircleResult = pm.circle(name=f"{ctrlName}_ctrl")
   
    myCtrl = makeCircleResult[0]
   
    # delete history on controller
    pm.delete(makeCircleResult[1])
   
    # create a rest for controller
    myRest = pm.group(name=f"{ctrlName}_rest", empty=True)
   
    # [OPTIONAL] create inConstraint
    if addInConstraint == True:
        myInConstraint = pm.group(name=f"{ctrlName}_inCns", empty=True)
       
    # parent controller under rest
    pm.parent(myCtrl, myRest)
   
    # IF WE HAVE inConstraint, we parent under inCons
    if addInConstraint == True:
        pm.parent(myRest, myInConstraint)
   
    # set controller color
    #    Object Oriented Method
    pm.setAttr(myCtrl.overrideEnabled, 1)
   
    pm.setAttr(myCtrl.overrideRGBColors, 1)
   
    pm.setAttr(myCtrl.overrideColorR, myColor[0])
    pm.setAttr(myCtrl.overrideColorG, myColor[1])
    pm.setAttr(myCtrl.overrideColorB, myColor[2])



######## setup
moduleName = None
c = [1, 1, 0] #yellow  
safetyVariable = 10
done = False
########
 
# promptDialogue
i = 0
while done == False and i < safetyVariable:
   
    result = pm.promptDialog(title ="Control Maker",
    message ="Enter a name for your control... if you dare!",
    button = ["Add Control", "Add Control with InCns", "Set Control Color"],
    text = moduleName)

    i +=1
    if result == "Add Control":
   
        moduleName = pm.promptDialog(query=True, text=True)
        createControl(moduleName, False, c)
        done = True
       
    elif result == "Add Control with InCns":
         moduleName = pm.promptDialog(query=True, text=True)
         createControl(moduleName, True, c)
         done = True
             
    elif result == "Set Control Color":
         moduleName = pm.promptDialog(query=True, text=True)
         c = colorPicker()
         print(c)
       
    else:
   
        print("Coward.")
        done = True
       
# [add ctrl, add ctrl with inCns, set color]
Leave a Comment