« 立って XSI。 | トップページ | 第2次XSI男Tシャツお待ち下さいませ。 »

2011年7月22日 (金)

バシッとカメラ。

唐突にスクリプト。





//    選んでいるものが Camera, CameraRoot, CameraInterest のいずれかなら、
//    そこから Camera を取得

if ( Selection.count != 0 )
{
    if ( Selection(0).Type == "camera" )
    {
        var oCam = Selection(0);
    }
    else if ( Selection(0).Type == "CameraRoot" )
    {
        var oCam = Selection(0).Camera;
    }
    else if ( Selection(0).Type == "CameraInterest" )
    {
        var oConstraining = GetConstrainedObjects( Selection(0) )(0);
        if ( oConstraining.item(0).Type == "camera" )
        {
            var oCam = oConstraining.item(0);
        }
    }
}

if ( oCam )    //    Camera を取得できてたら以下実行。取得できてなければ何も起こらず。
{
    View = GetFocusedViewport( );
    var oVM = Application.Desktop.ActiveLayout.Views.Find( "View Manager" );
    oVM.SetAttributeValue( "activecamera:" + View, oCam.fullname );
}







Camera, CameraRoot, CameraInterest のいずれかを選んで実行すると、現在アクティブなビューポート(ABCDのどれか)がバシッそのカメラに変わります。




どういう時に使うかというと、

Toomanycams

こういう時とかです。


何らかの事情で、1つのシーン内に死ぬほどいっぱいカメラがあって、通常の Camera のメニューから選ぶのが苦痛な時などです。


Group 作っておくなり名前で管理するなり、何らかの管理方法でカメラを把握しておき、Schematic からでも Explorer からでもビューポートからでも、何らかの方法でそのカメラを選択します。 選択さえできちまえばこっちのもん、このスクリプトを実行すればアクティブなビューにそのカメラがバシッと来ます。 上の画像のような長~~いリストをスクロールして探す必要はありません。

こんなんじゃダメですか。
そうですか。




そう言えばだいぶ昔、カスタムイベントを使って、カメラを選択した瞬間に特定のビューポートがそのカメラに変わるというプラグインも書きました。 人間の会話芝居をするようなシーンで、カメラがたくさんあり、そういう機能があると便利なのにとボヤいていたガイジンさんのために書いてあげたのでした。 どこへ行ったっけ。








よし、気分転換終了。
しかしこの気分転換で集中力がイッキに落ちてしまった。
気分転換のつもりが、罠にはまった。
戻る気がしない。
今日はもうやめるか。
すいません。
それではごきげんよう。



.

|

« 立って XSI。 | トップページ | 第2次XSI男Tシャツお待ち下さいませ。 »

コメント

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: バシッとカメラ。:

« 立って XSI。 | トップページ | 第2次XSI男Tシャツお待ち下さいませ。 »