ファイル リファレンスをロックする
 
 
 

ファイル リファレンスをロックすると、シーンで参照するときに誤って変更されることがありません。ファイル リファレンスを新しく作成するときにリファレンスの作成オプション(Create Reference Options)ウィンドウのロック(Lock)オプションをオンにすると、ロックできます。既存ファイル リファレンスは、リファレンス エディタからロックできます。ロック オプションはファイル リファレンスのすべてのノードとアトリビュートをロックします。

ファイル リファレンスのロックは共同作業環境の場合に便利な機能です。ファイルのノードとアトリビュートをロックすると、参照時に誤ってリファレンスを変更するのを防止できます。ファイル リファレンスをロックすると、特別なロックアイコンがリファレンス エディタにリストされるリファレンスの横に表示されます。

ロック オプションをオンにせずにファイルを参照しても、リファレンス ファイルでロックされていた既存のアトリビュートは変更されません。つまり、ファイルを参照するときに既存のアトリビュートがロックされていると、そのアトリビュートはロックされたままになります。

ロックされたリファレンス ファイルはロードおよびアンロードでき、ロックされたアトリビュートは変更されません。ロックされたリファレンス ファイルのノードとアトリビュートを変更する必要がある場合は、リファレンス エディタからリファレンス ファイルをロック解除して作業後にロックし直してください。

注:リファレンスの編集内容をロックされたファイル リファレンスに保存することはできません。この場合、まずリファレンスをロック解除する必要があります。

既存のファイル リファレンスをロックまたはロック解除するには

  1. リファレンス エディタでファイル リファレンスの名前をクリックして、ロックまたはロック解除するファイル リファレンスを選択します。
  2. リファレンス エディタで、次のいずれかの方法を実行します。

特定のアトリビュートとノード タイプを除いて、ファイル リファレンスのすべてのノードとアトリビュートはデフォルトでロックされています。Lock オプションから除外するアトリビュートとノードのタイプは、2 つの MEL プロシージャで指定できます。各プロシージャはロック オプションで使用される文字列配列を出力して、除外するアトリビュートを指定します。1 番目のプロシージャは除外する個々のアトリビュートを指定します。2 番目のプロシージャは除外するアトリビュートをノード タイプで指定します。つまり、特定のノード タイプのアトリビュート セット全体が、配列でノード タイプを宣言するだけでロック対象から除外されます。

除外するアトリビュートに関係なく、ロック オプションはリファレンス ファイルのすべてのノードを常にロックします。

カスタマイズされた MEL プロシージャを作成することで、Maya に付属の MEL プロシージャをオーバーライドすることができます。カスタマイズした MEL プロシージャには Maya 付属のものとまったく同じ名前を付ける必要があります。また、そのファイルは必ず Maya のスクリプト パスに配置してください。

Maya の MEL プロシージャの操作の詳細については、『MEL とエクスプレッション』マニュアルを参照してください。特定の制作環境でのロック設定のカスタマイズの詳細については、下記を参照してください。

ファイル リファレンスのロック設定をカスタマイズする

次の例は、アトリビュートおよびノード タイプ別アトリビュートを除外するための Maya に付属の MEL プロシージャです。これらはカスタマイズされた MEL プロシージャを作成する場合の基礎として利用できます。

注:これらのプロシージャは MEL で完全にカスタマイズできますが、チームの制作環境で作業するユーザがこれらのプロシージャを制作中に変更する場合には注意が必要です。変更内容が、誤ってパイプライン全体およびデータに影響を及ぼす可能性があるためです。

例 1: アトリビュートを除外する MEL プロシージャ

この例は独自の MEL プロシージャの作成方法を示しており、ファイル リファレンスのロック操作から除外するアトリビュートを指定します。この例の MEL プロシージャは Maya で配布されるプロシージャと同じものです。

  1. テキスト エディタを使用して 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 スクリプト パスに配置します。

    MEL ファイルに Maya で配布されるデフォルト ファイルとまったく同じ名前を付けると、次回の Maya の起動時にはロック オプションはこのカスタマイズされた新しいスクリプトを使用してファイル リファレンスをロックします。

    MEL スクリプトのソースと一般的な MEL プロシージャ操作の詳細については、『MEL とエクスプレッション』マニュアルを参照してください。

例 2: ノード タイプを除外する MEL プロシージャ

この例は独自の MEL プロシージャの作成方法を示しており、ノード タイプ単位でファイル リファレンスのロック対象から除外するアトリビュートを指定します。この例の MEL プロシージャは Maya で配布されるプロシージャと同じものです。

  1. 任意のテキスト エディタを使用して 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 ファイルに付けると、次回の Maya の起動時にはロック オプションはこのカスタマイズされた新しいスクリプトを使用してファイル リファレンスをロックします。

    MEL スクリプトのソースと一般的な MEL プロシージャ操作の詳細については、『MEL とエクスプレッション』マニュアルを参照してください。