为什么exportSelected导出非选定节点?

时间:2016-02-18 13:28:31

标签: python maya pymel

我的目标是导出根节点,所有子项以及重新创建资产所需的所有内容(例如,材料),但不包括任何无关的内容(例如,用于演示资产的照明装备,但这在逻辑上是不属于资产的一部分,也不是资产根节点的子节点。

举个简单的例子,假设场景包含一个球体和一个立方体。 DAG中的另一个孩子也不是。如果我传入球体的根节点,则只有球体应出现在导出中。如果我选择多维数据集的根节点,则只应显示多维数据集。

我认为我的selection逻辑不正确,但我可以在脚本编辑器中看到正在选择正确的节点(而不是其他节点)。

但是,无论我传入哪个根节点,都会导出整个场景(球体和立方体)。是否有必须从exportSelected删除的条件,或者我必须添加的其他条件?

import pymel.core as core

core.select(clear=True)
core.select(root, hierarchy=True)  # selects node hierarchy as expected
core.select(root, allDependencyNodes=True, add=True)  # selects textures
# (although it selects unrelated textures too)
core.system.exportSelected(target_path, shader=True, preserveReferences=True)
# but this exports the whole scene,
# including nodes that were not selected by the lines above

1 个答案:

答案 0 :(得分:0)

这种情况发生了,因为如果东西以某种方式连接它会导出那个,比如说,你想要导出一个网格,你只选择网格,但是网格是变形器的输入,你很可能会导出整个网格变形堆栈。 如果您想避免这种情况,则需要禁用某些行为。 如果选中导出选定选项,您将看到有一个名为的字段: "包括这些输入"。 这些标志反映在pymel命令中,尝试将它们设置为false并使用组合稍微玩一下,直到找到正确的标志。 http://download.autodesk.com/us/maya/2011help/PyMel/generated/functions/pymel.core.system/pymel.core.system.exportSelected.html

根据您所讨论的资产类型,问题变得更加棘手,如果只是静态网格物体,或者是装备或其他东西。