无法通过脚本在Maya中初始化turtle

2024-05-23 23:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个maya python工具,它应该加载turtle,将其设置为渲染器,然后在选定对象上烘焙vertex AO。除了用户第一次打开Maya时,它实际上不会第一次初始化之外,整个过程都正常工作。它不会为脚本创建“TurtleDefaultBakeLayer”节点来修改其上的属性。用户必须手动打开“渲染设置”窗口,然后单击“公用”选项卡旁边的“海龟”选项卡,它才能烘焙任何内容。之后,它的工作方式完全应该有或没有渲染设置窗口打开。你知道吗

我的问题是,如何让新打开的maya让Turtle初始化和实例化这些组件,而不需要用户打开“渲染设置”(Render Settings)窗口?你知道吗

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

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

enter image description here


Tags: 工具对象用户脚本节点过程选项卡vertex
1条回答
网友
1楼 · 发布于 2024-05-23 23:17:17

对于那些想在不打开“渲染设置”(render settings)窗口的情况下解决此问题的人来说,我们能想到的唯一可行的解决方案是手动创建所需的节点,而不是依赖于其自动实例化。你知道吗

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]")

相关问题 更多 >