maya/python 修改 modelPanel 布局和行为

maya/python modify modelPanel layout and behaviour

我正在 python 编写我的第一个脚本。它应该只是一个 2 选项卡脚本,在一个选项卡上会有角色选择器,在第二个选项卡上应该有一个带有面部 GUI 的相机视图。

我想摆脱红色圆圈菜单(您可以在此处看到 http://postimg.org/image/fozvc010x/)并以这种方式锁定视图,禁止缩放和平移。

我尝试在maya帮助上搜索,但对我来说不是很清楚。

我还附上了负责该视图的代码。

FacialGUI = cmds.formLayout()



FacialPanel = cmds.modelPanel(camera = "facial_cam")
cmds.formLayout(FacialGUI, e=True,
                            attachForm=[
                                (FacialPanel, "top", 0),
                                (FacialPanel, "left", 0), 
                                (FacialPanel, "bottom", 0), 
                                (FacialPanel, "right", 0)
                            ]) 


cmds.setParent( '..' )

谢谢, 丹妮尔!

要摆脱红色圆圈菜单,在命令 modelPanel 中尝试将 menuBarVisible 标志设置为 False

FacialPanel = cmds.modelPanel(camera = "facial_cam", mbv=False)

使用命令 mel.eval("ToggleModelEditorBars") 可以切换编辑器栏的可见性。

如果你想锁定缩放和平移,你必须在相机对象上做。

编辑

不然你可以这样截图场景:

import maya.cmds as cmd
import maya.OpenMaya as api
import maya.OpenMayaUI as apiUI    


def grabViewport(directory, imageName, ext="jpg"):
    viewport = apiUI.M3dView.active3dView()
    viewport.refresh()

    img = api.MImage()
    img.create(1280, 720)
    viewport.readColorBuffer(img, True)

    filePath = os.path.join(directory, imageName + "." + ext)
    img.writeToFile(filePath, ext)


cmd.viewSet(front=True)
cmd.viewFit()
filename = "image"
dir = "c:/snapshots"
ext = "jpg"
imageName = filename + "_front"
grabViewport(dir, imageName, ext)

现在您可以拍摄该图像并在您的面板中进行设置了。