BACKBONE RIG&TA EXPERTS

クラスターの軸を変えてみる

2018/03/13

ご無沙汰しております。
BACKBONEの福本です。

先日はセミナーへのご参加、ありがとうございました!
たくさんの方々とお会いできて、私自身とても刺激になりました。
後日、ボーンデジタルユーザーの方限定でセミナー動画が公開されるようです。
ご興味のある方は是非ご覧ください。

さて、今回はクラスターに関する、ちょっとしたテクニックをご紹介します。
私はこれまでクラスターを「めり込み修正のコントローラー作成」や「スプラインIK」などで多用していましたが、
ラティスやクラスターなどのデフォーマーはゲームエンジンへの出力が困難、といった理由から最近はジョイントで対応することが多くなりました。
皆さんはいかがでしょうか?

改めてクラスターについて考える良い機会なので、以下にクラスターを使用するメリットとデメリットをまとめてみました。
※あくまでも個人的な意見です。

<メリット>
・お手軽
・スキンクラスターと共存できる。
・クラスターのウェイト値が個々に依存しない。
・Relativeアトリビュートで親の動きを相殺できる。など
<デメリット>
・World軸で作成されるので軸変更が面倒くさい。
・FreezeTransformationsが実行された状態で作成される。
・ゲームエンジンへの出力が困難。
・流用や移植が面倒。など

色々とありますが、軸の変更ができないのはとても不便ではないでしょうか?
私はリグを構築する際にMatrixやコネクションを多用するので、クラスターの軸を変更できないと話になりません。
FreezeTransformationsされているのもMatrixを取得する際にとても厄介です。
その他にも、クラスターを格納する場所を変更する度にデフォームが壊れたり、
親に自動でトランスフォームノードが作られたり、、、となかなかの曲者なんですよね。
この際、これらの問題を解決して、もっとクラスターに活躍してもらいましょう!
ということで、これらの問題の解決方法をチュートリアル形式でご紹介します。

 


クラスターの軸を変えてみる

① 任意の個所にクラスターを作成します。
クラスターのトランスフォームノード名をclusterHandle、クラスターノード名をclusterHandleClusterに変更します。
トランスフォームノードであるclusterHandleのアトリビュート値を確認すると、
Translate、Rotateが0に設定されておりFreezeTransformationsが実行された状態です。


② 任意のコントローラーを作成し名前をctrlに変更します。
PointConstraintを実行してコントローラーをクラスターの位置に移動します。


③ コントローラーを好きな角度に変更し、親にトランスフォームノードを作成してコントローラーの値を移植します。
親ノード名をctrl_spaceに変更します。※セミナーでもご紹介しましたが弊社ではスペースノードと呼んでいます。


④ クラスターをドラッグ&ドロップでctrl_space内に格納します。
クラスターのウェイトを調整していた場合、デフォームが壊れますが無視してそのまま進めます。


⑤ clusterHandleのTranslate、Rotate値を0に変更します。

その後、clusterHandleにFreezeTransformationsを実行します。
クラスターのウェイトを調整していた場合、再度Translateに値が設定されるので0に変更します。


⑥ クラスターノード (clusterHandleCluster) にはbindPreMatrixというアトリビュートが存在します。
こちらのアトリビュートを使用して初期値をリセットします。
ctrl_spaceのinverseMatrixをclusterHandleClusterのbindPreMatrixに接続します。


⑦ デフォームが初期状態に戻りました。
この時点でbindPreMatrixへの接続は必要なくなったので、接続は解除しておきましょう。


⑧ クラスターのピボットがコントローラーの位置からずれています。位置を合わせましょう。
clusterHandleのLocalRotatePivot、LocalScalePivotの値を全て0に変更します。
※下図は0に変更する前の状態です。


⑨ クラスターハンドルがコントローラーの位置からずれています。位置を合わせましょう。
clusterHandleShapeのOriginの値を全て0に変更します。
※下図は0に変更する前の状態です。


⑩ 最後にコントローラーとクラスターのTranslate、Rotate、Scaleを接続して完成です!


まとめ

クラスターは工夫次第で色々と活用できます。
これを機にクラスターで色々と検証してみましょう!
次回はセミナーでご紹介したMatrixについてご紹介する予定です。

 

※免責事項※
本記事内で公開している全ての情報について、その完全性、正確性、適用性、有用性等いかなる保証も行っておりません。
これらの情報のご利用により、何らかの不都合や損害が発生したとしても、当社は何らの責任を負うものではありません。
自己責任でご使用ください。