【问题标题】:Can't initialize turtle in Maya through scripting无法通过脚本在 Maya 中初始化海龟
【发布时间】:2018-11-05 07:08:25
【问题描述】:

我有一个 Maya python 工具,它应该加载海龟,将其设置为渲染器,然后在所选对象上烘焙顶点 AO。除了当用户第一次打开 Maya 时,它实际上不会第一次初始化。它不会为脚本创建“TurtleDefaultBakeLayer”节点来修改属性。用户必须手动打开渲染设置窗口,然后单击“Common”选项卡旁边的“TURTLE”选项卡以烘烤任何内容。之后,无论是否打开“渲染设置”窗口,它都可以正常工作。

我的问题是,我如何获得一个新打开的 Maya 来让 Turtle 初始化和实例化这些组件,而无需用户打开“渲染设置”窗口?

def initializeTurtle(self):
    #Load Turtle
    cmds.loadPlugin('Turtle')        

    #Set renderer
    cmds.setAttr("defaultRenderGlobals.currentRenderer", "turtle", type="string")

【问题讨论】:

    标签: python rendering maya


    【解决方案1】:

    对于那些想在不打开渲染设置窗口的情况下解决这个问题的人来说,我们能想到的唯一可行的解​​决方案是手动创建 Turtle 所需的节点,而不是依赖其自动实例化。

    def initializeTurtle(self):
        #Load Turtle
    
        pluginStatus = cmds.pluginInfo( "Turtle", q = True, l = True, n = True )
        if pluginStatus == False:
            cmds.loadPlugin( "Turtle")
    
        #Create bake nodes
        cmds.setAttr("defaultRenderGlobals.currentRenderer", "turtle", type="string")
        tOptions = cmds.createNode ("ilrOptionsNode", name="TurtleRenderOptions")
        tBakeLayer = cmds.createNode ("ilrBakeLayer", name="TurtleDefaultBakeLayer")
        tbakeLayerMgr = cmds.createNode ("ilrBakeLayerManager", name="TurtleBakeLayerManager")
    
        cmds.connectAttr(tOptions+".message", tBakeLayer+".renderOptions")
        cmds.connectAttr(tBakeLayer+".index", tbakeLayerMgr+".bakeLayerId[0]")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多