python - 基于modelPanel设置相机
问题描述
首先,我还没有编码。
我的问题是,每次我在 Maya 中打开场景时,渲染凸轮面板都会被透视视图替换,从而使其成为无用的副本。我没有找到任何方法让 Maya 记住带有相机的面板和之前设置的选项(隐藏曲线等)。我想做的是获取当前活动相机的面板并更改该面板的相机。
我在这里找到了这段代码,我认为它可以使用。
在我的情况下,我想设置的相机称为 renderCAM,但从中获取面板的面板可能是 persp。
谢谢!
import maya.cmds as cmds
def getPanelFromCamera(cameraName):
listPanel=[]
for panelName in cmds.getPanel( type="modelPanel" ):
if cmds.modelPanel( panelName,query=True, camera=True) == cameraName:
listPanel.append( panelName )
return listPanel
print getPanelFromCamera("persp")
解决方案
这是可以帮助您的不同代码。我不确定你被困在哪里。
# get all default models
models = [i for i in cmds.lsUI(p=True) if 'modelPanel' in i]
# get first panel
myPane = cmds.paneLayout('viewPanes', q=True, pane1=True)
# get panel in focus but might not be your solution
panel = cmds.getPanel(withFocus=True)
#query camera
currentCam = cmds.modelPanel(myPane, q=True, cam=True)
# set camera
cmds.modelPanel(myPane, e=True, cam='renderCAM')
推荐阅读
- python - Python Tkinter 增量(默认值为零)
- angular - 如何在 Angular 中为 addEventListener 上的点击事件编写测试用例
- cordova - Window.Ionic.WebView.convertFileSrc(url) 使用 openwithios 插件在 ionic cordova 中返回 404
- node.js - 如果给出相同的名称,Express fileupload mv() 函数会覆盖现有文件吗?
- android - 是否可以通过 adb 检查保险箱的可用性和引导加载程序重新锁定?
- ios - UIView中的swift ios UIButton不起作用
- aws-codebuild - 并发构建为 1 时,CodeBuild 项目未排队
- segmentation-fault - 进程被 sgno 11 转储,dmesg 中没有段错误记录
- android - 如何将时间戳放在android生成的加密签名中
- javascript - 对象作为 React 子对象无效(找到:带有键 {..} 的对象)。.....改用数组。在 Select(由 Context.Consumer 创建)