源起
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中文網!