ファイル リファレンスをロックすると、シーンで参照するときに誤って変更されることがありません。ファイル リファレンスを新しく作成するときにリファレンスの作成オプション(Create Reference Options)ウィンドウのロック(Lock)オプションをオンにすると、ロックできます。既存ファイル リファレンスは、リファレンス エディタからロックできます。ロック オプションはファイル リファレンスのすべてのノードとアトリビュートをロックします。
ファイル リファレンスのロックは共同作業環境の場合に便利な機能です。ファイルのノードとアトリビュートをロックすると、参照時に誤ってリファレンスを変更するのを防止できます。ファイル リファレンスをロックすると、特別なロックアイコンがリファレンス エディタにリストされるリファレンスの横に表示されます。
ロック オプションをオンにせずにファイルを参照しても、リファレンス ファイルでロックされていた既存のアトリビュートは変更されません。つまり、ファイルを参照するときに既存のアトリビュートがロックされていると、そのアトリビュートはロックされたままになります。
ロックされたリファレンス ファイルはロードおよびアンロードでき、ロックされたアトリビュートは変更されません。ロックされたリファレンス ファイルのノードとアトリビュートを変更する必要がある場合は、リファレンス エディタからリファレンス ファイルをロック解除して作業後にロックし直してください。
既存のファイル リファレンスをロックまたはロック解除するには
特定のアトリビュートとノード タイプを除いて、ファイル リファレンスのすべてのノードとアトリビュートはデフォルトでロックされています。Lock オプションから除外するアトリビュートとノードのタイプは、2 つの MEL プロシージャで指定できます。各プロシージャはロック オプションで使用される文字列配列を出力して、除外するアトリビュートを指定します。1 番目のプロシージャは除外する個々のアトリビュートを指定します。2 番目のプロシージャは除外するアトリビュートをノード タイプで指定します。つまり、特定のノード タイプのアトリビュート セット全体が、配列でノード タイプを宣言するだけでロック対象から除外されます。
除外するアトリビュートに関係なく、ロック オプションはリファレンス ファイルのすべてのノードを常にロックします。
カスタマイズされた MEL プロシージャを作成することで、Maya に付属の MEL プロシージャをオーバーライドすることができます。カスタマイズした MEL プロシージャには Maya 付属のものとまったく同じ名前を付ける必要があります。また、そのファイルは必ず 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;
}