2013年04月13日

AvatarをBlenderにとりこむ(その2)

前回はAvatar.blendをBlenderに取り込むところまでをやりました。

このアバターモデルはセカンドライフの公式ものとは多少違うのですが、スカルプテッドプリムでアクセサリーなどを制作するときなどに利用するぶんには十分役にたちます。

しかしメッシュのリグつきドレスなどの制作になると微妙なサイズの調節ができないので直接セカンドライフのアバターなどを使ってモデリングしなければなりません。

ここではそのためにSLのアバターメッシュをエクスポートしてBlenderに取り込み、ボーンウエイトコピーするまでのやり方を勉強会用に書いておきます。(前回同様しろちゃさんのサイトhttp://shiros.slmame.com/c86799.htmlからの受け売りです^^)

まず「Bone Weight Copy」のアドオンが読み込まれていることを確認します。
AvatarをBlenderにとりこむ(その2)
前回同様2.65aの「工場出荷状態」で説明すると--

AvatarをBlenderにとりこむ(その2)
まず3D画面の上部をクリックして引きおろし「Info」→「User Preference」画面にします。

AvatarをBlenderにとりこむ(その2)
画面上部に並んでいるタグのうち「Addons」を選び、リストのなかに「3D view : Copy Bone Weight」があって右端の四角にチェックが入ってリスト名が黒文字になっていれば問題ありません。

文字が灰色でチェックがはいってないなら入れてください。(2.66だとこのチェックがなぜか入りません^^;)

追加:2.66以降のバージョンではこのアドオンのためのパイソンスクリプトが使えなくなったようです。したがってこのページの以下のやり方では2.66より新しいバージョンのBlenderではボーンウェイトコピーはできません
代わりに同じことがWeight Paint Modeでできるようになりました。このやり方は別のページで説明します。


もしリストのなかに「Copy Bone Weight」そのものがない場合はちょっとやっかいです。
AvatarをBlenderにとりこむ(その2)
そのときは同じ画面の「Install from File」とあるボタンを押してファイルブラウザ画面を開き、あらかじめサイトからダウンロードしたアドオンファイル「space_view3d_copy_bone_weights_enhanced.py」を選択して読み込んでください。

これはPythonスクリプトなのでブラウザがテキストとして開いてしまうことがあります。その場合はリンクにもどって右クリック→「名前をつけてリンク先を保存」してください。

追記 : ブラウザの種類によっては上の操作がうまくいかないことがあるようです。そのときは開いたページにあるスクリプトをそのままコピーしメモ帳などにペーストして「space_view3d_copy_bone_weights_enhanced.py」の名前でわかりやすい場所に保存してください。(あるいはBlenderからloadしなくても以下の場所に直接保存するだけでもアドオン・リストに表示されます)

C:\Users\あなたのユーザー名\AppData\Roaming\Blender Foundation\Blender\2.65\scripts\addons


アドオンの説明は以上です。

さてSLからアバターをエクスポートするにはその機能をもった特別なビューアーを使わなければなりません。
Phoenixのオールドリリースバージョン1185がそれです。まず下のサイトを開いてください。
http://wiki.phoenixviewer.com/phoenix_downloads

Phoenixビューアーのサポートは2013年1月1日に終了、などと書いてありますが--
AvatarをBlenderにとりこむ(その2)
このページのなかほどにOlder ReleasesRelease 1185というのがあります。
AvatarをBlenderにとりこむ(その2)
ダウンロードリンクをクリックしてご自分のシステムにあったものを入手してください。

Phoenix 1185でアバターメッシュのエクスポートをするときはまず装着してる衣類はすべてはずさないといけません。プリム以外の衣類はご存知のとおりアバターのシェイプを変化させてしまうからです。(つまり「すっぽんぽん」の丸裸にならないといけないので作業中人目に触れないよう更衣室にこもるか誰もいない高い上空に移動してください^^)

つぎにAdvancedメニューからCharacterMeshes And Morphsを選択します。(もしAdvancedメニューがないときは「Ctrl+Alt+Shift+D」で表示されます)
AvatarをBlenderにとりこむ(その2)
Meshes And Morphsのウインドウが開くのでエクスポートしたいボディパーツを選択します。たとえば頭部だったら「headMeshheadMeshCurrent MeshSave OBJ」になります。
AvatarをBlenderにとりこむ(その2)

最初「headMesh」を選択すると「headMesh LOD 1」から「headMesh LOD 4」ぐらいまでずらっと並んで表示されますけど無視してください。肝心なのはただの「headMesh」です。
LODはLevel of Detail =詳細レベルのことでカメラが離れたときアバターの形状を簡略化するときのため用意されているメッシュです)

同様にして上半身、下半身をエクスポート、Wavefont.objファイルとしてわかりやすい場所に保存してください。

AvatarをBlenderにとりこむ(その2)
前回の最後の画面にふたたびもどります。

Avatar.blendのボーンとボディメッシュはいますべて同じレイヤーにありますが、これをレイヤー1レイヤー2に分割します。
そのためには(オブジェクトモードで)ボディのほうの頭と上半身、下半身をShiftキーを押しながら同時選択してください。
AvatarをBlenderにとりこむ(その2)
そのまま3D画面上でMキーを押すとレイヤー選択の窓がひらきます。グレーに着色されているのがレイヤー1ですから、その右隣のレイヤー2をクリックしてください。

