« 親子ゲッチュ。家庭内紛争なプラグイン。 | トップページ | マッチョ Transform。マッチョするプラグイン。 »

2008年6月10日 (火)

プロキシセレクトプラグインが2発も。

                  
XSIBlog を読んでいたら、プロキシセレクトプラグインの話が。
      
      
プロキシパラメータのように、オブジェクトごとに「代理」を作って、 代理を選ぶと代理にリンクされたオブジェクトも選ばれるというもの。 おお、前からこ ういう機能、欲しかったんだよ。だって複雑なリグだとビューポートでコントローラ選ぶの大変じゃない。シノプティックとか作るのはめんどくさいじゃない。  いつもスケマティックに頼ってるけど、スケマティックだと普段はいじりたくないコンストレイン先の Null とかアップベクターとかをコントローラの子供にせざるを得ない場合(大抵そうなんだが)、いじりたくないのにスケマティックには表示されるわけで、不便 じゃない。だからこういう、別オブジェクトから特定のオブジェクトを選ぶってのが欲しかったんですよ。いえーい。
      
XSIBlog の記事を読んでみると、もともと Softimage|NET の方で話題にあがったことを受けて Patrick Boucher さまが開発を始めた模様。すると、最近売れっ子っぽいあの Thiago Costa さまが Softimage|NET の同じスレッドに参加していて、彼も触発されて同じようなプラグインを独自に書いたそうで。 ということでいきなり2種類のプロクシセレクトプラグイン。
      
Patrick さまバージョンは XSIBlog のこの記事で。
Thiago さまバージョンは Softimage|NET のこの記事で。
      
      

Tcproxyselect1

画像は Thiago さまバージョン。代理オブジェクトを選ぶと、リンクされたボーンも自動的に選択されます。
どちらも、選択の切り替わりを検知する Event を仕込んでやっているようです。




                                                       
Thiago さまバージョン
            
