Python代码解决RenderView窗口not found问题

yipeiwu_com7年前Python基础

源起

  Error:setParent: Object 'renderView' not found
  这是一个在工作中很常见的问题,以前做特效的时候有10%的概率会碰到,多发生在打开其他组交接来的Maya场景文件时;
  当你不管是从File菜单Open,还是直接拖进Maya都无法解决时、使用下面这段代码即可;

过程

  这原本是一段Mel,我用Python把她重写了一下,变成了Python代码~ 根据发展的趋势,Python有可能全面取代Mel。

import maya.cmds as mc

exists = 0
getPan = mc.getPanel(scriptType = 'renderWindowPanel')
for item in getPan:
  if item == 'renderView':
    print 'renderView exists.\n'
    exists = 1
if exists == 0:
  for item in getPan:
    print item + '\n'
     if item == 'renderWindowPanel1':
      mc.deleteUI( renderWindowPanel1 )
      renderPanel = mc.scriptPanel( type = 'renderWindowPanel', unParent = renderView)
      mc.scriptedPanel( ex = 1, l = "renderPanel", rp = 'renderPanel')

把代码复制到Maya的Script Editor,按Ctrl+Enter执行即可;

有人用前台渲染插件解决这个问题,其实前台渲染插件的作用是解决“只能渲染一帧”的问题。

扩展

这段代码还可以添加到Maya的工具架上,具体步骤如下:

在某些公司,他们把特效作为CG流程的最后一个环节(其实特效在建模确定之后就可以开始同步制作了),经过模型、动画、灯光、渲染打开过一遍的工程文件,交到特效组手上的时候就会充满各种冗余节点,而很多人没有清理场景的习惯,这样就容易导致文件出现各种问题。

相关文章

Python的Tornado框架实现图片上传及图片大小修改功能

图片的上传 上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 ty...

总结Python中逻辑运算符的使用

总结Python中逻辑运算符的使用

下表列出了所有Python语言支持的逻辑运算符。假设变量a持有10和变量b持有20,则:  示例: 试试下面的例子就明白了所有的Python编程语言提供了逻辑运算符:...

django2笔记之路由path语法的实现

9月23,Django 发布了2.0a1版本,这是一个 feature freeze 版本,如果没有什么意外的话,2.0正式版不会再增加新的功能了。按照以往的规律,预计正式版将在12月发...

Python求平面内点到直线距离的实现

Python求平面内点到直线距离的实现

近期遇到个问题,需要计算平面内点到直线的距离,发现数学知识都还给老师了,度娘后找到计算方法,特此记录。 点到直线的计算公式: 通过公式推导,得到信息: A:直线斜率 B:固定值-1 C...

Python logging管理不同级别log打印和存储实例

Python内置模块logging管理不同级别log打印和存储,非常方便,从此告别了使用print打桩记录,我们来看下logging的魅力吧 import logging lo...