≪セットアップ室≫Paint Skin Weightの調整方法(初心者向け)
2015/7/23
始めまして、デジタルフロンティアCG部セットアップ室の林です。
何事も基礎が大事です。今回のDF_talkはセットアップ初心者や未経験者に向けた基礎内容です。
セットアップと言えばアニメーションをやりやすくするために、キャラクターにrigを入れて、体や装飾品など便利に動かせるのが一般的なイメージですが、この中に実はもう一つ大事な手順があります。それはSkin weightの調整です。
Skin weight調整はRigとModelをSmooth Bindした後、jointの影響範囲を調整することです。この調整によって関節などを曲げる時の形が制御でき、テクスチャーも綺麗に見えます。
Rigの仕込みと違って、かなり単純かつ地味な作業になります。この手順で飽きてセットアップを諦める人もいます。ですがこれはかなり大事な手順です。
実際の調整方法は人それぞれですが、これから自分の経験を生かし、weight調整のやり方やコツを紹介します。セットアップに興味がある方はこの記事を見て、諦めずにチャレンジしていただければ幸いです。
画像のように今Smooth Bindされた腕のモデリングを用意しました。単純にBindしただけなので、腕を曲げるだけで形が壊れます。ここはPaint Skin Weights Tool使って調整しましょう。
Paint Skin Weights Toolの使い方覚えましょう
これは見た目の感覚で自由にSikn weightを調整できるToolです。Paintなので、もしペンタブを持ちなら筆圧でもっと繊細な調整ができ、効率はかなり上がるのでお勧めです。
ここでよく使う機能を下の画像にまとめました。
①ペイント操作(Paint Operation)
ここはかなり大事な部分です。ちゃんと四つのモードの意味を理解できればさまざまの状況に対応できます。
●置き換え(Replace)
このモードは対象インフルエンス現在のウェイト値をValueで設定されたウェイト値に置き換えます。
●加算(Add)
このモードは対象インフルエンスのウェイト値を上限まで増やすことができます。(通常上限は1です)
●スケール(Scale)
このモードは対象インフルエンスのウェイト値を0まで減らすことができます。
●スムーズ(Smooth)
このモードは対象インフルエンスと隣接のインフルエンスのウェイトをスムーズさせることができます。
②値(Value)
paintしたいウェイト値の調整を行います。
③不透明度(Opacity)
Valueと合わせてpaintの加減を細かく調整できます。
例えば、Valueが0.6、Opacityが0.3を設定し、Replaceモードでpiantします。ウェイトが30%のスピードで0.6のウェイトまで徐々に増えます。この二つをうまく組み合わせてpaintの加減を調整します。
④インフルエンスのLock
この機能もかなり重要です。
Lockは対象jointのウェイト値をロックできます。この機能をうまく使えば、ロックされてないインフルエンスの間でウェイトの調整ができ、ほかのロックされたインフルエンスに余計なウェイトも入りません。
重要な機能説明はここまでです。ここから操作しながら応用します。
Smoothモードの使い方
まずSmoothモードの使い方です、一見便利な機能だと思いますが、実際全部をきれいにスムースできない場合もあります。Smoothモードで塗る時、盲目的に塗るのではなく、少しコツがあります。
画像では曲げた腕の肘部分に注目してください。簡単にshoulderJT とelbowJTのウェイトを振ってありますが、あまりきれいではないです。Smoothを使ってきれいにしましょう。
このモデルには大量にインフルエンスされたジョイントがあります。実際に調整したいのはshoulderJTとelbowJT二つだけなので、ほかのインフルエンスはロックしましょう。
適当にSmoothモードで塗ると画像のように、必要以上な凹みなどの問題が発生します。
画像の説明のように、二つのjointそれぞれのSmoothがかける方向は画像中の矢印で表示してあります。この方向を沿って、大体青い枠の範囲内で、適度に塗れば綺麗な形ができます。
三つ以上のインフルエンスの調整方法
今回の例はTwistRigを使って説明します。今のRigでは腕や足などねじる時細くなり、根元も一緒に回転します。これを防ぐために、下の画像のように補助Rigを入れます。今から追加したRigを使って腕が細くならないようにウェイトを調整します。
画像の説明のよ うに、L_shoulderIKJTは根元の回転を防ぐために作ったIKです。IKハンドルを回転しないと、IKJT自身は回転しません。今IKハンドル はelbowJTとpointConstraintされました。IKハンドルはelbowJTのtranslateの影響しか受けないので、 shoulderJTの回転には影響受けません、ゆえに回転しません。
twistJT は画像説明のように、rotateXのみ回転します。回転値はshoulderJTの0.5倍です。たとえばshoulderJTのrotateXの回転値は 10の時twistJTのrotateXは5になります。こうやって両端のjointの回転の中間値を取って、腕が細くなるのを緩和します。
shoulder周りは、shoulderJTと先ほど説明したIKJT・twistJTを合わせて三つの インフル エンスを使います。ですが、同時に塗るのではなく、まずニつに絞ってきれいに調整してから三つ目のウェイトを調節しましょう。
まずL_shoulderIKJTとL_shoulderJTから始めてください。
L_shoulderJT根元のウェイトをL_shoulderIKJTに振ってあげましょう。ここはScaleモードでL_shoulderJTのウェイトを減らして、IKJTのほうに移す方法を勧めます。理由はScaleは減るだけなので、操作ミスでほかの所にウェイが塗れないからです。
まずこの二つ以外のインフルエンスをロックして、根元から真ん中まで思いっきり0までウェイトを減らしましょう。
画像のように腕をねじるとすぐ壊れますが、ここは先説明したスムースの塗り方で直しましょう。
直したら、twistJTのロックを解除しましょう。ねじった状態のままでAddモードを使って、Value値を0.1~0.3くらいでかなり弱めにtwistJTのウェイトを増やしてください。jointの位置を中心に両端まで塗ってください、若干やりすぎても大丈夫です。
程よくできたら、スムースをかけましょう。twistJTは両方同時に影響があるので、中央から両端までスムースをかけてください。
これで基本は完成しましたが、たまにスムースでは対処できないところもあります。ここにWeight Hammerという便利な機能ですぐ直せます。
Weight Hammerの使い方
これは望ましくないウェイト値の頂点を修正できるツールです。修正したいVertex、Edge、Faceを選んで(複数選択可能)クリックすると、隣接する頂点と同じウェイト値が割り当てられます。
※ここで注意点があります。
①一気に選らび過ぎないようにしてください。こうすると画像のように結果がかなり変わります。
できれば部分的細かく修正するのが望ましいです。
②このツールは万能ではありません。もし隣接する頂点はおかしいなウェイトが入った場合は、選んだ頂点もおかしくなります。つまり、これはあくまである程度きれいにウェイトが調整できた後で使うツールです。頼りすぎは禁物です。
Weight Hammerをうまく使って、腕の荒いウェイトを直しましょう。
これで完成しました。腕の一部しかないですが、このやり方を応用すれば全身までいけます。
まとめると、ウェイトをうまく塗るポイントは:
①Rigの構造と役割をよく理解しましょう。
②Paint Skin Weights Toolなどの機能を理解しうまく使いましょう。
③経験をつみましょう。ウェイト調整は一回で覚えるスキルではありません。他人から学ぶのはもちろんですが、自分でさまざまのキャラのウェイト調整し、他人のやり方をを融合し、自分なりのやり方は見つけてください。
DFセットアップ室では、リギングアーティストを大募集中です。
一緒に魅力的な作品を作っていきましょう!
詳しくは、下記の募集要項をご覧ください。
https://www.dfx.co.jp/careers/designer/rigging-artist.html
※免責事項※
本記事内で公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。
これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。
自己責任でご使用ください。
コメント
コメントフォーム