ポリゴンメッシュだけ見つけろとか。
.
だからなんでいまさら XSI のスクリプトの話なんかすんのよ。
まあ、数千年後に遺跡として発掘してもらえるように、覚えているうちにせっせと詰め込んでいるような・・・・w
さっきちょっとスクリプト書いたんですが、非常に汎用性はあるので、書き留めておこうと思っただけなんですが。
JScript
-------------------------------------------------------
var models = Selection(0).FindChildren( "", siModelNullPrimType );
logmessage( "total models found : " + models.count );
selectObj( models );
-------------------------------------------------------
何かひとつ選んで実行すると、その子供以下で Model を見つけて選択します。 そんだけ。
人からもらったデータで、なんか Model の子供にいっぱい Model があったりしていったいいくつ Model あるんだよ Mixer とか管理めんどくせえじゃねーかよ Model 分けた方がラクなこともまああるにはあるけどなでもとりあえず Model どんだけあんだよ Explorer で階層下りてって見つけるとか面倒くせえよゴルァ
人からもらったデータで、なんか Model の子供にいっぱい Model があったりしていったいいくつ Model あるんだよ Mixer とか管理めんどくせえじゃねーかよ Model 分けた方がラクなこともまああるにはあるけどなでもとりあえず Model どんだけあんだよ Explorer で階層下りてって見つけるとか面倒くせえよゴルァ
とかよくあるじゃないですか。 よくあるんですよ俺は。
だから、こういうスクリプトで Model のみイッキに集めてしまう。選択状態になるので、すかさず ctrl + G でグループとか作ってしまえば、あとはいつでもサッとアクセスできる。
FindChildren の魔法はこういうのすごく簡単でいいですね。 よく使うメソッドです。 X3DObject に対して効くメソッドです。 X3DObject ってのは普通の3Dオブジェクトですね。 たぶん。 階層を持つことができる、SRT を持っている普通のオブジェクトならばこの魔法は有効です。 指定した3Dオブジェクト以下で、指定された形式のオブジェクトとか、指定された名前のオブジェクトを見つけてくれます。
上記のスクリプトの場合は、 Selection(0) なので、最初に選択した3Dオブジェクトの階層以下で捜索されます。 Scene_Root も3Dオブジェクトなので、 ActiveSceneRoot.FindiChildren( xxx, yyy ); などとやると、シーン全体で検索されますね。
FindChildren ドキュメント:
http://docs.autodesk.com/SI/2015/ENU/Softimage-Developer-Help//index.html#!/url=./si_om/X3DObject.FindChildren.html
もちろん、ポリゴンオブジェクトだけ選択とかもできますね。
JScript
-------------------------------------------------------
あれ? そういえば Maya さまでこういうことやろうと思ったら、どんなコマンド書くのだろう? やったことないや。 いずれ必ず必要になる。 誰か教えて下さいませ。
.
だから、こういうスクリプトで Model のみイッキに集めてしまう。選択状態になるので、すかさず ctrl + G でグループとか作ってしまえば、あとはいつでもサッとアクセスできる。
FindChildren の魔法はこういうのすごく簡単でいいですね。 よく使うメソッドです。 X3DObject に対して効くメソッドです。 X3DObject ってのは普通の3Dオブジェクトですね。 たぶん。 階層を持つことができる、SRT を持っている普通のオブジェクトならばこの魔法は有効です。 指定した3Dオブジェクト以下で、指定された形式のオブジェクトとか、指定された名前のオブジェクトを見つけてくれます。
上記のスクリプトの場合は、 Selection(0) なので、最初に選択した3Dオブジェクトの階層以下で捜索されます。 Scene_Root も3Dオブジェクトなので、 ActiveSceneRoot.FindiChildren( xxx, yyy ); などとやると、シーン全体で検索されますね。
FindChildren ドキュメント:
http://docs.autodesk.com/SI/2015/ENU/Softimage-Developer-Help//index.html#!/url=./si_om/X3DObject.FindChildren.html
もちろん、ポリゴンオブジェクトだけ選択とかもできますね。
JScript
-------------------------------------------------------
var polys = Selection(0).FindChildren( "", siPolyMeshType );
logmessage( "total polygon meshes found : " + polys.count );
selectObj( polys );
-------------------------------------------------------
siModelNullPrimType の部分を siPolyMeshType に変更しただけです。 これで、選択したオブジェクトの子供でポリゴンメッシュだけを取得できますね。 ハイドされていてビューポートから選択できないやつとかも、これで一網打尽ですね。
ドキュメントを読むと、指定できる Type が網羅されています。 俺はちっとも覚えられないので、毎回ドキュメントをカンニングします。
すんげえ簡単なスクリプトだけど、汎用的です。 人様からもらったデータ(特に未整理で不統一な汚ったねえデータ)をいじる時に、まず整理ということで、こういうスクリプトよく使います。
-------------------------------------------------------
siModelNullPrimType の部分を siPolyMeshType に変更しただけです。 これで、選択したオブジェクトの子供でポリゴンメッシュだけを取得できますね。 ハイドされていてビューポートから選択できないやつとかも、これで一網打尽ですね。
ドキュメントを読むと、指定できる Type が網羅されています。 俺はちっとも覚えられないので、毎回ドキュメントをカンニングします。
すんげえ簡単なスクリプトだけど、汎用的です。 人様からもらったデータ(特に未整理で不統一な汚ったねえデータ)をいじる時に、まず整理ということで、こういうスクリプトよく使います。
あれ? そういえば Maya さまでこういうことやろうと思ったら、どんなコマンド書くのだろう? やったことないや。 いずれ必ず必要になる。 誰か教えて下さいませ。
.
| 固定リンク
コメント