Tips

modoで重心制御リグ

modoで重心を制御するリグの作り方について書いてみたいと思います。両足の位置から、自動的に腰の位置を移動してくれるリグです。

■ サンプルファイル

 

スケマティックはこんな感じで、処理自体は単純です。

両脚のIKゴールの「ワールド位置」を Matrix Blend にリンクします。Matrix Blend はその名の通りマトリクスをブレンドするノードです。「ブレンド」を50%にするとIKゴールの中間の位置を出力することができます。

Matrix Blend の「マトリクス出力」を Matrix Vector にリンクして、マトリクスを「移動」の XYZ軸に分解します。分解した「出力 X」と「出力 Z」はそのまま腰のスケルトンの「位置X」「位置Z」にリンクします。これでIKゴールを移動したときに、腰の位置は2つのIKゴールの中間に位置するようになります。

腰のプライマリのトランスフォーム「位置X」「位置 Z」に直接リンクすると、移動ツールで自由に腰の位置を調整できなくなりアニメーションの作成で不便です。そこで腰のスケルトンにトランスフォームアイテムを追加して、追加したトランスフォームを制御用に使用します。 画像だと「CenterControlTransform」が追加したトランスフォームアイテムです。

腰のY軸を制御するために Measure Distance を使用します。 Measure Distance はその名の通り距離測定ノードで、IKゴール間の距離を出力できます。IKゴール間の距離が離れた場合に腰の位置を下げたいので Measure Distance ノードを使用しました。
Measure Distance の「距離出力」と Matrix Vector の 「出力 Y」を Relationship を使用して値を調整します。2つの Relationship を足した値を腰の「位置 Y」にリンクします。

2点間であれば Matrix Blend は便利ですね。値を足したり割ったりしなくてよいのでスケマティックが単純です。

 

このリグで雑に歩行サイクルをつけてみました。IKゴールに1サイクルのキーを設定して、カーブの繰り返しで前進しています。画像のように腰の位置をつねに中間にすると機械的で不自然な動きになります。Matrix Blend のブレンド チャンネルを使用して腰の位置を細かに制御を加えてみると面白いかもしれません。あとは骨盤の回転やタイミングのズレを再現とかでしょうか。

最終的には手動で調節するとして、アニメーションの補助として組み込んでみると面白いかも知れません。

 

この重心制御は Project:Messiah のサンプルファイルに入っていたT-Rexが元ネタです。リギングという言葉が一般化する少し前の時代、自動制御されたキャラクターセットアップに衝撃を受けました。現在ではFullBodyIKのように自動制御で動くとポーズ設定しづらいのであまり好まれないのかも知れませんが、リグの研究としては面白いジャンルだと思います。

T-Rexでは腰の位置の制御の他に、ゴールの高さで足が自動で回転するエクスプレッションが書かれてました。懐かしい。

Modo Tips



 

記事のまとめページ

コメントを残す