python - 您如何获得 Maya 列表;命令按渲染层在渲染层编辑器中的显示顺序列出渲染层?
问题描述
在 Maya 中,当我列出场景中的渲染层时,Maya 会返回这些层,但并不总是按照它们在其旧版渲染层编辑器中的显示顺序。在您更改现有渲染层的名称或添加和减去渲染层后,这是正确的。有没有办法列出图层并让 Maya 遵守渲染图层编辑器中使用的顺序?
将 maya.cmds 导入为 cmds cmds.ls(type = "renderLayer")
解决方案
渲染层和显示层有一个名为“displayOrder”的属性,它从底部开始计数——所以#1 是 UI 中的最低层,#2 是它上面的层,依此类推。默认层的 id 始终为 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())]
推荐阅读
- node.js - 为什么以下文件路径正确....ejs ,nodejs
- php - 在 PHP 中使用 Google API OAuth 获取用户信息
- python - 如何防止在 Python 中从数据库中读取的线程累积内存使用量?
- ceph - libceph:内核客户端保持无效连接重试
- c# - Azure 门户中的 Azure Function Environment.GetEnvironmentVariable 对象引用错误
- javascript - 在 reactJs/javascript 中查找 url 并使其可点击
- java - 在哪些情况下选择 Katalon 而不是 Selenium?
- java - 如何在android中重命名下载的文件
- c++ - 从 QwtPlotZoomer 派生的类未按预期工作
- python - 如何确认我的 tensorflow 模型恢复成功?