def connectOutputToInput(self): """ Gets input and outputs from GUI and will connect them """ type = "trans" connectInputIconTextScroll = "connectInputIconTextScroll" connectOutputIconTextScroll = "connectOutputIconTextScroll" connectionKey = "" # get Input inputKey = Util.getFirst(self.queryInput(connectInputIconTextScroll)) # get Output outputKey = Util.getFirst(self.queryInput(connectOutputIconTextScroll)) connectionKey = (outputKey + "_" + inputKey) # get Modules inputModule = self.queryElement("connectInputButton") outputModule = self.queryElement("connectOutputButton") # get input / output objects inputObj = self.rigInstance.getInput(inputModule, inputKey) outputObj = self.rigInstance.getOutput(outputModule, outputKey) inputPlug = (inputModule + "." + inputKey) outputPlug = (outputModule + "." + outputKey) # perform connection based on type self.rigInstance.Modules[inputModule].storeConnection(connectionKey, inputPlug, outputPlug , type) self.rigInstance.createConnection( inputModule , connectionKey )
def updateInputOutputs(self): """ finds attributes on module with "input_" & "output_" prefix then populates dicts """ # Get input attrs inputsAttrs = cmds.listAttr( self.container, st='input_*') # Get output attrs outputsAttrs = cmds.listAttr( self.container, st='output_*') if inputsAttrs: for attr in inputsAttrs: # get attr key key = Util.getSuffix(attr) if key != "data": # get connected obj objs = Util.getConnectedObjects( (self.container + "." + attr) ) # store obj self.inputs[key] = Util.getFirst(objs) if outputsAttrs: for attr in outputsAttrs: # get attr key key = Util.getSuffix(attr) if key != "data": # get connected obj objs = Util.getConnectedObjects( (self.container + "." + attr) ) # store obj self.outputs[key] = Util.getFirst(objs)
def deleteModule(self): """ Deletes module """ if self.elementExists("rigList") == False: cmds.warning("No modules found in scene") return None selectedModule = Util.getFirst(self.queryInput("rigList")) selectedModule = String.removeSuffix(selectedModule.strip()) self.rigInstance.deleteModule(selectedModule) self.loadModules({})
def renameModule(self): """ Will rename current module """ if self.elementExists("rigList") == False: cmds.warning("No modules found in scene") return None selectedModule = Util.getFirst(self.queryInput("rigList")) selectedModule = String.removeSuffix(selectedModule.strip()) self.createValueWindow("Enter new module name", "default","NWRig.renameModule(\""+selectedModule+"\", %)") self.loadModules({})
def mirrorBlueprint(self): """ duplciates blueprint """ if self.elementExists("rigList") == False: cmds.warning("No modules found in scene") return None selectedModule =self.queryInput("rigList") if not selectedModule: cmds.error("Select module to duplicate in rig menu.") selectedModule = Util.getFirst(selectedModule) selectedModule = String.removeSuffix(selectedModule.strip()) self.createValueWindow("Enter new module name", "default","NWRig.mirrorModule(\""+selectedModule+"\", %, 'x')") self.loadModules({})
def updateRigAttributes(self,args): """ Gets selected module and lists attributes """ functArgs = Util.defaultArgs({}, args ) # Check rigIconScroll element exists if self.inputs.has_key("rigList"): selectedModule = self.queryInput("rigList") if selectedModule: # Get selected element selectedModule = Util.getFirst(selectedModule) # Load selected objects attributes self.loadAttributes('rig',selectedModule.strip()) else: pass
def rigModules(self,args): """ Get selected modules and rig them recersively """ moduleList= [] if self.elementExists("rigList") == False: cmds.warning("No modules found in scene") return None selectedModule = Util.getFirst(self.queryInput("rigList")) selectedModule = selectedModule.strip() moduleList = self.recursiveGetModules(selectedModule) for module in moduleList: moduleName = Util.removeSuffix(module) moduleName = moduleName.strip() self.rigInstance.rigModule({"name": moduleName}) # Load rig data self.rigInstance.loadRigData()