advancedSkeletonを触って見まして、ピッカー新しくなったそうなので使ってみたいなぁと
なるほどー
編集はどうやってやるのかなぁ?
マニュアルは・・・・・・・・・ない?
ないかぁー、とりあえずデータを見てみますか。
データ確認
AdvancedSkeletonFiles/picker/pickerFiles/scenes/biped.ma
を開いてみます。
ほーん?
色々観察してみると
- コントローラー名 = オブジェクト名になってる
- 同じコントローラーで複数個所配置したい場合は、コンバインされている(名前衝突なし)
- オブジェクトセット名もある
- カメラが入ってる
なるほどシンプルなシーンですね。
で、実際にこれをシーンに読み込むとどうなるんじゃろかい?
なるほどこういう感じですか
- カメラ(cam)で撮った内容が pickerのビューポートに表示される
- ピッカーの画面はビューポートなので、maya標準のカメラ操作で操作できる
- 対象のネームスペースとピッカーのネームスペースを置き換えることで選択実行?
- ピッカーオブジェクト選択してから、対象選択に切り替わるので若干のラグがある
- 注意しないとレンダリングされます
であれば編集してみる
割とシンプルな構造なので、わかれば編集は簡単そうですね。
(でもマニュアルは欲しいな)
ピッカーのオブジェクトを作ってー
コントローラー名にリネームしてー
・・・・
はい、面倒! 3つ以上無理! やだ!
フローを考える
最終的に先述のようなデータ構造になっていればいいのだから
- ピッカーを作成したいアセットをリファレンスする
- 選択対象のコントローラーを選択して、コントローラー名のグループノードを作る
- ピッカーオブジェクトを作成し、グループに放り込む
- 最終的にグループ単位でコンバインする
こんな感じでしょうかね。
かなりラフに作ったので、機能としては全然足りないなぁと感じてますが
手動で全部やるよりはマシかなと。
使えるかな?
自前のアセットで使えるか試してみましたが、
そもそも pickerのネームスペースのリストが機能してない気がしました。
ソースを読んでみるとこういう箇所があったので、 Main か FaceGroup ノードが version アトリビュートを持ってないと反応してくれないようです。
if (`attributeExists "version" ($nameSpace+":Main")` || `attributeExists "version" ($nameSpace+":FaceGroup")`)
それはさておき、とりあえずてきとーなデータをつくってみまして、
AdvancedSkeletonFiles/picker/pickerFiles/scenes/ に保存します。

アセットをリファレンスして、pickerを起動するとtabに追加したpickerDataが増えてるので load します。
そこで選択するとー
はい 選択できました。
雑感
- ピッカーだけDLもできるんですねぇ。
- asPickerbipedModelPanelViewSelectedSet がシーンに残り続けるのはちょっと邪魔だなぁ






