前回のリギングでボーンコンストレイントは特に説明しないと書きましたが、IKという便利な仕組みくらいは説明しておこうかと気が変わりました。が、説明のために先にウェイトペイントについて説明して、キャラクターが動くようになってから説明することにしました。
そこで、今回は前回作成したリグをキャラクターに適用するところから説明します。適用するにはペアレントをしますが、その設定のときにウエイトと頂点グループが重要な機能として使われています。これを理解しておくことがとても重要ですので、その辺も説明します。
Step 1
オブジェクトモードでリグで(アーマチュアで)動かしたいオブジェクトであるトミー君を選択してから、「Shift」キーを押しながら、アーマチュアを選択します。そして、「Ctrl」+「P」キーを押してペアレントします。すると、下図のようなメニューが表示されるので、ここでは「自動のウェイトで(With Automatic Weights)」を選択します。
[GARD]
Step 2
アーマチュアだけを選択し、「Ctrl」+「Tab」キーを押してポーズモードに移ります。あるいは、3Dビューのヘッダーにあるモードリストから選択します。
このモードはアーマチュアを動かすためのモードです。頭の部分のボーンを選択して、「R」キーで動かしてみましょう。頭もボーンの動きに追従しているはずです。
Step 3
ここで動作の仕組みを説明します。トミー君オブジェクトを選択し、編集モードに移ります。頂点を全く選択していない状態にします。プロパティ・エディターの「オブジェクトデータ」タブを開き、「頂点グループ」パネルのスロットの中から「Head」を選択します。そして、その下にある「選択」ボタンを押します。
すると、図のように頭の部分だけ選択されます。自動で設定したので、オブジェクトの作り方次第で選択された頂点の位置がことなるかもしれません(特に首の辺り)。しかし、ここでの説明ではそのままで進めてください。
このようにボーン名と同じ頂点グループが作成され、その頂点グループに登録された頂点は、同じ名前のボーンにより動かすことができる仕組みになっています。
そして、登録された各頂点がどの程度ボーンの動きに対して追従するかを設定するのが「ウェイト」というプロパティです。先ほどのペアレント設定で自動的にを選択したので、ウェイトも自動で設定されています。それを見るには、3Dビュー上で「N」キーを押したときに表示される「頂点ウェイト」パネルで選択した頂点が属する頂点グループごとにウェイトの値が表示されています。
ここで、ウェイト値や属する頂点グループの編集を行うことができます。ここで編集してもいいのですが(時にはここでやった方がはっきり設定できるので)、視覚的に直観的に行う方法があります。3Dビューのヘッダーから「ウェイトペイント」を選択します(あるいは、一旦オブジェクトモードに移り、「Ctrl」+「Tab」キー)。
すると、図のように色が付いた表示になります。見ての通り、色でウェイトの値を表しています。赤い部分がウェイト値が1を意味しています。そして、青色の部分は0に見えるけど0ではないです。ウェイトの値は0~1までであり、1になるほど強くボーンの動きに追従し、0は追従しません。0と1の間は、下図のように値に応じたグラデーションになります。
このとき、ツール・シェルフの「オプション」タブを開き、表示された「オプション」パネルの「Xミラー(X Mirror)」にチェックを入れ、「アクティブ」ボタンを押すと下図のようになります。「Xミラー」はウェイト値を編集するときに反対側にも作用するようにするものです。「アクティブ」は同じ頂点グループに属した頂点以外を黒色で表示し、頂点のウェイト値がゼロの部分が黒色にするので判別がつきやすくなります。
Step 4
ここでのウェイトの設定ではペアレント設定のときに自動で行いました。そのため、100%どこかに不適切な設定がなされます。キャラクターの形状がケースバイケースなのでしょうがないんです。特に腕の動きのボーンではそうなることが多いです。確認していきましょう。
では、頭の部分のボーンを選択して「Alt」+「R」キーで元の位置に戻します。頭の部分は、首と肩の動き方が不適切になることがありますが、分かりにくいので別の部分で説明します。
Step 5
テンキーの「1」キーを押して正面にし、上腕のボーン(Arm_upper_L)を選択して、「R」キーで動かしてみてください。下図のように肩の部分やわき腹の辺りも動いてしまい不自然です。
Step 6
ツール・シェルフの「ツール」タブを開き、「ブラシ」パネルの図の部分をクリックして「Subtract」ブラシを選択します。
Step 7
不自然な部分をマウス左ドラッグでなぞると(ストロークすると)、その部分のウェイト値が減少して最後には0の黒色になります。下図のようにペイントします。なお、ブラシの「強さ」プロパティでウェイト値の減少の強さを調整できます。「半径」はブラシの大きさです。「F」キーでも3Dビュー上で変えることができます。
また、慣れないうちは、マウス左ボタンをストロークさせるのではなく、マウス左ボタンをワンクリックしてペイントを確認しながら行うのも良いかもしれません。
腕を回転させて、修正後の動きを確認します。もし、やり過ぎた場合は、ブラシのタイプを「Brush」や「Draw」ブラシに変えてペイントし直します。このブラシは逆にウェイト値を付けることができます。
Step 8
確認していると、腕を上げたときの肩の部分が不自然です。ウェイトペイントでは修正が難しい場合もあります。そのときはモディファイアーの順番を入れ替えると良いです(最初からやっておけという話もありますが、理解を深めてもらうために後にしました)。
プロパティ・エディターの「モディファイアー」タブを開くと、このオブジェクトに設定されているモディファイアーが表示されます。上から「細分割曲面」、「アーマチュア」の順番になっているはずです。どちらのパネルでもいいので、パネルの上部ある三角の図が書いてあるボタンを押し、上下の順番を入れ替えます。モディファイアーは上から順番に処理されるので、これでアーマチュアによる変形の後に、メッシュの形状がスムーズになります。
ウェイトペイントをするとき、「Z」キーを押すと、ワイヤーフレームが表示されるので分かりやすいです。
Step 9
ボーンひとつひとつについて動かしては、変形がおかしくないか確認していきます。全部のボーンについて説明しません。以下は主要なところだけ説明します。
腕(Arm_lower_L)を選択して、「テンキー」の「7」キーを押して動かしてみましょう。下図のように上腕の部分が曲げが大きくなると細くなっていくことが分かります。これはキャラクター自体のメッシュ構造にもよります。ポリゴンが少なければ大きな範囲でボーンの動きに追従しようとして、より変形してしまう部分が出てきます。なので、メッシュ構造を修正することで直ることもありますが、メッシュの構造を弄らないで修正する方法もあります。
Step 10
プロパティ・エディターの「アーマチュア」モディファイアーパネルにある「体積を維持(Preserve Volume)」にチェックを入れます。
これでボーンを動かしてみましょう。細くならないことが分かります。
Step 11
大きく歪みそうな部分は、肩のボーン(Shoulder_L)や太もものボーン(Leg_upper)かと思います。以下のように修正しました。
ウェイトペイントで直すには限界もあります。私の場合、これ以上の形状の修正はシェイプキーという機能を使ってしまいます。曲げたときに筋肉の膨らみを表現するのもシェイプキーを使うので。また、Blenderにはウェイトペイントについても便利な機能な沢山あります。この辺もBlender2.6マスターブックで書いてます。それらも学習しておくと良いかと思います。