俺たちは雰囲気でウェイトペイントをやっている
Humanアーマーチュアを自動ウエイトで適応した時、部分的に上手くウェイトが設定されない事がある。
そういう時はウェイトペイントの出番だ。
可動するボーンに対して3Dモデルがどれだけ追従して動くのかを設定していくウェイトペイントはモデリングと比べれば地味な作業だ。
やることは単純で、ざっくり言えば動いて欲しくない部分は青く、動いてほしい部分は赤く塗る。
同じ部位が複数のボーンに関連付けられている場合もあるのでボーン一つ一つを確認していくのが地味に面倒だ。
今回は自動ウェイトで上手く設定できなかった部分の修正作業を書いていこう。
左は正面を向いている状態、右は頭部を傾けて上を向かせた状態の画像だ。
見てわかるように頭の動きに顎部分が追従しきっていないので顔面が大きく伸びてしまっている。
この状態のウェイト設定は下の画像のような状態になっている。
頭部の上側と比べてアゴ部分の色が薄いのがわかる。
赤色に近ければ近いほどボーンへ強く追従し、青色に近いほどボーンへの追従は弱いので顎の部分はボーンへの追従が弱い状態になっているということだ。
このままでは首を動かすたびに情けない顔つきになってしまうので下の画像のように顎まで赤色に修正する。
ウエイトペイントで行っていく修正作業はこのような作業が大半だ。
ついでに別パターンのウェイト修正についても書いていこう。
これは少し分かりづらいが両膝部分の画像だ。
画像は左足のボーンを選択している状態だが、よく見ると右足にも少し明るい色が乗っているのがわかる。
何度か検証したところ、自動ウェイトを適応した時にパーツ同士の距離が近すぎるとこのように想定外の部分までボーンに関連付けされてしまうようだ。
この状態で左足を動かすとこのように右足の一部まで一緒に動いてしまう。
この場合は顎の修正をしたときは逆で、余計な部分を青く塗ればボーンへの追従をなくす事ができる。
僕の作っているモデルは金属製のロボットのつもりでいるので大まかなウェイト設定は0(青)か100(赤)で良いと思っている。
もし作っているのが人間や動物だったら部分的にグラデーションになるようにウェイト設定をして、柔らかくパーツが伸び縮みするように作り込む必要があったんだと思う。
次のモデルでは伸縮する関節を作り込むのを課題の一つにしようと思っているのでウェイトペイントで出来ることをしっかりと覚えて置きたいところだ。
最後に完成したモデルを雑に動かした動画を貼っておく。
よく見ると膝のウェイト設定が修正されていないのはご愛嬌だ。
それと、棒立ちだけでなくポージングさせた画像もあると見栄えが良くなるとアドバイスを頂いたのでライダーキックっぽいやつも掲載しておく。
棒立ちより確かにカッコいい!
ちなみに現在放送中の仮面ライダージオウはすごく面白いのでオススメだ!
次に3Dモデル関連の記事を書く時はこのモデルをVRM化してvirtualCastに入れる記事を書きたいんだが、正直いまでもUnityの使い方が全然わかっていないので記事になるか怪しいところだ……
テクスチャの付け方もまだ勉強していないし、僕がオリジナルモデルで凸したりするようになる前にVirtualCastのサービスが終了してしまうんじゃないかと心配だ……w