def registerAETemplateCallbacks(self): log.debug("registerAETemplateCallbacks") # callback is defined as mel script, didn't work as pymel command.. # aeCallbackName = "AE{0}NodeCallback".format(self.rendererName) # aeCallbackString = "callbacks -addCallback {0} -hook AETemplateCustomContent -owner {1};".format(aeCallbackName, self.pluginName) # pm.mel.eval(aeCallbackString) pm.callbacks(addCallback=self.aeTemplateCallback, hook='AETemplateCustomContent', owner=self.pluginName) # aeCallbackName = "{0}hyperShadePanelBuildCreateMenuCallback" # aeCallbackString = "callbacks -addCallback {0} -hook hyperShadePanelBuildCreateMenu -owner {1};".format(aeCallbackName, self.pluginName) # # aeCallbackName = "{0}hyperShadePanelBuildCreateSubMenuCallback".format(self.rendererName) # aeCallbackString = "callbacks -addCallback {0} -hook hyperShadePanelBuildCreateSubMenu -owner {1};".format(aeCallbackName, self.pluginName) pm.callbacks(addCallback=self.hyperShadePanelBuildCreateMenuCallback, hook='hyperShadePanelBuildCreateMenu', owner=self.pluginName) pm.callbacks(addCallback=self.hyperShadePanelBuildCreateSubMenuCallback, hook='hyperShadePanelBuildCreateSubMenu', owner=self.pluginName) pm.callbacks(addCallback=self.buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner=self.pluginName) pm.callbacks(addCallback=self.createRenderNodeCallback, hook='createRenderNodeCommand', owner=self.pluginName) aeTemplateName = "AE{0}NodeTemplate".format(self.rendererName.lower()) aeTemplateImportName = aeTemplateName
def unregister(): logger.info("Unregistering appleseed renderer.") # XGen try: import xgenm as xg xg.deregisterCallback("RenderAPIRendererTabUIInit" , "appleseedMaya.xgenseedui.xgseedUI" ) xg.deregisterCallback("RenderAPIRendererTabUIRefresh", "appleseedMaya.xgenseedui.xgseedRefresh" ) xg.deregisterCallback("PostDescriptionCreate" , "appleseedMaya.xgenseedui.xgseedOnCreateDescription" ) xg.deregisterCallback("ArchiveExport" , "appleseedMaya.xgenseed.xgseedArchiveExport") xg.deregisterCallback("ArchiveExportInfo", "appleseedMaya.xgenseed.xgseedArchiveExportInfo") xg.deregisterCallback("ArchiveExportInit", "appleseedMaya.xgenseed.xgseedArchiveExportInit") logger.info("appleseedMaya: uninitialized xgenseed") except Exception as e: logger.info("appleseedMaya: could not uninitialize xgenseed. error = %s" % e) if om.MGlobal.mayaState() == om.MGlobal.kInteractive: deleteMenu() pm.callbacks(clearCallbacks=True, owner="appleseed") removeRenderGlobalsScriptJobs() if pm.renderer("appleseed", q=True, ex=True): pm.renderer("appleseed", unregisterRenderer=True)
def initializePlugin(mobject): mplugin = OpenMayaMPx.MFnPlugin(mobject) try: # Register command mplugin.registerCommand(kPluginCmdName, instanceAlongCurveCommand.cmdCreator) if OpenMaya.MGlobal.mayaState() != OpenMaya.MGlobal.kBatch: mplugin.addMenuItem("Instance Along Curve", "MayaWindow|mainEditMenu", kPluginCmdName, "") # Register AE template pm.callbacks(addCallback=loadAETemplateCallback, hook='AETemplateCustomContent', owner=kPluginNodeName) # Register node mplugin.registerNode(kPluginNodeName, kPluginNodeId, instanceAlongCurveLocator.nodeCreator, instanceAlongCurveLocator.nodeInitializer, OpenMayaMPx.MPxNode.kLocatorNode, kPluginNodeClassify) except: sys.stderr.write( 'Failed to register plugin instanceAlongCurve. stack trace: \n') sys.stderr.write(traceback.format_exc()) raise
def unregister(): logger.info("Unregistering appleseed renderer.") deleteMenu() pm.callbacks(clearCallbacks=True, owner="appleseed") if pm.renderer("appleseed", q=True, ex=True): pm.renderer("appleseed", unregisterRenderer=True)
def __addSceneChangedCallback(self): callbacks = pm.callbacks(listCallbacks=True, hook=WALTER_SCENE_CHANGED_CALLBACK, owner=WALTER_SCENE_CHANGED_CALLBACK_OWNER) if callbacks: for c in callbacks: pm.callbacks(removeCallback=c, hook=WALTER_SCENE_CHANGED_CALLBACK, owner=WALTER_SCENE_CHANGED_CALLBACK_OWNER) pm.callbacks(addCallback=self.__updateModel, hook=WALTER_SCENE_CHANGED_CALLBACK, owner=WALTER_SCENE_CHANGED_CALLBACK_OWNER)
def initializePlugin( mobject ): mplugin = OpenMayaMPx.MFnPlugin( mobject ) try: # Register command mplugin.registerCommand( kPluginCmdName, instanceAlongCurveCommand.cmdCreator ) if OpenMaya.MGlobal.mayaState() != OpenMaya.MGlobal.kBatch: mplugin.addMenuItem("Instance Along Curve", "MayaWindow|mainEditMenu", kPluginCmdName, "") # Register AE template pm.callbacks(addCallback=loadAETemplateCallback, hook='AETemplateCustomContent', owner=kPluginNodeName) # Register node mplugin.registerNode( kPluginNodeName, kPluginNodeId, instanceAlongCurveLocator.nodeCreator, instanceAlongCurveLocator.nodeInitializer, OpenMayaMPx.MPxNode.kLocatorNode, kPluginNodeClassify ) except: sys.stderr.write('Failed to register plugin instanceAlongCurve. stack trace: \n') sys.stderr.write(traceback.format_exc()) raise
def registerAETemplateCallbacks(self): pm.callbacks(addCallback=self.aeTemplateCallback, hook='AETemplateCustomContent', owner=self.pluginName) pm.callbacks(addCallback=self.hyperShadePanelBuildCreateMenuCallback, hook='hyperShadePanelBuildCreateMenu', owner=self.pluginName) pm.callbacks(addCallback=self.hyperShadePanelBuildCreateSubMenuCallback, hook='hyperShadePanelBuildCreateSubMenu', owner=self.pluginName) pm.callbacks(addCallback=self.buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner=self.pluginName) pm.callbacks(addCallback=self.createRenderNodeCallback, hook='createRenderNodeCommand', owner=self.pluginName) pm.callbacks(addCallback=self.connectNodeToNodeOverrideCallback, hook='connectNodeToNodeOverrideCallback', owner=self.pluginName) aeTemplateName = "AE{0}NodeTemplate".format(self.rendererName.lower()) aeTemplateImportName = aeTemplateName
def register(): logger.info("Registering appleseed renderer.") # Register render. pm.renderer("appleseed", rendererUIName="appleseed") # Final Render procedures. createRenderMelProcedures() pm.renderer( "appleseed", edit=True, renderProcedure="appleseedRenderProcedure", commandRenderProcedure="appleseedBatchRenderProcedure", batchRenderProcedure="appleseedBatchRenderProcedure", cancelBatchRenderProcedure="appleseedCancelBatchRenderProcedure", renderRegionProcedure="mayaRenderRegion") # Ipr Render procedures. pm.renderer( "appleseed", edit=True, iprRenderProcedure="appleseedIprRenderProcedure", isRunningIprProcedure="appleseedIsRunningIprRenderProcedure", startIprRenderProcedure="appleseedStartIprRenderProcedure", stopIprRenderProcedure="appleseedStopIprRenderProcedure", refreshIprRenderProcedure="appleseedRefreshIprRenderProcedure", pauseIprRenderProcedure="appleseedPauseIprRenderProcedure", changeIprRegionProcedure="appleseedChangeIprRegionProcedure", ) # Globals createRenderTabsMelProcedures() pm.renderer("appleseed", edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer("appleseed", edit=True, addGlobalsNode="defaultResolution") pm.renderer("appleseed", edit=True, addGlobalsNode="appleseedRenderGlobals") pm.renderer("appleseed", edit=True, addGlobalsTab=("Common", "createMayaSoftwareCommonGlobalsTab", "updateMayaSoftwareCommonGlobalsTab")) pm.renderer("appleseed", edit=True, addGlobalsTab=("Appleseed", "appleseedCreateTabProcedure", "appleseedUpdateTabProcedure")) # Extension attributes. addExtensionAttributes() # AE templates. pm.callbacks(addCallback=appleseedAETemplateCallback, hook="AETemplateCustomContent", owner="appleseed") # Manually load templates in aetemplate folder. templatesDir = os.path.join(thisDir, "aetemplate") logger.debug("Registering AETemplates in %s" % templatesDir) for file in os.listdir(templatesDir): if fnmatch.fnmatch(file, '*template.py'): templateModule = file.replace(".py", "") logger.debug("Registering AE template %s" % templateModule) mel.eval('python("import appleseedMaya.aetemplate.%s")' % templateModule) # Hypershader callbacks pm.callbacks(addCallback=hyperShadePanelBuildCreateMenuCallback, hook="hyperShadePanelBuildCreateMenu", owner="appleseed") pm.callbacks(addCallback=hyperShadePanelBuildCreateSubMenuCallback, hook="hyperShadePanelBuildCreateSubMenu", owner="appleseed") pm.callbacks(addCallback=buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner="appleseed") pm.callbacks(addCallback=createRenderNodeCallback, hook='createRenderNodeCommand', owner="appleseed") pm.callbacks(addCallback=connectNodeToNodeOverrideCallback, hook='connectNodeToNodeOverrideCallback', owner="appleseed") # Appleseed translator. createTranslatorMelProcedures() # Logos. if appleseedIconsPath(): pm.renderer("appleseed", edit=True, logoImageName=os.path.join(appleseedIconsPath(), "appleseed.png")) mel.eval(''' global proc appleseedLogoCallback() { evalDeferred("showHelp -absolute \\\"http://appleseedhq.net\\\""); } ''') pm.renderer("appleseed", edit=True, logoCallbackProcedure="appleseedLogoCallback") else: logger.info( "appleseedMaya: skipping logo registration. Logo not found") # Menu createMenu()
def register(): logger.info("Registering appleseed renderer.") # Register render. pm.renderer("appleseed", rendererUIName="Appleseed") # Final Render procedures. createRenderMelProcedures() pm.renderer( "appleseed", edit=True, renderProcedure="appleseedRenderProcedure", commandRenderProcedure="appleseedBatchRenderProcedure", batchRenderProcedure="appleseedBatchRenderProcedure", cancelBatchRenderProcedure="appleseedCancelBatchRenderProcedure", renderRegionProcedure="mayaRenderRegion" ) # Ipr Render procedures. pm.renderer( "appleseed", edit=True, iprRenderProcedure="appleseedIprRenderProcedure", isRunningIprProcedure="appleseedIsRunningIprRenderProcedure", startIprRenderProcedure="appleseedStartIprRenderProcedure", stopIprRenderProcedure="appleseedStopIprRenderProcedure", refreshIprRenderProcedure="appleseedRefreshIprRenderProcedure", pauseIprRenderProcedure="appleseedPauseIprRenderProcedure", changeIprRegionProcedure="appleseedChangeIprRegionProcedure", ) # Globals createRenderTabsMelProcedures() addRenderGlobalsScriptJobs() pm.renderer("appleseed", edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer("appleseed", edit=True, addGlobalsNode="defaultResolution") pm.renderer("appleseed", edit=True, addGlobalsNode="appleseedRenderGlobals") mel.eval('registerUpdateRendererUIProc("evalDeferred -lp appleseedCurrentRendererChanged");') pm.renderer( "appleseed", edit=True, addGlobalsTab=( "Common", "createMayaSoftwareCommonGlobalsTab", "appleseedUpdateCommonTabProcedure" ) ) pm.renderer( "appleseed", edit=True, addGlobalsTab=( "Appleseed", "appleseedCreateAppleseedTabProcedure", "appleseedUpdateAppleseedTabProcedure" ) ) # AE templates. pm.callbacks( addCallback=appleseedAETemplateCallback, hook="AETemplateCustomContent", owner="appleseed") # Manually load templates in aetemplate folder. templatesDir = os.path.join(thisDir, "aetemplate") logger.debug("Registering AETemplates in %s" % templatesDir) for file in os.listdir(templatesDir): if fnmatch.fnmatch(file, '*template.py'): templateModule = file.replace(".py", "") logger.debug("Registering AE template %s" % templateModule) mel.eval('python("import appleseedMaya.aetemplate.%s")' % templateModule) # Hypershader callbacks pm.callbacks( addCallback=hyperShadePanelBuildCreateMenuCallback, hook="hyperShadePanelBuildCreateMenu", owner="appleseed" ) pm.callbacks( addCallback=hyperShadePanelBuildCreateSubMenuCallback, hook="hyperShadePanelBuildCreateSubMenu", owner="appleseed" ) pm.callbacks( addCallback=buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner="appleseed" ) pm.callbacks( addCallback=createRenderNodeCallback, hook='createRenderNodeCommand', owner="appleseed") pm.callbacks( addCallback=connectNodeToNodeOverrideCallback, hook='connectNodeToNodeOverrideCallback', owner="appleseed") # Appleseed translator. createTranslatorMelProcedures() # Logos. if appleseedIconsPath(): pm.renderer( "appleseed", edit=True, logoImageName=os.path.join(appleseedIconsPath(), "appleseed.png") ) mel.eval(''' global proc appleseedLogoCallback() { evalDeferred("showHelp -absolute \\\"http://appleseedhq.net\\\""); } ''' ) pm.renderer( "appleseed", edit=True, logoCallbackProcedure="appleseedLogoCallback" ) else: logger.info("appleseedMaya: skipping logo registration. Logo not found") # Menu if om.MGlobal.mayaState() == om.MGlobal.kInteractive: createMenu() # XGen try: import xgenm as xg xg.registerCallback("RenderAPIRendererTabUIInit" , "appleseedMaya.xgenseedui.xgseedUI" ) xg.registerCallback("RenderAPIRendererTabUIRefresh", "appleseedMaya.xgenseedui.xgseedRefresh" ) xg.registerCallback("PostDescriptionCreate" , "appleseedMaya.xgenseedui.xgseedOnCreateDescription" ) xg.registerCallback("ArchiveExport" , "appleseedMaya.xgenseed.xgseedArchiveExport") xg.registerCallback("ArchiveExportInfo", "appleseedMaya.xgenseed.xgseedArchiveExportInfo") xg.registerCallback("ArchiveExportInit", "appleseedMaya.xgenseed.xgseedArchiveExportInit") logger.info("appleseedMaya: initialized xgenseed") except Exception as e: logger.info("appleseedMaya: could not initialize xgenseed. error = %s" % e)