« 淫スタンスを選ぶ。 | トップページ | 貴様、ダブってるなら失せろ。 »

2011年4月30日 (土)

貴様、どのレイヤだ。

すんげえレイヤが増えてきましてね。


このオブジェクト、どのレイヤに入ってるの? とかわかんなくなります。
そのたびに、レイヤをいちいちオンオフしてみたり、Explorer をレイヤモードにして F キー押してみたりしてます。 まあそれほどでもないけど、ちっとめんどくさい。


なので今日も唐突にスクリプトを書いてみましたが、便利かどうか微妙。






//    モディファイヤキーを押していたかどうか取得

var rtn = GetKeyboardState( );
ModKey = rtn(1);

//    レイヤ入れる箱用意
var oLayers = XSIFactory.CreateObject( "XSI.Collection" );
oLayers.Unique = true;

//    現在選択中のブツをループ
for ( var i=0; i<Selection.count; i++ )

{
    //    レイヤに入ることができるのは 3D オブジェクトのみなので(たぶん)、
    //    3Dオブジェクト(X3DObject) 以外が選択されていたら無視

    if ( Selection(i).IsClassOf( siX3DObjectID ) )
    {       
       
//    オブジェクトのオーナーさんを取得
        var oOwners = Selection(i).Owners;

          //    オーナーさんを全部ループしてレイヤを探す
        for ( var j=0; j<oOwners.count; j++ )
        {
            
//    オーナーさんの中に、レイヤを発見したら、
            if ( oOwners(j).IsClassOf( siLayerID ) )
            {
               
//    箱に入れ、ログし、ループ中断(=高速化のため。複数のレイヤには所属できないから)
                oLayers.Add( oOwners(j) );
                Logmessage( Selection(i) + " -- Layer : " + oOwners(j) );
                break;
            }
        }
    }
}

//    レイヤを選択&PPG表示
SelectObj( oLayers );
InspectObj( oLayers );

//    Shift とか何か押されていたら、そのレイヤをアクティブにする。
//    ただし複数のブツを選んでいて複数のレイヤが取得された場合は、最初に選んだブツのレイヤ。

if ( ModKey != 0 )
{
    SetCurrentLayer( oLayers(0) );
}



オブジェクト(複数可)を選んで実行します。
すると、そのオブジェクトが所属するレイヤがスクリプトエディタ上にログされ、かつそのレイヤが選択状態になります。
実行するときに Shift など押しておくと、上記に加えて、該当レイヤがアクティブ(現在レイヤ)になります。

微妙。


レイちゃん
の機能として取り込むかな。
そういえばレイちゃん大きなバグがあった気がする。
なんだっけ。



俺は、モデリングとか整理だとか、いわば途中段階でしかレイヤを使いません。 開発などが終わり実際のプロダクションの段階になると、レイヤは削除してしまったり、あるいは全部オンのまま放置することが多いですね。 間違ってもレイヤでレンダリングのオンオフなどを管理してはいけない。

基本的にレイヤは嫌いです。 Scene Layer Manager の使い勝手も嫌いです。実に使いにくい。 しかし大量のオブジェクトが出てきて、かつ部分ごとに綺麗に分かれるような構造のものを作っていると、やはりレイヤを使わないわけにはいかない感じがしますね。 Group とかでも同じことはできるけど、やっぱりレイヤの方が手軽です。 だからしかたなく使います。 インターフェースさえもうちっと使いやすければなあ。



RenderTree や ICETree のような、ノードっぽい表示でレイヤ管理とかできないかね。 そのビューの中ではレイヤの配置も自由。 ラベルを付けたり、コメントを付けたり、コンパウンドのようにレイヤがレイヤを内包できたり、レイヤの結合とかもできたり。 うん、そういうのがいいな。 嘔吐デスクさん、次のバージョンの目玉はノーダルレイヤマネージャでお願いします。



.

|

« 淫スタンスを選ぶ。 | トップページ | 貴様、ダブってるなら失せろ。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/217974/51535287

この記事へのトラックバック一覧です: 貴様、どのレイヤだ。:

« 淫スタンスを選ぶ。 | トップページ | 貴様、ダブってるなら失せろ。 »