[Maya] "恐竜少女カプア" スキニング&フェイシャル
概要
お疲れ様です。VolcaでアニメーションTAを担当している Katahira です。
この記事はVolcaオリジナルキャラクター、
カプアのセットアップ(リギング)に関するメイキング記事になります。
主にリギングの初心者の方や、リギングも始めたいというアニメーターの方などに向けて、”Advanced Skeleton”(以下ASと呼びます)というMaya向けのプラグインを使用し、動かせるところまで持っていく過程をご紹介しております。
前回に引き続き、今回は作成したリグに対してスキニングをしつつ、フェイシャルのコントローラーも作成していきます。
スキニング
スキニングとは、骨に肉付けしていくような感じで、スケルトンとジオメトリーを引っ付けて実際にモデルを動かせるようにする工程です。
これが綺麗にできていると、アニメーションで動かす際のクオリティに直接的に寄与しますし、シルエットを作る際などにスムーズに進めることができます。とても重要な工程ですが、同時に結構根気のいる作業でもあります。
1. ジオメトリーのチェック
まずは今一度ジオメトリーがクリーンな状態かを確認します。
ヒストリーが消えているか(残っている場合、Edit > Delete by type > History、もしくはAlt + Shift + D)
移動回転スケールに無駄な数値が入っていないか(スタートのポーズ(AやTポーズ)に戻し、Modify > Freeze transformations)
ピボットが原点に来ているか(Zero pivotか、バージョンによっては無いので手動などで移動)
上記問題無さそうであれば、スキニングを始めていきます。
ちなみにパート1でもお伝えしたように、このカプアのモデルは頭と体で別れているため、一旦マージしたものでスキニング作業を行い、完了したら頭と身体それぞれにウェイトをコピーする、という順番で作業します。
イメージ図
2. バインドスキン
ASにおいて、スキニングするためのボーンはDeformationSystemというフォルダーの中に入っています。
まずジョイントたちを選択し→その後スキニングしたいジオメトリーを追加で掴みます。
目玉や揺れ物などは違うメッシュなので、あと指先、つま先、頭の先端などは基本ウェイトを振ることはないのでここでは選びません。
そしてSkin > Bind Skin のオプションを開き、以下のように設定してバインドを実行します。
デフォルトからの変更点としては、
選んだジョイントの階層全てではなく、選んだジョイントにのみバインド(Bind to > Selected joints)→ 指先の先端など、バインドさせたくないジョイントも含むため
各頂点に対して影響するジョイントの数を1つに(Max influences > 1)→ 数が多いと変形がなめらかになるが、後からのウェイト調整がややこしくなるため
Colorize skeleton以外のチェックボックスをOFFに(単に骨に色を付けるかどうかなので、これもOFFでも問題ありません)
各項目の詳細な説明はこちらの公式ドキュメントに記載されています。
https://help.autodesk.com/view/MAYAUL/2025/JPN/?guid=GUID-CF2C698A-44BB-4CA0-BCB9-DB36500DA812
またちょっと違う進め方としては、最初に胴体と手足など最低限のボーンでバインドし、後から更に必要な指や尻尾などを追加する、というものもあります。
その場合追加分は、ボーン→メッシュ選択し、Skin > Edit influences > Add influenceで足すことができます。
3. ウェイトペイント
バインドが完了したら骨を動かしてみましょう。おそらく滑らかさの欠片も無いメチャクチャな変形をしているかと思います。
先ほどバインドスキンで設定した各項目は、そのほとんどがウェイト調整の際に管理、把握をしやすくするためのものです。
よほどシンプルなモデルでない限り、バインド1発で完了ということはまず無く、いずれにしろウェイトペイントでの調整が必須となるため、それだったら管理しやすくして淡々とこなしていった方が良いという、”急がば回れ”といったアプローチになります。
このまま各ジョイントをしっかりペイントしていっても良いですが、
こちらの動画で紹介されている、”Delta Mush”というデフォーマーを使用するウェイト調整がとても効率的で作業しやすいなと思ったため、今回はこちらの方法で進めてみようと思います。
まずはある程度各ジョイントのウェイトの領域を整理していきます。後ほどデフォーマーで一括で滑らかにするため、まずは各ジョイントの影響範囲を示してあげるようなイメージです。
進め方としておすすめなのは、以下のようにルートから末端へひとつずつロックを掛けつつ進めていくものです。これもウェイトが変なところへ飛ばないよう、管理のしやすさを重視するためです。
rootジョイント以外全てロックする
rootジョイントでreplace、floodし、全体をrootだけの影響下に置く
rootの次のジョイントをアンロック(ここでは頭に向かっていくので、spine1)
replaceブラシ(value=1)で粗方ペイントする
また一つ次のジョイント(ここではspine2)をアンロックし、一つ前(ここではroot)をロックする
4.同様にペイントする
上記繰り返し、頭まで終わったらまたrootへ戻りアンロック、尻尾や足も同様に進める
※ロックすることで、そのジョイントにはウェイトが振られない or 引かれない状態になるので、安心して他の箇所を進めることができます。
上記の手順で一通り領域の調整が完了しましたら、デフォーマーを適用します。
Deform > Delta Mush(設定は一旦デフォルトでOK)
Delta Mushはリジッドなウェイト(ここでバインドスキンの設定をシンプルにしたことが効いてきます)をいい感じに緩和してくれるデフォーマーで、各箇所を確認してみると一気にスムーズに曲がるようになったかと思います。
Smooth Iterationsの数値変更で効果の増減ができます。
また、Envelopeの数値を0にすることでデフォーマーの効果がない状態にすることができます。実際のウェイトの確認などに使えます。
このDelta Mushを適用した状態で再度ペイントスキンウェイトツールを開き、各箇所を調整していきます。この方法だとDelta Mushを必要に応じてON/OFFで切り替えることもできますし、後ほど説明しますが、デフォーマーの効果をウェイトにベイクすることができ、その後微調整、といったことも可能です。
スキンウェイトを綺麗に塗るのは結構慣れが必要だったりで大変なので、デフォーマーで一気に滑らかでいい感じにできるのはかなり助かりますし、時短になります。
デフォーマー無し
デフォーマー有り
それではDelta Mushをかけた状態で、改めて全体をペイントしていきたいと思います。
4. デフォーマーをウェイトにベイク
一通りウェイトペイントが完了し、後は本当に詳細なウェイト調整が必要なだけ、と言った状態になったらデフォーマーをウェイトにベイクします。
Skinメニューから、Bake Deformation to Skin Weightsという機能を使います。
起動するとこのようなウィンドウが開きます。
流れとしては、Source部分にコピー元となるメッシュ(今までウェイトペイントしていたもの)を指定→Destinationにメッシュを複製したもの(トランスフォームのアトリビュートがロックされているかと思うので、それを解除してdelete historyなどでまっさらにしておく)を指定して、sourceのウェイトをデフォーマーの影響も含めつつベイクする、といったものになります。
① コピー元となるオリジナルのメッシュと、バインドジョイントの一番上の階層(ここではは”Root_M”)を同時に選択し、”Source”をクリックして登録
② コピー先の複製メッシュと、①で選んだものと同じジョイントを同時に選択。”Destination”をクリックして登録。
③ Number of influencesを指定。あまり大きな数字にする必要は無さそうで、3、4あたりで問題なさそうです。(頂点あたりのインフルーエンスの数を決めるものなので、Bind skinのmax influencesと同じようなパラメーターのようです)
ベイクが完了したら細かい点を調整していき、
一通りのウェイトペイントが完了です。
と、ここまで説明したのですが、自分のウェイトの振り方が悪いのか、
腕周り(と若干の足回り)でウェイトが変なところへちょっと飛んでしまい、結構ペイントのし直しが発生してしまいました・・。
ここらへんは各箇所の設定など(この機能、デルタマッシュ、ペイントの仕方など)を見直したり、デルタマッシュをかけた直後にベイクしてしまって、その後で各箇所の細かいペイントをしてみるなど、試行が必要そうです。
ただ元も子もないですが、正直ペイントに慣れた方はデフォーマーを使わずにやっていくほうが早いかもしれません。
最後に頭と体を一体化したモデルから、オリジナルにそれぞれウェイトをコピーして、うまく動くか確認しておきます。
① 頭と体それぞれのメッシュをボーンにバインド(一体化モデルにバインドされたジョイントたちと全く同じものである必要があります)
② 一体化メッシュ→頭と体を選択し、Copy Skin Weightsでウェイトをコピー
もしまた調整したいとなったら、再度一体化したモデルでウェイト調整を行い、ウェイトをまたコピーするといった流れになります。
フェイシャル
フェイシャルはブレンドシェイプをベースに、コントローラーも設置し、細かい調整ができるようにします。
このように既にモデラーに各表情を作成してもらっています。
ちなみにこちらの表情のメイキングの記事もありますので、まだ読まれていない方はぜひチェックしてみてください!
ここにスキンクラスターをもう一つ重ね(Maya2024以降で追加された機能)、表情の細かい点を調整できるようにします。
動かしたいと思う点にジョイントを配置し、ボディでやったのと同じようにスキニングとウェイト調整をしていきます。
適宜NURBSカーブでコントローラーを作成し、各ジョイントへ配置します。
またカプアは別メッシュでまつ毛を持っているので、頭モデルと同じく先程作ったスケルトンにバインドし、追従してくれるようにフェイシャルのウェイトをコピーします。
その際、コピー元、コピー先どちらも正しいスキンクラスターを選択するように気をつけましょう。
そうすることで、このようにブレンドシェイプの表情をベースとして、細かい調整やカメラから見たときのシェイプの調整などをすることができます。
最後に
結構端折っていたりもっと追加してみたい機能などもありますが、基本的なところは作成することができました。
次回は手付かずになっているカプアの羽毛をどう動かすべきか、検証してみる予定です。
読んでいただきありがとうございました!