【问题标题】:Maya , render layers, and instances in Python 2.7Python 2.7 中的 Maya、渲染层和实例
【发布时间】:2021-09-22 12:44:47
【问题描述】:

我有几个具有不同随机名称的渲染层。每个渲染层都有一个灯光实例。我需要删除这个实例。

据我所知:

import maya.app.renderSetup.model.override as override
import maya.app.renderSetup.model.selector as selector
import maya.app.renderSetup.model.collection as collection
import maya.app.renderSetup.model.renderLayer as renderLayer
from maya.app.renderSetup.model.renderSetup import instance

import maya.cmds as cmds

rs = instance()

#this creates a render layer called MyRenderSetupLayer
rl = rs.createRenderLayer("MyRenderSetupLayer")

#This creates a lights collection instance inside the created render layer
l1 = rl.lightsCollectionInstance()

#deletes the lights collection instance in the render layer
collection.delete(l1)

最后一行是删除创建的渲染层中的灯光实例,所以我知道你可以做到。我的问题是我不知道如何将变量(如 l1)分配给现有的灯光集合实例,以便我可以删除它。

如果我尝试查看 l1 是什么类型,我会得到

我的渲染层中总是有不同的名称,但即使我这样做了,我也无法弄清楚如何删除这些实例,除非我在该脚本中创建它们,因为它们被分配给一个变量,然后我可以就这样删除它。但由于这些文件是由不同的人创建的,我目前的工作流程不起作用。

非常感谢!我很感激

【问题讨论】:

    标签: python maya


    【解决方案1】:

    我已经整理好了。您需要将灯光实例视为一个集合。虽然,集合的名称不会是 lights,因为它在渲染层中显示如下:

    默认情况下,这些实例将命名为 lightsCollectionlightsCollection1lightsCollection2 等等。

    您可以在大纲中找到这些实例,以确保您知道您所追求的名称是什么,但您必须先禁用“仅显示 DAG 对象”,然后在渲染设置菜单中,您需要启用“在编辑器中显示渲染设置节点”,因为它们默认是隐藏的。

    不要只删除这些节点,因为它可能会导致您的场景出现问题。 如果有人想了解更多信息,请告诉我,我会发布更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多