Как добавить выбранные объекты в renderLayerSetup в Maya 2017 с Python? - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь создать код Python для рендеринга только выбранных объектов в Maya и хочу знать, как добавить выбранные объекты в renderLayerSetup в Maya 2017?

Я пытался использовать какой-то код, который нашел

import maya.app.renderSetup.model.renderSetup as renderSetup
rs = renderSetup.instance()
test = rs.createRenderLayer('render')
scene_Assets = test.createCollection('scene_Assets')
scene_Assets.getSelector().setPattern('name')

но этот код требовал от меня использования имени объекта для добавления в коллекцию

Я ожидаю, что выходные данные смогут добавлять объекты в коллекцию без переименования всех имен.

1 Ответ

0 голосов
/ 03 июня 2019

это мой код, он работает в Maya 2019.1

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
import maya.app.renderSetup.model.renderSetup as renderSetup
import maya.cmds as cmds

# 連接 render setup,如無,則新建
rs = renderSetup.instance()

# 連接 render layer,如無,則新建
try: rl = rs.getRenderLayer("previewLayer") # 如成功:返回實例;如失敗:拋出異常
except: rl = rs.createRenderLayer("previewLayer")

# 連接對象集合 collection,如無,則新建
try: c1 = rl.getCollectionByName("previewCollection")
except:  c1 = rl.createCollection("previewCollection")

# 連接選擇器 selector
sl = c1.getSelector()

# staticSelection
ss = sl.staticSelection

# add the selection to list
ss.add(cmds.ls(sl=1))

# remove all static selection from the list
ss.remove(ss.asList())
...