在 Maya 中使用 Python 引用结果
Referencing results with Python in 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)
要获取相机的景深,请使用此命令:
import maya.cmds as cmds
print(cmds.camera('cameraShape1', q=True, dof=True))
要禁用相机的景深,请使用此命令:
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)
我一直在 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)
要获取相机的景深,请使用此命令:
import maya.cmds as cmds
print(cmds.camera('cameraShape1', q=True, dof=True))
要禁用相机的景深,请使用此命令:
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)