お名前でイッキに選択。
シーンの中に複数の Model があり、同じ名前のオブジェクトがそれぞれの Model の中に存在している時とか、あるいはModel が複数かどうかに関係なく名前の一部が同じオブジェクトが多数存在している時とかに、そいつらをイッキに選択するスクリプトです。
JScript
--------------------------------------------------------------------
// 結果を入れる器ヨーイ
var oObjects = XSIFactory.CreateObject( "XSI.Collection" );
oObjects.Unique = true;
// 現在選択中のブツをループ
for ( var i=0; i<Selection.count; i++ )
{
// 選択中のブツの Name を取得( Fullnameではないことが重要 )
var SearchName = Selection(i).Name;
// シーンルート以下で、Model名に関係なく、その名前を含むオブジェクトを見つけて oObjects に格納
oObjects.AddItems( ActiveSceneRoot.FindChildren( "*.*" + SearchName + "*" ) );
}
// 選択しておしまい
SelectObj( oObjects );
--------------------------------------------------------------------
最初に選んだオブジェクトの名前を含む全ての 3D オブジェクトが選択されます。 3Dオブジェクトだけです。 Group とか Property とかそういうものは選択されません。
例えば、どの Model 以下にいるかは関係なく "Left_Arm" という名前のオブジェクトを選んで実行すると、シーンの中にある
Model1.LeftArm
Model2.LeftArm_L
Model2.LeftArm_R
Model3.AAA_LeftArm_1
などが選択されます。 この子たちは最初に選んでたブツの名前 "Left_Arm" を自身の名前に含むからです。 ちなみに LeftArm_R ってなんですか。 ひどい名前ですね。 右か左かはっきりしなさい。
インターフェース右上のボックスに *.*お名前* と入力するのと全く同じことです。それが面倒だから、こうしただけです。 だってあそこって入力しにくいじゃないですか。 長い名前のオブジェクトだとタイプしてらんないし、コピペするのもめんどくさい。
このシーンにいる全キャラの目玉オブジェクト(名前は共通で Eye_Left とか)を選択してあのパーティションにブチ込みたい、とかなんとか、そういう風に使ってます。
そんだけ。
右クリックに入れるともっと便利かも知れない。
.
| 固定リンク
コメント