其实很简单,我不喜欢玩默认的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 &#61; rotate &#43; 360
cmds.setAttr(cam &#43; &#39;.translate&#39;, *translate, type&#61;&#39;double3&#39;)
cmds.setAttr(cam &#43; &#39;.rotate&#39; &#43; orient[cam], rotate)
cmds.modelPanel(viewport, edit&#61;True, camera&#61;cam) # Set the camera to the active viewport
然后&#xff0c;您可以在视口处于焦点的情况下调用这些命令&#xff0c;它将自动切换到指定的摄影机。在
^{pr2}$
您还可以为每个方向创建新的摄影机(如果它们还不存在)&#xff0c;并在默认和非默认摄影机之间来回切换。不忘了复制它们的translate/rotate属性&#xff0c;这是解决方案中比较棘手和不太优雅的部分。在