1. 代理オブジェクトを選んで Get > Property > ProxySelect(#)
2. 代理オブジェクトにできた PPG(自動的にポップアップする)の中で、リンク先を選ぶ
            
※Get > Property > ProxySelect Preferences でこのプラグインの効果をシーン全体でオン・オフする
  (Preferece > Custom > tc_ProxySelect_Options を表示する)
            
            
Patrick さまバージョン
            
1. リンク先を選んで、Get > Property > ProxySelect(#)
2. ピックセッションが始まるので代理オブジェクトをピック
            
※ MCP の Select メニュー以下に、効果をオン・オフする項目3つあり
(選択中のオブジェクトがあればそれだけが対象、何も選択していないとシーン全体が対象)
            
            
(#)
どっちも Get > Property > ProxySelect なので、両方インストールしてるとどっちがどっちなんだかわけわかりません。スクリプトいじれる人はメニュー項目の名前を変えち まった方がいいかもしれません。自分はひとまず、片方をワークグループに、片方をユーザプラグインとしてインストールしてメニュー項目の横に表示される w と u の違いで見分けているという刹那的かつものぐさ的な対処法でやっていますが、何か。
            
            
Thiago さまバージョンの方はコントロールがよりきめ細かで、代理を選択すると代理の方は選択から外すかどうか、ブランチ選択かノード選択か、リンク先のプロパ ティを表示するかどうか、などが決められます。
お二人で、代理とリンク先のどっちを選んでプロパティを与えるかが逆になってますね。これは好みの問題でしょう。
      
      
      
しかし使ってみると若干問題というか、使いにくいと感じる部分もあり。
      

・複数選択
      
Thiago さまバージョンは代理の選択を外すかどうかを決められる。外した場合は、代理を選んだ瞬間に代理の選択は外れてリンク先のみが選択された状態になる。自分 はこの使い方がしたい。なぜならば自分はコントローラを選びやすくするために使いたくて、キーフレームを打つのはコントローラなんだから、代理は選択から 外れてくれないと代理にもキーフレームが入ってしまって邪魔になる。 
      
ってことで代理は選択から外れてもらうモードにしたのだが、この方法だとイッキに複 数を選択することができないことが判明。ドラッグして矩形選択しても、 1つにしか効かないのです。Shift で選択追加も効かない。っていうか最初に代理を選択した時点で選択がリンク先の方に切り替わるので、Shift で選択を追加しても元の代理に追加したのではなく、今このプラグインによって選ばれ たリンク先に追加していることになるんでしょうかね。パッと見それとは ちょっと違う挙動に見えるんだが・・・。 いずれにせよ最初の代理を選んだ時点でリンク先に選択を切り替えることがこのプラグインの目的なんだから、こ りゃどうしようもないわな。 解決しようと思ったら、イベントで選択が切り替わる方式をやめて(そういうモードでも作って)、先に代理を好きな数だけ選ん でおいて、コマンドを起動したら対応する複数のリンク先を選択する、みたいな仕様にしないとダメかしら。 両足を同時に同じだけ回転させたい、みたいな、複数を選びたくなることは多いからなあ。これは痛いかも。
      
Partick さまバージョンは、そもそも複数選択ができないように見える。複数の代理をドラッグでイッキに選ぶと、リンク先ではなく代理たちが複数選択される。  Shift で選択追加すると、まさに上に書いた挙動=もとの代理に追加ではなく、プラグインによって選択されたリンク先に、Shift でクリックした代理が追加される、という状態になる。
      
ちなみに Thiago さまバージョンで代理を選択から外すモードの場合、選択はすぐにリンク先に切り替わるため永遠に代理オブジェクトを選択できなくなります。このため に Preference で、シーン全体でこのイベントをオフれるようになっています。また、Exploer からもオフにできます。代理オブジェクトを展開するとカスタムプロパティがぶら下がっているので、それを表示すればいいだけです。ここのカスタムプロパ ティからは個別にオフれることになります。 Patrick さまバージョンの場合はそもそも常に選択がリンク先に切り替わるので(代理オブジェクトを選択状態のまま残しておけない)、 Select メニューの3つの項目でオフにする機能がついています。また、同じく Exploer からカスタムプロパティをほじくることでもオフれます。
      
      
・名前
      
両方とも、リンク後にリンク先のオブジェクト名を変えたり別 Model 階層に入れたりすると、リンクが切れてしまう。名前で追いかけている ので、そりゃそうだわな。 となると、自分の使い方では完全にセットアップを終えて最 後にこのプラグインでリンクしてやる、というワークフローになるな。後で変えたくなったときにやっぱり不便だろうなあ。オブジェクト名に頼らずにリンクを 維持する方法はあるのかしら。 スクリプトオペレータでできる気もするが、どうだろう。
      
      
・パフォーマンス
      
選択という最も頻繁に起こるイベントをトリガにしているので、つまり XSI さまが常に選択状態の変化を監視しているので、もしかすると全体的にパフォーマンスが重くなっているかもしれない。というか原理的には重くなっているは ず。
      
あと、Thiago さまバージョンで代理の選択を残すモードの時、例えば10個くらいの複数オブジェクトをイッキに選ぶと、リンク先が全部選ばれるまで一瞬待たされます。 選 んだ代理オブジェクトのカスタムプロパティを探して、パラメータ読み取って、リンク先を探して、全部選ぶ、っていう一連の動作をやっているわけで、まあこ れも仕方ないわ なあ。 C++ とかで書けば速くなるかしら。
      
      
      
今度色々質問とか要望とかしてみようかしら。特に Thiago さまはこういうこと活発にやるし、聞いてもらえそうな気がする。なんとなく育っていきそうな、楽しみなツールであります。
      
      
っていうか標準機能にしてくれ Softimage さん。
      
      
      
      
      

|

« 親子ゲッチュ。家庭内紛争なプラグイン。 | トップページ | マッチョ Transform。マッチョするプラグイン。 »

コメント

こんばんはー
>オブジェクト名に頼らずにリンクを維持する方法はあるのかしら。
こないだのGUIDでひも付ければ、名前変えてもmodelかわっても識別できそうな気配が
ささっとみてみただけですがw

siObjectIdentifier 0 オブジェクトの識別子。これは数値で、システム内のオブジェクトを一意に識別します。
siObjectGUID 2 オブジェクトのGUID。シーン内のオブジェクトを一意に識別するGUIDです。

この辺とか

投稿: りんぷる | 2008年6月12日 (木) 02時23分

りんぷるさま

すげー役立つ情報をありがとうございます。実験しました。できそうです。
独立した記事にしましたので、よろしければ読んでみてください。
http://junkithejunkie.cocolog-nifty.com/blog/2008/06/guid_0883.html

投稿: junki | 2008年6月17日 (火) 21時32分

コメントを書く



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




トラックバック


この記事へのトラックバック一覧です: プロキシセレクトプラグインが2発も。:

« 親子ゲッチュ。家庭内紛争なプラグイン。 | トップページ | マッチョ Transform。マッチョするプラグイン。 »