Tips

modoでキャラクターリグ作ってみた

modoの機能を使用してキャラクターリグを作ってみたので紹介したいと思います。

modoにはコマンド範囲などリグ作成やアニメーションに便利な機能が色々搭載されていますが、あまりキャラクターリグ関連のデモを見かけないように思います。modoの機能をフル活用してキャラクターリグを作るとどうなるかチャレンジしてみました。

 

 

modoのアニメーション機能

このビデオではmodoのキャラクターアニメーション機能紹介を簡単に紹介してます。

 

アクション

アクションは1つのシーンで複数のアニメーションを管理する機能です。今回はリグ紹介用のアニメーションを管理するのに使用しています。
アクションはFBXファイルにマルチテイクとして出力することができるため、Unityに複数のAnimationが作成された状態でインポートできるので便利です。

アクションはいわゆるアニメーションレイヤーのような機能ですが、まだ開発途上の機能のためmodo 14.2 ではアニメーションのブレンドはできません。アニメーションの管理に使用するのが実用的です。

関連記事

 

 

Rig Clay

Rig Clayはクレイアニメのようにモデルをダイレクトに操作する感覚で制御するリグです。コマンド範囲を使用して非表示状態の制御用ロケータを選択しています。

コマンド範囲はmodoのコマンドをメッシュをクリックして実行できる自由度の高いリグ機能です。複数のアイテムを選択するしたり、アイテムの表示を切り替えたり、ポップアップメニューを表示したり、スクリプトを実行するなど、modoの多くのコマンドを実行することができます。

Mayaや3ds Maxなどではキャラクター制御用のカーブアイテムが大量にビューポートに表示されているのを見かけることが多いと思います。現在のキャラクターリグでは主流ですが、コントローラが多いとモデルが見づらい、数が多いとアイテム選択しづらい、ビューポートのパフォーマンスが低下するなどの問題もあります。

このためPixarの「Presto」ドリームワークスなどインハウスのアニメーションソフトでは、コントローラを使用するのではなく、モデルを直接操作するようなリグが試されてました。最近だと「Rumba」も同じような機能が搭載されていますね。

コマンド範囲は901で追加されましたが、modo 14.2で機能拡張されて表示や使い勝手が良くなりました。今回はじめて本格的に使って見ましたが14.2ではマウスオーバー表示に問題があるのと選択中のアイテムがわかりにくいので、もう少し改善が必用に感じます。

ちなみに「Rig Clay」という名称はPixarのキャラクターTDだったRichardさんがmodo向けに考案したワードのようです。

関連記事

 

 

アイテム表示用のポップアップ

ビューポートのアイテム表示やデフォーマの計算を切り替えるポップアップです。このポップアップはロケータにユーザーチャンネルを追加して、ロケータが選択された場合にチャンネルポップアップを表示するコマンド item.channelPopover を実行してます。

 

アイテムの表示はグループの「可視」チャンネルを使って切り替えています。modoには複数のアイテムを管理するためにアイテムリストとは別にグループビューポートがあります。
グループを使用するとアイテムの表示をまとめて切り替えたり、選択したり、ロックしたり、チャンネルにキーを作成したりと色々できて便利です。

 

アイテムごとにデフォーマをON/OFFする機能もつけました。これは不要な計算を省きたいときに使用すると便利です。デフォーマはNormalizing Folder の「有効」を制御することで、フォルダ内のインフルエンスをまとめてON/OFFすることができます。

関連記事

 

 

アイテムピッカー

アイテム選択を便利にするアイテムピッカーです。Webビューを使用してコマンドを実行しています。

WebビューはHTMLからコマンドを実行できる自由度の高いビューポートです。ビューポートで選択し難いアイテムを選択する場合に便利です。アイテムのトランスフォームにキーの追加/削除、ポーズのリセットなどアニメーションで便利なボタンを追加しています。

関連記事

 

 

スケマティック

modoのリグ構築に使うスケマティックビューポートです。スケマティックはリグごとにワークスペースを分けることができるので処理を管理するのが楽です。またフェイシャルリグのスライダーのようなパーツはアセンブリとして使い回すことができて便利です。

modoのスケマティックはオブジェクト、プロシージャルモデリング、マテリアル、シェーダーノード、パーティクルなど多くの機能を全て同じように使うことができるので便利です。ノードやバックドロップに色を設定したり、コメントノードを使用したりグラフィカルに管理することができます。

関連記事

 

 

キャラクターリグ

今回作ったキャラクターリグの紹介です。元々素体用の簡素なモデルを作ってたのですが、modoのアニメーション機能をテストするうち楽しくなって過剰に自動制御のリグを追加してしまいました。
本職のリガーやTDさんが公開しているビデオを参考に、見よう見まねで作りましたがそれっぽく動かせてる気がします。

キャラクターリグのベースにはCharacterBoxを使用しています。CharacterBoxはモジュラーリグプラグインで、いくつかのリグを組み合わせてオリジナルのキャラクターリグを作ることができます。

 

