可以锁定文件引用以防止在场景中引用它们时被意外修改。可以在首次创建文件引用时,启用“创建引用选项”(Create Reference Options)窗口中的“锁定”(Lock)选项锁定新的文件引用。在“引用编辑器”(Reference Editor)内可锁定现有文件引用。“锁定”(Lock)选项会锁定文件引用的所有节点和属性。
在协作工作环境中,如果需要锁定文件的节点和属性以避免引用这些文件的用户意外修改文件,则锁定文件引用非常有用。锁定某个文件引用时,将在“引用编辑器”(Reference Editor)内列出的引用旁边显示一个特殊锁定图标。
如果引用文件而不启用“锁定”选项,引用文件中的任何已锁定的已存在属性将保持不变。也就是说,如果被引用文件拥有已锁定的已存在属性,该文件在被引用时这些属性保持锁定。
您可以加载和卸载已锁定引用文件,已锁定属性将保持不变。如果需要修改已锁定引用文件上的任何节点或属性,可以解除锁定,然后使用“引用编辑器”(Reference Editor)重新锁定引用文件。
除了几个特定的属性和节点类型之外,默认情况下会锁定文件引用的所有节点和属性。通过两个 MEL 程序指定“锁定”(Lock)选项排除的属性和节点。每个程序将输出一个“锁定”(Lock)选项使用的字符串数组,以指定要执行的属性。第一个程序指定要排除的单个属性。第二个程序指定要按节点类型排除的属性。也就是说,只要在数组中声明节点类型,给定节点类型的整个属性集将被排除而不锁定。
无论排除了哪种属性,“锁定”(Lock)选项始终锁定已引用文件的所有节点。
可以创建自定义 MEL 程序来覆盖随 Maya 附带的 MEL 程序。必须以与 Maya 所附带程序完全相同的名称来命名该自定义 MEL 程序。还必须确保这些文件被放在 Maya 脚本路径中。
有关在 Maya 中使用 MEL 程序的详细信息,请参见手册的“MEL 和表达式”部分。有关在特定产品级环境中自定义锁定设置的详细信息,请参见下文。
以下示例描述了使用 Maya 附带的 MEL 程序,以排除属性和按节点类型属性的步骤。可将它们作为创建自定义 MEL 程序的基础。
该示例介绍了如何创建自己的 MEL 程序,以指定文件引用锁定操作要排除的属性。本例中提供的 MEL 程序与 Maya 附带的程序一样。
global proc string[] getLockReferenceExcludedAttributes() { // Return a string array containing a list of attributes // to be skipped during locking of a referenced file. The // listed attributes locked state will remain the same as // in the referenced file. string $lockReferenceExcludedAttributes[]; $lockReferenceExcludedAttributes[0] = "visibility"; return $lockReferenceExcludedAttributes; }
该示例介绍了如何创建自己的 MEL 程序,以指定文件引用锁定操作要按节点类型排除的属性。该示例中提供的 MEL 程序与 Maya 附带的程序相同。
global proc string[] getLockReferenceExcludedNodeTypes() { // Return a string array containing a list of node types // whose attributes should be skipped during locking of a // referenced file. string $lockReferenceExcludedNodeTypes[]; $lockReferenceExcludedNodeTypes[0] = "lightLinker"; $lockReferenceExcludedNodeTypes[1] = "displayLayerManager"; $lockReferenceExcludedNodeTypes[2] = "displayLayer"; $lockReferenceExcludedNodeTypes[3] = "renderLayerManager"; $lockReferenceExcludedNodeTypes[4] = "renderLayer"; return $lockReferenceExcludedNodeTypes; }