2014年06月27日

Weight Paint Modeでボーンコピー

前のページ(AvatarをBlenderにとりこむAvatarをBlenderにとりこむ(その2))で書いたようにBlenderのバージョン2.66以降ではボーン・ウェイト・コピーのアドオンのためのスクリプトが使えなくなりました。したがって同じことをやるためにはWeight Paint ModeのなかのWeight ToolのなかのTransfer Weightボタンを使わなければなりません。

そのための方法はこのページに書いてあります。


Blender2.67aでボディシェイプから衣服へ簡単にウェイトをコピーする方法は?というTristus Pattonさんの質問に答えてMonti Messmerさんという方が以下のように説明してくれています。

1. Select the shape, with the weights
2. select the cloth you want the weights transferred to
3. switch to weight paint mode
Now you will see a button (among alot others) with transfer weights
4. push that button once then select the options (selected, closest vertex ......) you want
5. push that button again (i usually do 2 times to be sure)

つまりまず最初に
1. ウェイトが設定されているほうのオブジェクト(たとえばabatar.blend)を選択します。
つぎに
2.ウェイトをコピーすべきオブジェクトを選択します。
(これはいままでの「ボーン・ウェイト・コピー」のときの選択の順番とまるで逆なので気をつけましょう。)
3.Weight Paint Modeに移行してWeight ToolのなかのTransfer Weightsボタンを押します。
すると
4.オプションボタンがあらわれるのでそのなかのGroupとMethodとReplaceを適当なものに選択します。
(このオプションボタンは小さな「+」のついたタグをクリックしないと見られないかもしれません。GroupとMethodとReplaceに関しては「ALL-Closest Vertex-ALL」を選択するのがいいようです)
5. 再度Transfer Weightsボタンを押します。

これはこのとおりで間違いないのですが,しかし失敗するかもしれません。
その理由はわたしたちが余分な骨頂点をそのままにしているからなのです。

いままでこのもとちゃブログではしろちゃさんのブログの解説をなぞってきました。それは以下のようなものです。


一. シェイプデータ準備

7.avatar.blendファイルの骨整理

★ 不要な骨の削除

eyeBallLeft
eyeBallRight
eyelash
hair
head
lowerBody
skirt
upperBody
以外をすべて削除

★ 非選択部分の非表示

head
lowerBody
upperBody
以外をすべて非表示

★ カクカク → なめらか表示

★ レイヤー移動

レイヤー1に骨。レイヤー2に頭,上半身,下半身。


9.骨とボディのセット

ここでSLからインポートしたアバターをabatar.blendの骨とEmpty Groupsとして連携設定(Ctrl+P)する。

SLアバターとabatar.blendの頭,上半身,下半身のそれぞれについてボーン・ウェイト・コピーする。

abatar.blendの身体を消去。

ボーンウェイトコピーしたSLアバターを複製,別のレイヤーに移動して頭と上半身と下半身をジョイントする。


★ 余分な骨頂点グループ削除

a. プロパティパネルの Object Data タブの Vertex Groups 項目を選択
    b. リストをスクロールし、最後の default_upperbodyParallel をクリックする
    c. リストの右側にある - ボタンを連打!し、 m(小文字)から始まる26個以外を消す

つまりしろちゃんさんのやり方はまずボーンウェイトコピーをやった後でSLアバターのほうの「余分な骨頂点グループ」を削除するという方法だったわけです。
そのうえもとちゃブログではそれさえやっていませんでした。なぜなら余分な骨頂点グループの削除はWeight Paint Modeを使うときにだけ邪魔になるものであって,いままでもとちゃブログではWeiht Paint Modeについて触れてこなかったからです。

しかしBlender2.65までのアドオンによるボーン・ウェイト・コピーが不可能になった以上,上の方法は改めなければなりません。

つまり例えばabatar.blendからSLアバターにウェイトをコピーする前の段階でabatar.blendのほうの余分な骨頂点グループを削除しておかなければならないということです。

そのための方法はしろちゃさんのページに書かれているのと一緒です。

a. プロパティパネルの Object Data タブの Vertex Groups 項目を選択
b. リストをスクロールし、最後の default_upperbodyParallel をクリックする
c. リストの右側にある - ボタンを連打!し、 m(小文字)から始まる26個以外を消す

まあ要するにまずabatar.blendの頭でも上半身でも下半身でもいいですから選択してプロパティ→ObjectData(逆三角形のアイコンボタン)のなかのBertexGroupと書かれたリストのなかの「m」ではじまる項目以外をすべて削除すればいいわけです。

頭,上半身,下半身すべてにこの作業をして(保存しておいて)そこにおもむろにSLアバターを読み込んでから,上ででてきたMonti Messmerさんの方法をやってみてください。


Posted by もとちゃ at 18:12│Comments(0)
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。