Как вы получаете список майя; Команда для отображения слоев рендеринга в порядке их отображения в редакторе слоев рендеринга? - PullRequest
0 голосов
/ 14 января 2019

В Maya, когда я перечисляю слои рендеринга в сцене, Maya возвращает слои, но не всегда в том порядке, в котором они отображены в его старом редакторе слоев рендеринга. Это верно после изменения имени существующего слоя рендеринга или добавления и вычитания слоев рендеринга. Есть ли способ составить список слоев и сделать так, чтобы Maya соблюдала порядок, используемый в редакторе слоев рендера?

import maya.cmds в качестве cmds cmds.ls (type = "renderLayer")

1 Ответ

0 голосов
/ 15 января 2019

Слои рендеринга и слои отображения имеют атрибут «displayOrder», который отсчитывается снизу - таким образом, # 1 - это самый нижний слой в пользовательском интерфейсе, # 2 - тот, который находится над ним, и так далее. Слой по умолчанию всегда имеет идентификатор 0.

Это даст вам словарь renderLayers, где ключи - это порядки, а значения - слои:

render_layers = {
    cmds.getAttr( i + ".displayOrder") : i for i in cmds.ls(type='renderLayer')
}

Вы можете превратить это в список в порядке отображения:

layers_in_order = [render_layers[x] for x in sorted(render_layers.keys())]
...