Python代碼解決RenderView視窗not found問題,pythonrenderview
源起
Error:setParent: Object 'renderView' not found
這是一個在工作中很常見的問題,以前做特效的時候有10%的機率會碰到,多發生在開啟其他組交接來的Maya情境檔案時;
當你不管是從File菜單Open,還是直接拖進Maya都無法解決時、使用下面這段代碼即可;
過程
這原本是一段Mel,我用Python把她重寫了一下,變成了Python代碼~ 根據發展的趨勢,Python有可能全面取代Mel。
import maya.cmds as mcexists = 0getPan = mc.getPanel(scriptType = 'renderWindowPanel')for item in getPan: if item == 'renderView': print 'renderView exists.\n' exists = 1if 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流程的最後一個環節(其實特效在建模確定之後就可以開始同步製作了),經過模型、動畫、燈光、渲染開啟過一遍的工程檔案,交到特效組手上的時候就會充滿各種冗餘節點,而很多人沒有清理情境的習慣,這樣就容易導致檔案出現各種問題。