我的目标是导出根节点、所有子节点以及重新创建资产所需的所有内容(例如,材质),但不包括任何无关的内容(例如,用于演示资产的照明设备,但这在逻辑上不属于资产,并且也不是资产根节点的子节点)。
举个简单的例子,假设场景包含一个球体和一个立方体。DAG 中两者都不是另一个的孩子。如果我传入球体的根节点,则只有球体应该出现在导出中。如果我选择多维数据集的根节点,则应该只出现多维数据集。
我认为我的选择逻辑不正确,但我可以在脚本编辑器中看到正在选择正确的节点(而不是其他节点)。
但是,无论我传入哪个根节点,都会导出整个场景(球体和立方体)。是否有我必须从中删除的条件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