2016年12月18日日曜日

アウトライナーのノードに色を付ける

会社では最近までmaya2014を使用していたので気が付かなかったのですが、Attribute Editor の Display フレームに見慣れないアトリビュートが追加されていることに気が付きました。


Outliner Color で色を指定して、


Use Outliner Color のチェックを入れると・・・



Outliner 上のノードの色が変わります。
Shapeノードにも色が付けれるけれど、ふつう Outliner は Transformノードしか表示していないと思うので Shape の色を変えても、ほぼ意味なしですね。


Hidden In Outliner を使えばノード自体を消すこともできるみたいです。
Constrain とかを Outliner から消せるので便利かも。


Outliner の Display にも関連メニューが追加されていて、有効無効が切り替えられるようです。


ただ、この機能、アトリビュートエディタで編集すると maya の負荷によって色が変わったり変わらなかったりするみたいです。
設定しても、色が保存されなかったり。

なので、スクリプトで制御する方が安全。

設定するアトリビュートは、useOutlinerColor と outlinerColor ショートネームは uocol と oclr です。

global proc outlineColor()
{
    string $jnts[]=`ls -typ "joint"`;
    for( $jnt in $jnts )
    {
        setAttr ($jnt+".uocol") 1;
        setAttr ($jnt+".oclr") 0 1 1;
        
    }
    
    string $lcts[]=`ls -typ "locator"`;
    for( $lct in $lcts )
    {
        string $pLct[]=`listRelatives -p $lct`;
        setAttr ($pLct[0]+".uocol") 1;
        setAttr ($pLct[0]+".oclr") 1 1 0;
        
    }
    
}



transform ノードである joint は、リストして直接変えればよいですが、shape ノードである locator なんかは、親の transform を調べてソレを変更する必要があります。


0 件のコメント:

コメントを投稿