AvatarをBlenderにとりこむ(その2)
ボーンだけを残してボディがレイヤー2に移動しました。こんどはこのレイヤー1にSLからエクスポートしたボディを取り込みます。

AvatarをBlenderにとりこむ(その2)
レイヤー1を選択した状態でFileImportWavefont(.obj )を選びます。

AvatarをBlenderにとりこむ(その2)
ファイルブラウザで先ほどエキスポートしたSLアバターの各部位を選択しますがlmport OBJボタンを押すまえに赤枠の設定に注意してください。

AvatarをBlenderにとりこむ(その2)
ここでForward :を「Y Forward」に Up :を「Z Up」にしてください。これでボーンの向きとあわせて各パーツがインポートされます。

AvatarをBlenderにとりこむ(その2)
head upperbosy lowerbodyそれぞれが正しいむきにインポートされたら全部を選択してObject ToolsShadingSmoothでまえのボディと同じように滑らかにします。

ボディ全部が選択されている状態でさらにボーンを追加選択します。(選択の順序は重要です)
AvatarをBlenderにとりこむ(その2)

Ctrl+Pを押します。「Set Parent To」の窓のArmature Deforms のなかのWith Empty Groupsを選びます。
AvatarをBlenderにとりこむ(その2)
赤枠のアウトライナー画面を見ていてください。

AvatarをBlenderにとりこむ(その2)
With Empty Groupsを選ぶと後からインポートした身体部分が最初のアバターの部位と同列に含まれるようになります。

Aキーでいったん全選択解除してからあらためて新しくインポートした頭部(ここではavatar_head.llm_current)と以前の頭部(head)を選択します。
AvatarをBlenderにとりこむ(その2)
このときかならずAvatar.blendheadのほうを「後で」選択するようにしてください。後から選択したほうが「」になってボーンウエイトは「」→「」の順でコピーされるからです。

AvatarをBlenderにとりこむ(その2)
レイヤー1が選択されているはずなのでShiftを押しながらレイヤー2を同時選択してください。3D画面のObject Toolsの下のあたりにBone Weight Copyの設定(赤枠)が現れるはずです。

AvatarをBlenderにとりこむ(その2)
Interpolation」を0から1にして「Copy Empty Groups」にチェックをいれます。

AvatarをBlenderにとりこむ(その2)
Copy Bone Weights」ボタンを押すとコピーがはじまります。時間がすこしかかるかもしれませんから気長に待ってください。(まれに外枠にBlender「反応なし」という警告表示が出る場合もありますが砂時計アイコンがでるならだいじょうぶです)

おなじことをavatar_upper_body.llm_currentupperbody 、そしてavatar_lower_body.llm_currentとlowerbodyとの間で繰り返してください。

すべてうまくいったら新しいボディとボーンの連携を確かめてみましょう。
AvatarをBlenderにとりこむ(その2)
いったんすべての選択を解除し、ボーンだけ選択した状態で3D画面のモードを「Pose Mode」にかえます。

AvatarをBlenderにとりこむ(その2)
ボーンの一部を選択して

AvatarをBlenderにとりこむ(その2)
Rキーで回転させたとき、ボディーもいっしょに動くならボーンコピーは成功しています。

動かしたパーツをもとへもどすときは「Alt+R」です。

「Object Mode」にもどします。ボーンを選択解除して今度はボディの頭、上半身、下半身をいっしょに選択します。
AvatarをBlenderにとりこむ(その2)
Shift + D」を押します。マウスを動かさないようにしつつEscを押してください。

一見何の変化もないようですが、じつはボディが複製されています。
AvatarをBlenderにとりこむ(その2)
そのまま「M」を押してレイヤー3を選択します。

AvatarをBlenderにとりこむ(その2)
レイヤー3に移り、ボディーがすべて選択されている状態で「Ctrl + J」を押します。
これによってレイヤー3のボディは統合されてひとつのメッシュオブジェクトになりました。

SLから直接取り込んだこのボディにはメッシュ制作には不用な頂点グループがたくさん含まれています。それらを削除するために3D画面の右側のPropertisウインドウを引き上げ「Object Data」の画面にします。
AvatarをBlenderにとりこむ(その2)
赤く囲んだところに並んでいるのが頂点グループのリストです。このほとんどが不用のものなのでリスト右にある「」(マイナスボタン)でどんどん消してしまってください。150個近くあるでしょうか。残すべきものは小文字の「m」で始まる26の頂点グループだけです。

この作業をやらなくても一応リグつきメッシュのドレスを作ることはできますが、ウエイトポイントの修正作業をやろうとすると無駄な頂点グループがあるととても邪魔になります。ちょっと面倒ですが消してしまったほうがいいでしょう^^

同じカテゴリー(Blender)の記事画像
茶碗作り
Tシャツづくり
AvatarをBlenderにとりこむ
Blender2.6でスカルプ(ともよ方式)
Blender26でスカルプその2
Blender26でスカルプ
同じカテゴリー(Blender)の記事
 茶碗作り (2014-09-17 17:35)
 Tシャツづくり (2013-05-29 15:10)
 AvatarをBlenderにとりこむ (2013-04-10 13:01)
 Blender2.6でスカルプ(ともよ方式) (2013-03-30 10:00)
 Blender26でスカルプその2 (2013-03-10 21:44)
 Blender26でスカルプ (2013-03-07 13:12)
Posted by もとちゃ at 18:06│Comments(0)Blender
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。