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

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

相关文章

flask框架配置mysql数据库操作详解

flask框架配置mysql数据库操作详解

本文实例讲述了flask框架配置mysql数据库操作。分享给大家供大家参考,具体如下: 该篇博客配置环境为:python版本3.5,flask2.0,python3中已经不再支持MySQ...

Django实现组合搜索的方法示例

Django实现组合搜索的方法示例

一、实现方法 1.纯模板语言实现 2.自定义simpletag实现(本质是简化了纯模板语言的判断) 二、基本原理 原理都是通过django路由系统,匹配url筛选条件,将筛选条件作为数据...

Python多继承顺序实例分析

本文实例讲述了Python多继承顺序。分享给大家供大家参考,具体如下: 示例1: #-*- coding:utf-8 -*- #!python2 class A(object):...

Python实现LRU算法的2种方法

LRU:least recently used,最近最少使用算法。它的使用场景是:在有限的空间中存储对象时,当空间满时,会按一定的原则删除原有的对象,常用的原则(算法)有LRU,FIFO...

详解Python使用simplejson模块解析JSON的方法

详解Python使用simplejson模块解析JSON的方法

1,Json模块介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript...