Maya チュートリアル:
キャラクターセットアップ その②:スキンウェイト調整

| コメント(6) | トラックバック(0)

スムースバインドしたスキンは意図しない変形が起こる場合がある。
スキンウェイトを調整して変形をコントロールする。



ジョイントによる変形はジョイントからの距離に比例する。
その変形の程度をMayaではスキンウェイトと呼び、ブラシツールで変更する。

スキンウェイトはポリゴンではVertex、NURBSではCVに割り当てられている。


調整するオブジェクトを選び
Animationメニューセット Skin > Edit Smooth Skin > Paint Skin Weights Tool

上図のように、選ばれたオブジェクトがモノクロ表示に変わる。
モノクロに変わらないとき、また、作業中に表示を変えたときは、ツールバー(左端)の
クリックする。

白に近いほど、そのジョイントの影響が強いことをあらわしている。
上図の場合、わきの変形が不必要なので、その部分を黒くペイントしていくことになる。


また、表示がモノクロに変わるとともに、スキンウェイトブラシのオプションウィンドウが開く。

Influenceにジョイントの一覧が表示されるので、ウェイト調整したいジョイントを選び、
次の各項目を調整する。
Radius(U) ブラシ半径。(Rdius(L)はスタイラスで筆圧検知したときの最小半径)
Opacity ブラシ透明度。この場合強さ。
Paint Operation Replace 置き換え。黒くするときに。
  Add 追加。白くするときに。
  Scale スケール。
  Smooth スムース。ウェイトをなだらかにする。
Value ブラシ明度。黒→ウェイト小、白→ウェイト大



ワークスペースではカーソルがブラシツールのカーソルになるので、ペイントしていく。
(ペイントはポリゴンではVertex、NURBSではCVに対して行なわれる。
面に対してではない。)

このウェイト調整を必要な、オブジョクトごと、ジョイントごとに行なっていく。

必要であればウェイトのミラーコピーを行なう。
Skin > Edit Smooth Skin > Mirror Skin Weights
X方向のミラーコピーは Mirror Across ・YZ オプションを指定する。


スキンウェイト値をキー入力する場合はコンポーネントモードで、
ポリゴンのVertexまたはNURBSのCVを
選んでコンポーネントエディターから行なう。
Window > General Editors > Component Editor...
以上でスキンウェイトの調整が出来る。

この段階でモデリングの不具合が出て、モデリングから修正する必要があるかもしれない。
そのときは
①ジョイント(の一番"親")を選んでSkin > Go to Bind Pose
②モデリングデータを選んで Skin > Detach Skin
③モデリング修正。
④モデリングデータを選んでSkin > Bind Skin > Smooth Bind
⑤スキンウェイトの調整。
の手順で行なう。
デタッチされたモデリングーデータはその段階でスキンウェイトが消えるので、再調整が必要である。


■ジョイントで変形させたくないオブジェクトのあつかい


キャラクターの持ち物のように、ジョイントによる変形の必要がない
オブジェクトは上図のように、ジョイントにはバインドせず、
ジョイントの"子"にする。




Copyright (C) 2008 by maya blog:3D CG labo, All Rights Reserved.

トラックバック(0)

このブログ記事を参照しているブログ一覧: Maya チュートリアル:
キャラクターセットアップ その②:スキンウェイト調整

このブログ記事に対するトラックバックURL: http://202.58.16.97/cgi/mt41/mt-tb.cgi/64

コメント(6)

MAYAの数値入力によるキャラクターのポーズ付けはできるのでしようか?
例 右うでを上に10度あげる 

 3DSMAXでは数値入力で右うでを上に10度あげることはできますが、入力した10 という数値が入力した後、0 にもどってしまい、何度か数値入力で右うでを上げ下げすると、今、右うでが、上に何度、上がっているのか、わからなくなり、使いにくいです

質問2
 MAYAでは エンベロープ(球状影響範囲)は 設定しなくていいのでしょうか?
  まさかshadeのように、ポリゴンの頂点すべてに スキン設定しないと人間キャラはポーズ付けできないとか?(何千もポリゴンの頂点あると、やってられません(笑))

>右うでを上に10度あげる
各ジョイントのローカルでの角度しかわからないので、右うでが何度、という形ではわからないですねえ。

>MAYAでは エンベロープ(球状影響範囲)は 設定しなくていいのでしょうか?
リジッドスキンのときのフレクサの設定がそれに近いでしょうか?
3DSMAXは詳しくないのでわかりません。

うまくいきません。というのも、初期設定(スケルトンを付けた状態)から手順通り白く塗っても、ジョイントを指定し直すともとに戻ってしまいます。何度塗ったり消したりをしても同様です。何処が悪いんでしょうか?

一応MAYAを使っています。

スキンウェイトを設定しても元に戻ったり、うまくいっていても、
sceneファイルを保存して読み込みなおすと、スキンウェイトが
元に戻っているということが、ごくたまに発生します。
原因はわかりませんが、sceneデータが壊れてしまっているものと
思われます。

jointをデタッチしてバイドしなおして、もう一度やってみてください。
それでもダメなら、原因はわかりません。

黒い部分を白にする事ならできるのですが、その逆が分かりません。
(要するにオブジェクトを動かしたくない部分がある)
またブラシでこすっても塗れない場合などもあります。

機能の概要を認識できてないのかも知れませんが、何がいけないのか教えてください。

ブラシツールのPaint OperationをReplaceにし、Valueを0にして、
塗ってください。

それでもうまくいかない場合はグラッフィックボードの不具合だと
思われます。
ウェイトのブラシツールを使っているときに時々不具合が起こります。
その時は残念ながら、別のマシンで試してください・・・としか言いようがありません。

コメントする

サイト内検索
カスタム検索
bookmarks and RSS

Yahoo! JAPAN