pickWalk と聞いてピンと来ない人も居るかもしれませんが、mayaのDAG階層は「矢印キー」で選択を変更することができるようになっています。
プレビューウィンドウだけで作業が完結するようなモデラーさんには馴染みはないかもしれませんが、アウトライナを使うような古いアニメーターさんなんかは知っている人が居るかもしれません。
簡単に説明すると、
- 上下の矢印キーで親子方向の選択変更。
- 左右の矢印キーで兄弟方向の選択変更。
が行われます。
ノード選択のハイライトが移動していると思いますが、この間、マウスクリックはしていません。
ただ、最近のアニメーターさん、ジョイントを直接アニメーションさせずに、コントロールリグを使ってモーション付けをしている場合が多いんじゃないかと思います。
そういった環境では、この
pickWalkという機能、あまり有効に働かないんですよねぇ。
たとえば、ロケータだけの階層で pickWalkを行うと・・・
親方向への移動やシブリング方向への移動はスムーズに行くのですが、子階層への移動でつまづきます。
察しの良い人ならもう分かると思いますが、pickWalkさせたとき、シェイプノードを選択してしまっているため子階層の選択がスムーズに行かなくなっています。
実際、アウトライナで Display > Shapes をオンにすると、
こんな感じで、トランスフォームノードの下にロケータシェイプが隠されています。
mayaでは、ほとんどのオブジェクトで「トランスフォームノード」と「シェイプノード」が1組となって構成されています。
ジョイントの場合は、ジョイントノードだけでオブジェクトを構成しているのでシェイプノードがありません。だから、pickWalkが上手く機能してくれるわけです。
ま、普通ならココで終わってしまう場合が多いのですが、折角なので、もう少し踏み込んで、解決策みたいなのを考えてみます。
pickWalkで子方向へ移動させると、子のリストの中から一番最初のノードを選択の対象にしています。という事は、子のリストの最初がトランスフォームノードになっていれば、もっとスムーズに移行することが出来るはずです。
アウトライナ上で階層の順番を変えるには、MMB(Middle Mouse Button)プレスでノードの順番を変更できます。
が、シェイプノードではソレが出来ません。
同一トランスフォームノード下で操作されるとは保証できないので、フールプルーフな良い設計だと思います。
そして、ここからが裏ワザ部分。
reorderコマンドというのをこんな風に使用します。
reorder -back "lctLeftForeArmShape";
全てのシェイプノードを対象に再帰で行えば、一瞬でこんな感じに変更できます。
中々お目にかかれない奇妙な階層構造です。
けれども、一般人が見ている Display > Shapes
がオフの場合、なんの変哲もない構造となっています。
これで pickWalkを操作すると・・・
これくらいストレスなく操作できれば pickWalkを使う気になるかな。
前回のジョイントを先頭に持っていくというのも、
{ string $jnt =`joint`; reorder -front $jnt; }
みたいにすれば、スクリプトだけで全てを完結できるという按配です。
0 件のコメント:
コメントを投稿