バシッとカメラ。
唐突にスクリプト。
// 選んでいるものが 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のどれか)がバシッとそのカメラに変わります。
どういう時に使うかというと、
こういう時とかです。
何らかの事情で、1つのシーン内に死ぬほどいっぱいカメラがあって、通常の Camera のメニューから選ぶのが苦痛な時などです。
Group 作っておくなり名前で管理するなり、何らかの管理方法でカメラを把握しておき、Schematic からでも Explorer からでもビューポートからでも、何らかの方法でそのカメラを選択します。 選択さえできちまえばこっちのもん、このスクリプトを実行すればアクティブなビューにそのカメラがバシッと来ます。 上の画像のような長~~いリストをスクロールして探す必要はありません。
こんなんじゃダメですか。
そうですか。
そう言えばだいぶ昔、カスタムイベントを使って、カメラを選択した瞬間に特定のビューポートがそのカメラに変わるというプラグインも書きました。 人間の会話芝居をするようなシーンで、カメラがたくさんあり、そういう機能があると便利なのにとボヤいていたガイジンさんのために書いてあげたのでした。 どこへ行ったっけ。
よし、気分転換終了。
しかしこの気分転換で集中力がイッキに落ちてしまった。
気分転換のつもりが、罠にはまった。
戻る気がしない。
今日はもうやめるか。
すいません。
それではごきげんよう。
.
| 固定リンク
コメント