源起
Error:setParent: Object 'renderView' not found
这是一个在工作中很常见的问题,以前做特效的时候有10%的概率会碰到,多发生在打开其他组交接来的Maya场景文件时;
当你不管是从File菜单Open,还是直接拖进Maya都无法解决时、使用下面这段代码即可;
过程
这原本是一段Mel,我用Python把她重写了一下,变成了Python代码~ 根据发展的趋势,Python有可能全面取代Mel。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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流程的最后一个环节(其实特效在建模确定之后就可以开始同步制作了),经过模型、动画、灯光、渲染打开过一遍的工程文件,交到特效组手上的时候就会充满各种冗余节点,而很多人没有清理场景的习惯,这样就容易导致文件出现各种问题。
原文链接:http://www.cnblogs.com/jackchiang/p/4616965.html