可能会出现这样一种情况:需要将节点从特定名称空间中移除,随后再将保留名称空间从场景中移除。这类情况可能如下:          

  • 将引用文件直接导入父场景,并计划将选定节点导出到新文件或引用中。

  • 需要清除当前使用的名称空间,以便其他用户可以引用该文件,而不会引起名称空间冲突。如果要导出的文件可能包含不需要的保留名称空间,这将是一个很好的做法。

移除名称空间时,您可以选择将已引用或导入的对象名称空间与父场景中存在的名称空间合并。如果出现重复的名称空间,将合并这些名称空间,并且重复的对象名称将以递增的数字作为后缀。          

可以使用“名称空间编辑器”(Namespace Editor)或使用 MEL 命令移除名称空间。          

使用“名称空间编辑器”(Namespace Editor)移除名称空间

  1. 通过选择使用名称空间的任何对象/节点,确定节点的名称空间。                  

    对象/节点的名称空间将在“通道盒”(Channel Box)“大纲视图”(Outliner)中亮显。例如,对于一个具有指定名称空间的对象,其名称可能如下所示:                  

    spaceJunk:pSphere1


  2. “名称空间编辑器”(Namespace Editor)中,选择要移除的名称空间。


  3. 单击“删除”(Delete)。                  

    如果要移除的名称空间包含节点,将出现“删除:”(Delete:)名称空间窗口。          

  • “删除:”(Delete:)名称空间窗口中,单击下列选项之一:

    • “与根合并”(Merge with Root),用于合并名称空间并将已删除名称空间包含的节点移到根名称空间中。                      

    • “与父对象合并”(Merge with Parent),用于合并名称空间并将已删除名称空间包含的节点移到直接父名称空间中。                      

    • “删除”(Delete),用于删除名称空间及其包含的节点。                      

使用 MEL 命令移除名称空间

接下来的两套步骤介绍了如何使用 namespace MEL 命令在场景中将节点从现有名称空间中移除。您可以移除名称空间及其内容,或移除该名称空间并将其内容与根或父名称空间合并。

在场景中移除所有节点的指定名称空间

  1. 通过选择使用名称空间的任何对象/节点,确定节点的名称空间。                  

    选择对象/节点后,其名称空间将出现在“通道盒”(Channel Box)“大纲视图”(Outliner)或其他编辑器中。具有指定名称空间的对象的名称将显示如下:                  

    spaceJunk:pSphere1

    在本示例中,名称空间称为“spaceJunk”。                  


  2. “命令行”(Command Line)中,请执行以下操作:

    • 要移除“spaceJunk”名称空间并将位于“spaceJunk”名称空间中的任何节点与根名称空间合并,请键入:

      namespace -mergeNamespaceWithRoot -removeNamespace "spaceJunk";


    • 要移除“spaceJunk”名称空间和并将位于“spaceJunk”名称空间中的任何节点与父名称空间合并,请键入:

      namespace -mergeNamespaceWithParent -removeNamespace "spaceJunk";


    • 移动位于“spaceJunk”名称空间中的任何节点,使其位于默认的名称空间中。

      namespace -mv “spaceJunk” “:” -f

      任何拥有“spaceJunk”名称空间的节点现在没有指定的名称空间。即,: 指定默认的名称空间,-f 标志强制命令,即使其会产生命名冲突也是如此。因此,具有相同名称的节点将被指定一个递增的数字。

从文件中移除保留名称空间

注意若要移除保留名称空间,必须首先确保场景中当前没有节点位于该名称空间中。有关详细信息,请参见上述步骤。                

  1. 应该先知道保留名称空间的名称,然后再移除它。有关确定场景中名称空间的详细信息,请参见 Maya 帮助中的 namespaceInfo。在本示例中,要移除的名称空间称为“spaceJunk”。                

  2. “命令行”(Command Line)中,键入下列文本字符串以将保留 spaceJunk 名称空间从场景中移除。                  

    namespace -rm “spaceJunk”

    注意

    名称空间不能命名为与场景中当前使用的任何现有名称空间有冲突的名称。



,