gpt4 book ai didi

python - 一次用一个键在两个命令之间切换

转载 作者:行者123 更新时间:2023-12-01 03:58:56 24 4
gpt4 key购买 nike

我想让 Maya 使用一个热键在顶部和底部正交 View 之间切换,使用另一个热键在正面和背面之间切换,使用第三个热键在左右之间切换,就像在 MODO 中一样。这是一次用一个键执行两个命令。我想知道如何在运行时命令编辑器中的 Python 或 Mel 中执行此操作,并且最好使用我将来选择的任何其他命令。谢谢。

最佳答案

这实际上很简单,我不太喜欢使用默认的 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

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

switchcamera('top')
switchcamera('front')
switchcamera('side')

您还可以为每个方向创建新相机(如果它们尚不存在),并在默认和非默认相机之间来回切换。不要忘记复制它们的平移/旋转属性,这是该解决方案中棘手且不太优雅的部分。

关于python - 一次用一个键在两个命令之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com