锁定文件引用
 
 
 

可以锁定文件引用以防止在场景中引用它们时被意外修改。可以在首次创建文件引用时,启用“创建引用选项”(Create Reference Options)窗口中的“锁定”(Lock)选项锁定新的文件引用。在“引用编辑器”(Reference Editor)内可锁定现有文件引用。“锁定”(Lock)选项会锁定文件引用的所有节点和属性。

在协作工作环境中,如果需要锁定文件的节点和属性以避免引用这些文件的用户意外修改文件,则锁定文件引用非常有用。锁定某个文件引用时,将在“引用编辑器”(Reference Editor)内列出的引用旁边显示一个特殊锁定图标。

如果引用文件而不启用“锁定”选项,引用文件中的任何已锁定的已存在属性将保持不变。也就是说,如果被引用文件拥有已锁定的已存在属性,该文件在被引用时这些属性保持锁定。

您可以加载和卸载已锁定引用文件,已锁定属性将保持不变。如果需要修改已锁定引用文件上的任何节点或属性,可以解除锁定,然后使用“引用编辑器”(Reference Editor)重新锁定引用文件。

注意无法保存对已锁定文件引用的引用编辑。必须先解除锁定。

锁定或解除锁定现有文件引用

  1. “引用编辑器”(Reference Editor)中,通过单击其名称选择要锁定或解除锁定的文件引用。
  2. “引用编辑器”(Reference Editor)中,执行以下操作之一
    • 选择“引用 > 锁定引用”(Reference > Lock Reference)
    • 选择“引用 > 取消锁定引用”(Reference > Unlock Reference)
    • 在选定引用上单击鼠标右键 (),然后从显示的上下文相关菜单中选择“引用 > 锁定引用”(Reference > Lock Reference)“取消锁定引用”(Unlock Reference)

除了几个特定的属性和节点类型之外,默认情况下会锁定文件引用的所有节点和属性。通过两个 MEL 程序指定“锁定”(Lock)选项排除的属性和节点。每个程序将输出一个“锁定”(Lock)选项使用的字符串数组,以指定要执行的属性。第一个程序指定要排除的单个属性。第二个程序指定要按节点类型排除的属性。也就是说,只要在数组中声明节点类型,给定节点类型的整个属性集将被排除而不锁定。

无论排除了哪种属性,“锁定”(Lock)选项始终锁定已引用文件的所有节点。

可以创建自定义 MEL 程序来覆盖随 Maya 附带的 MEL 程序。必须以与 Maya 所附带程序完全相同的名称来命名该自定义 MEL 程序。还必须确保这些文件被放在 Maya 脚本路径中。

有关在 Maya 中使用 MEL 程序的详细信息,请参见手册的“MEL 和表达式”部分。有关在特定产品级环境中自定义锁定设置的详细信息,请参见下文。

自定义文件引用的锁定设置

以下示例描述了使用 Maya 附带的 MEL 程序,以排除属性和按节点类型属性的步骤。可将它们作为创建自定义 MEL 程序的基础。

注意

尽管可以使用 MEL 完全自定义这些程序,但是在团队产品级环境中工作的用户应在产品级中期更改这些程序时要谨慎,因为该更改将会意外影响整体管线和数据。

示例 1:排除属性的 MEL 程序

该示例介绍了如何创建自己的 MEL 程序,以指定文件引用锁定操作要排除的属性。本例中提供的 MEL 程序与 Maya 附带的程序一样。

  1. 使用文本编辑器创建 MEL 文件,并命名 MEL 文件:getLockReferenceExcludedAttributes.mel
  2. 将以下文本添加到文件中,确保完全遵照了语法:
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;
}
注意

必要时编辑该文本,以通过锁定操作添加或移除要排除的任何属性。也就是说,使用与以上语法相同的语法添加或移除任何 $lockReferenceExcludedAttributes [n] 行(必要时),同时确保数组索引 [n] 是连续的。

  1. 保存 MEL 文件并将其放置在 Maya 脚本路径中。

    如果使用与 Maya 分发的默认名称相同的名称命名该 MEL 文件,“锁定”选项将在下次启动 Maya 时,请使用该新自定义脚本来锁定文件引用。

    有关源 MEL 脚本和使用常用 MEL 程序的详细信息,请参见手册的“MEL 和表达式”部分。

示例 2: 排除节点类型的 MEL 程序

该示例介绍了如何创建自己的 MEL 程序,以指定文件引用锁定操作要按节点类型排除的属性。该示例中提供的 MEL 程序与 Maya 附带的程序相同。

  1. 使用您喜欢的文本编辑器创建 MEL 文件,并命名 MEL 文件:getLockReferenceExcludedNodeTypes.mel
  2. 将以下文本添加到文件中,确保完全遵照了语法:
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;
}
注意

必要时编辑该文本,以通过锁定操作添加或移除要排除的任何属性。也就是说,使用与以上语法相同的语法添加或移除任何 $lockReferenceExcludedNodeTypes[n] 行(必要时),同时确保数组索引 [n] 是连续的。

  1. 保存 MEL 文件并将其放置在 Maya 脚本路径中。

    如果使用与 Maya 附带的默认名称相同的名称命名该 MEL 文件,“锁定”(Lock)选项将在下次启动 Maya 时,请使用该新自定义脚本来锁定文件引用。

    有关源 MEL 脚本和使用常用 MEL 程序的详细信息,请参见手册的“MEL 和表达式”部分。