在两个命令之间切换,每次一个键

2024-06-16 08:39:12 发布

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

我想让玛雅用一个热键在顶部和底部的正交视图之间切换,用另一个热键前后切换,用第三个热键在左视图和右视图之间切换,就像在MODO中一样。这是一次一个键的两个命令。 我想知道如何做到这一点,在运行时命令编辑器中的Python或Mel中,最好是将来选择的任何其他命令。 谢谢。在


Tags: 命令视图编辑器热键modomel
1条回答
网友
1楼 · 发布于 2024-06-16 08:39:12

其实很简单,我不喜欢玩默认的Maya摄影机,但我不认为这是个问题。 你要做的就是把平移坐标乘以-1。并为每个摄影机的相应轴添加180度。在

 def getActiveViewport():
    """Return the active 3D viewport if any"""
    panel = cmds.getPanel(withFocus=True)
    if cmds.getPanel(typeOf=panel) == 'modelPanel':
        return panel
    return ''


def switchcamera(cam):
    viewport = getActiveViewport()
    if viewport:
        orient = {'top': 'X', 'front': 'Y', 'side': 'Y'}
        translate = cmds.getAttr(cam + '.translate')[0]
        translate = [i*-1 for i in translate]
        rotate = cmds.getAttr(cam + '.rotate' + orient[cam])
        rotate = (rotate + 180) % 360
        if rotate < 0:
            rotate = rotate + 360        

        cmds.setAttr(cam + '.translate', *translate, type='double3')
        cmds.setAttr(cam + '.rotate' + orient[cam], rotate)
        cmds.modelPanel(viewport, edit=True, camera=cam)  # Set the camera to the active viewport

然后,您可以在视口处于焦点的情况下调用这些命令,它将自动切换到指定的摄影机。在

^{pr2}$

您还可以为每个方向创建新的摄影机(如果它们还不存在),并在默认和非默认摄影机之间来回切换。不忘了复制它们的translate/rotate属性,这是解决方案中比较棘手和不太优雅的部分。在

相关问题 更多 >