表示/非表示を簡単に切り替えたりするのに便利なレイヤーですが、モーションなどを外注に出したりした場合、まれにコチラで作成したリグをレイヤーに登録しやがる不届き者が居たりします。
コレをやられると、リグのcurveShapeに設定した overrideColor がレイヤーの色で上書きされてしまい復元できなくなります。要するにリグを破壊されてしまうと言うわけですね。
多くの人は、階層をレイヤーへ登録する場合、なにげなく Select Hierarchy でオブジェクトを選択して、なんとなくレイヤーへ Add Selected Objects で追加していると思います。
意外と忘れられがちですが、こういう風に選択すると shapeノードも選択していることになります。
nodeEditorで確認すると・・・
レイヤーから shapeノードへ素敵なサムシングが接続されています。
Relationsip Editorでも確認できますね。
こうしない為には、Select Hierarchyの後に、
select -d (`ls -sl -s`);
をコマンドラインで実行させる必要があるのです。
面倒です。
発注書とかでネガティブリストを作っても、まぁ守られることはありません。
で、防衛の為にレイヤーへノードを登録させないように細工をしておく必要があるのです。
要は接続できないようにアトリビュートをロックしておけば良い訳です。
どのアトリビュートに接続されているかを確認。
drowOverrideと云うアトリビュートらしい。
いったん全てのオブジェクトをレイヤーから外して、アトリビュートをロックするためのコマンド
setAttr -lock on "locatorShape1.drawOverride";
を実行します。
すると、先ほどの手順でレイヤーへ追加しようとしても
// Error: line 0: Connection not made: 'layer1.drawInfo' -> 'locatorShape.drawOverride'. Destination is locked. //
と、エラーでレイヤーへの追加処理が止まりました。
最低でも shapeノード、できればリグのノードの全部のアトリビュートをロックしておけば、レイヤーへ登録しようとしている輩の心をへし折る事ができるでしょう。
こういう事をしておくと、たまに闘志を燃やす変態さんも居たりしますけどね。
ここに・・・。
0 件のコメント:
コメントを投稿