フェイシャルリグ

表情はスライダーを使用して複数のモーフを制御してます。モーフはリニアに補完されるためモーフを単純にミックスするとメッシュがめり込むことがあります。スライダーを使用することでモーフの中間で変形を補正するモーフを加えて表情をブレンドしてます。

モーフで表情を制御する場合は他のソフトでは左右別々にモーフを作成するのが一般的だと思いますが、条件式ノードを使ってフォールオフを回転して左右のどちらか一方向のモーフの影響をマスクしてみました。
モーフマップを左右分けて管理する必要がないのでモーフの数が少なくてすみ、モーフの修正も楽になります。

 

表情を微調整するためのコントローラも仕込んでます。これはmodo標準のトランスフォーム デフォーマを使用しています。
赤色のロケータは頂点コンストレイントを使用してモーフに合わせて移動してます。本来は微調整用の緑色のロケータを赤色のロケータにペアレントしたかったのですが上手くいかなかったです。

眼球の動きに合わせてまぶたを動かす処理も入れてみたのですが、あまり効果が感じられなかったかも。

キャラの髪はCharacterBoxの尾リグを使ってます。キーは全部同じフレームに作成してますが、遅延の設定をリグごとに少しずらして動きにバリエーションを持たせてます。

関連記事

 

 

ボディーリグ

スケルトンだけ表示したビデオ。

 

体はCharacterBoxをベースにしていますが、プリセットそのまま使うのではなくカスタムした構造にしました。例えば鎖骨、手の甲の骨は関節数が1つの指リグを追加して、IKで制御できるようにしています。

好みの問題ですが鎖骨や手の甲にアニメーションをつけるとき、移動と回転でツールを切り替えるのが面倒です。CharacterBox標準の鎖骨は使用せず、移動ツールで制御できる指リグに置き換えました。

腕や脚のツイストはCharacterBoxのセグメントを使用してます。メッシュの細かさによりますがセグメント数は3~5個くらいあると綺麗にツイストできる気がします。

関節はホース状につぶれないように変形を補助するボーンを4個追加して、角度に合わせて自動で動くように制御してます。筋肉の収縮や皮膚のスライドも補助ボーンを使用して制御しています。この補助ボーンは全てチャンネル リレーションシップを使って制御してます。

補助ボーンの設定についてはMayaのウェビナーが参考になると思います。

 

スケルトンの角度を取り出す方法は以前書いたワールド回転からローカル角度を計算する方法と同じで、ヒジやヒザのように1方向にしか回転しない関節はMatrix To Eulerの「回転順」を変更して欲しい軸の角度を取得しています。肩や股関節のように回転軸が多い関節はTwist Extractorを使用するのが便利だと思います。

角度とチャンネル リレーションシップ使ってスケルトンの位置、回転、スケールを制御しました。チャンネル リレーションシップを使うと自動制御はとても簡単に作成することができます。

 

自動制御は体の左右で同じ制御を使いたいので、ノードをインスタンスコピーして管理や修正が楽になるようにしています。下の画像では紫色のリレーションシップがインスタンスされたノードです。

自動制御にはCharacterBoxの単体のスケルトンを使用してます。modo標準のスケルトンを使用してもリグは作れるのですが、筋肉のようにスケールしたときmodo標準のスケルトンは変化がわかり難いのでCharacterBoxのスケルトンを使用してます。

 

耳、胸、二の腕、腹、太もも、ふくらはぎはCharacterBox のマッスルで揺らしてます。

 

呼吸っぽくお腹動かすリグも仕込みましたが、少し効果がわかり難かったですね。

 

アニメーション

作ったリグを使用して簡単にアニメーションつけてみました。スカートはSyflex

 

 

3ds MaxやMayaには標準で人形リグが入っててポーズやアニメーションのコピーやミラーに対応してたりしますが、カスタムで追加したリグは自分で何とかする必要があります。運よく作ったリグで動くコピースクリプトが見つればいいのですが、スクリプト書けないとカスタムリグを作るのは面倒です。

その点CharacterBoxは1.2.0からカスタム追加したロケータやスケルトンに簡単に対称編集やポーズのコピーができるようになり、スクリプトを書かなくてもカスタムリグの構築が楽にできるようになりました。
この機能を使用するとフェイシャルで微調整用のロケータを対称編集したり、ミラーコピーがプラグイン任せできるようになります。

今回手の込んだキャラクターリグを作ってみようと思えたのは、セットアップするときに面倒くさいカスタムリグの対称編集をプラグイン任せにできるというのが大きな理由です。

補助ボーンの自動制御やコマンド範囲の設定はそれほど難しいことはないので単純に根気です。コマンド範囲はとても可能性を感じる機能なので、自動生成する機能を標準で追加して欲しいですね。

 

以上ザックリとした紹介と解説ですが、modoを使ったリギングがどんなものか参考になったなら嬉しいです。

Modo Tips



 

記事のまとめページ

コメントを残す