weightmap paint toolを使ってみた。

male06だとだいたいうまく行ったのだが、 alyxやbarneyなどのsmdからweightmapを取ってくると顔や手のポリゴンがぐしゃぐしゃになって、 ちっともうまく行かない。 いろいろ試してみたがまるでうまくいかない。 他人が作ったweightmapをimportする場合には、 こういう問題は常につきまとうので、 リグかweightmapを修正する根本的な技を身につけておかないとどうにもならんのではないかと思われた。

そこで性根を据えて Weight Map Editing というのを参考にしてweightmapを修正してみることにした。

結論から言えば効果テキ面だった。 weightmapというのはメッシュへのリグの重みを表したものだが、 サンプルやmdldecompilerから抽出したsmdのweightmapを見てみると、 胴体や脚などは割と単純な色の分布になっているが、 顔や手などがものすごく複雑。 しかし、頭の部分にはBipe01_Head1というリグが一つあるだけなので、 頭全体は単一色のweightで塗りつぶせば良いだけだった。 これで顔がぐにゃぐにゃする現象は一発で解消した。

指の問題はも少しややこしいがこれも大したことはない。 UV展開に塗り絵するよりもweightmap editorの方がずっと楽。 指は一本一本に3つのリグが割り当てられている。 たとえば左手親指は根本から指先に向かって Bipe01_L_Finger0、 Bipe01_L_Finger01、 Bipe01_L_Finger02となっている。 左手人差し指ならば Bipe01_L_Finger1、 Bipe01_L_Finger11、 Bipe01_L_Finger12という具合に。 だから片手で15、両手で30の重みを丁寧に塗り分けていく。 メッシュの色が正しく塗られていても頂点の色が変わってない場合がある。 隣の指のweightが割り当てられているとポリゴンがぐちゃぐちゃになるので、 モデルビューアなどでどこがおかしいか確認しつつweightを塗っていく。 そうすれば直ります。