在Maya中使用Python引用结果

时间:2017-07-22 05:30:55

标签: python scripting maya

我一直在使用Maya中的脚本,这样我就可以使用相机而无需一直进入Attribute Editor。目前我有一个带菜单项的菜单,在该菜单项中我也有一个复选框标志。当切换复选框按钮时,它会运行一个命令,打印出复选框的结果。我想要做的是if statement将切换任何相机中的dof属性,但通过读取复选框标记的结果来执行此操作。我知道如何正确使用if statements并找到正确的相机,但我不知道如何查询结果。一些脚本在下面,第四行,if statement,是我遇到问题的地方。谢谢你的帮助!

#Window Functions go here

def dofToggle(self):
    print(cmds.menuItem("dof", q=1, cb=1))

    # query the result
    if (cmds.menuItem("dof") == 1):
        cmds.setAttr(camera1.dof=True)

    # window settings go here
    if (cmds.window("Camera Tools", exists=True)):
        cmds.deleteUI("Camera Tools")

    cmds.window(title="Camera Tools", nestedDockingEnabled=True, rtf=True, sizeable=False, menuBar=True, menuBarResize=True, menuBarVisible=True)

    cmds.menu(label="dof")

    cmds.menuItem("dof", label="on/off", checkBox=True, command=dofToggle)

1 个答案:

答案 0 :(得分:1)

要获取相机的DOF,请使用以下命令:

import maya.cmds as cmds
print(cmds.camera('cameraShape1', q=True, dof=True))

要禁用摄像机的DOF,请使用以下命令:

cmds.camera('cameraShape1', e=True, dof=False)

所以你的if statement应该是这样的:

if(cmds.camera('cameraShape1', q=True, dof=True) == 1):
    cmds.camera('cameraShape1', e=True, dof=False)