源起
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代码解决renderview窗口not found问题相关文章请关注php中文网!