Blenderでメッシュをエクスポートする

From Second Life Wiki
Jump to navigation Jump to search

ビデオチュートリアル

これを見てください。3-part Blender tutorial for static meshes

Blender の詳しいリグ作成チュートリアルがここにもあります: BlanderMan rigging tutorial part 1-1, part 1-2, part 2.

シンプルな棒人間アバター

<videoflash type="youtube">3JHWDdrIeD0|640|505</videoflash>

(字幕)

  1. (0:03)SL のメッシュ、とりわけリグに関する役に立つ情報を見つけるのはとっても難しいことなんだ。Youtube には良いチュートリアルがなく、Google は悪質なものを見極められず、Mesh Sandbox にいる人はみんな知らないか、君のような人と話したがらない。特に素晴らしいリグ入りアバターを見せびらかしてる奴らに限ってあさってのほうを見てて、どうやって作ったかなんて絶対に教えてくれないし、入門レベルで役に立つ情報源がどこにあるかなんてちっとも教えてくれやしない。(--- 以下愚痴が続く)
  2. (0:06)好きなモデルエディタでモデルを作ろう。
  3. (1:07)重要: モデルが妥当なサイズに収まっているか確認しよう。プログラムによってモデルのサイズの解釈が違うから、SL の基準に合うようにモデルを拡大縮小するのが大事だよ。特に Static メッシュを作っている場合は、注意しないと、3000㎥のでっかいオブジェクトを rez してしまうことになるかもしれない。あまりにも大きいものだから、クライアントはまともにレンダリングできなかったり選択できなかったりするよ。
  4. (1:02)モデルを Blender がサポートするフォーマットでエクスポートしよう。俺は普段 OBJ か LWO を使うよ。
  5. (1:03)重要: あと、自分と、自分のモデルをスクリーンでレンダリングすることになるみんなのために、モデルがたくさんのポリゴンを含まないように気をつけよう。1つのアバターの体に 6000 が妥当なところで、デフォルトの SL アバターは 4000 で 30% が無駄になってる。何が無駄になってるのかとか詳しいことはわかるわけないけど。同じことが Static メッシュにも言える。作ろうとしているシェイプが 100 ポリゴンしか必要としてなかったら、見た目に影響がなければ必要量以上は作らないように。スカルプトとプリムという名のポリゴンのラグのゴミから解放するというのがメッシュの目的なんだから、本末転倒にならないようにしよう。
  6. (1:18)さあ、Blender を起動して SL アバターのリグを読み込もう。
  7. (1:33)はじめる前に、基本的な操作方法を説明しよう。右クリック:オブジェクトの選択、左クリック:わかんないw、マウスの中央ボタン:ビューの回転、Shift+中央ボタン: ビューの移動、マウスホイール: 拡大縮小。数字キーは Viewport ポジション(前、後、上、横など)を変える。G: ドラッグ、R: 回転、S: 拡大縮小、Del: オブジェクトの削除
  8. (1:45)これはそんなに重要でないけど、全部のオブジェクトを消して、スケルトンだけ残そうとしている。このほうが何が起きてるかわかりやすいからね。
  9. (1:59)さあ、File メニューでファイルをインポートしよう。フィギュアを保存したファイルのフォーマットを選択してインポートするよ。
  10. (2:17)スケルトンに沿ってモデルを並べよう。
  11. (2:41)モデルを選択して、Shift キーを押しながらスケルトンを選択しよう。Ctrl+P を押すとメニューが出てくるから、Armature を選択しよう。次のメニューで Bone Heat から Create を選択しよう。(Armature は Blender でのボーンの呼称)
  12. (2:50)おめでとう!リグが完成したよ :D ポーズモードに入ってリグを試してみよう。ボーンを動かして、モデルがそれに合わせてどんな動きをするか確かめてみよう。(選択できるモードの中にポーズモードがなかったら、それはスケルトンの選択が解除されたからだよ)
  13. (3:39)リグを SL にエクスポートする前に、最後にとっても大事なステップが残ってるよ。オブジェクトモードに戻ってオブジェクトを選択して、Make Real ボタンをクリックしよう(これをやった後は何もクリックしないでね)。これで、作成したものを SL にエクスポートする準備が整った。
  14. (3:53)File メニューで COLADA 1.4 DAE フォーマットを選択してエクスポートしよう。エクスポートメニューで Triangles ボタンと Only Export Selection ボタンをクリックして、保存場所を選択しよう。
  15. (4:29)このやり方でアバターのメッシュをリギングするのは初歩的で、完全に変形させることはできないけど、Bone Heat からウェイトを作成したら、ウェイトペイントモードに入ってウェイトペイントツールを使ってウェイトマップを操作して、ボーンをどのようにどうやって変形させるかを、もっと細かく指定することができるよ。Youtube でウェイトペイント(Weight Paint)チュートリアルを探したり、俺が棒人間以上に複雑なフィギュアを作ってこのチュートリアルのパート2ができるのを待つかするといいよ。パート2ではウェイトペイントや上級者向けの他のことについて説明する予定。
  16. (4:31)Second Life にログインして、ファイル > アップロード > Model で保存した DAE ファイルを選択しよう。
  17. (4:50)インポートするもの向けにまだ作っていなかったら、Normal と LOD オブジェクトを作成しよう。Skin weight チェックボックスにチェックを入れて Bone Heat かウェイトペイントで作成したウェイトマップをインクルードしよう。モデルを回転させて大丈夫かどうか確認しよう。歩き回ってみて良さそうな感じなら、Upload をクリックしよう。(そのモードで作ってそれもインポートしたいわけでなければ、Joint positions チェックボックスにはチェックを入れないようにしよう。)
  18. (5:47)メッシュは体のパーツのどこにでも装着できる。リグが設定されるように、適切な場所にスナップインされるからだ。エクスポートの前にアバターのサイズが適切か確認しよう。いったん装着してしまうと、小さくすることも大きくすることもできないからだ。(リグ入りメッシュだけがそうなっている)
  19. (6:27)容姿エディタを使ってメッシュアバターのシェイプを変更することもできる。だけど、変更できるのは腕・足・首・胴体の長さと、腰周りと肩幅、頭・手・足のサイズだけだ。顔・尻・乳は変えられないよ :D


Mancandy アバター

<videoflash type="youtube">8w88B7F7v_k|640|505</videoflash>

基本手順

Cube を作成します (Monkey, Teapot, Hippo でも可)

ポリゴンを減らします

メッシュのポリゴン数を減らす簡単な方法は、"Poly Reducer" スクリプトを使う方法です。Mesh -> Scripts -> Poly Reducer からアクセスできます。このスクリプトは、シェイプに影響を与えることなく、モデルに使われているポリゴンの数を減らします。"Decimate" ツールとにたようなものですが、メッシュの UV マッピングも調整します。

LOD メッシュを生成する手っ取り早い方法は、

  1. Blender ファイルが保存されているか確認します。
  2. フルディティールのメッシュを COLLADA でエクスポートします。
  3. Poly Reducer を起動して、Poly Reduce を 0.5 に設定します(ポリゴン数を半分に減らします)。
    • メッシュを生成した後に手作業で変更した場合は、必ず UV マップもそれに合わせて修正してください。
  4. メッシュを COLLADA でエクスポートします。これで LOD は「中」のレベルになります。
  5. オリジナルのフルディティールのメッシュをリロードします。常にフルディティールのメッシュから始めるとエラーが溜まっていかずに済みますが、アタッチメントのようなシンプルなメッシュではそんなに気になることはないでしょう。
  6. Poly Reducer を起動して、Poly Reduce を 0.25 に設定します(ポリゴン数を4分の3減らします)。
  7. メッシュを COLLADA でエクスポートします。これで LOD は「低」のレベルになります。
  8. オリジナルのフルディティールのメッシュをリロードします。
  9. Poly Reducer を起動して、Poly Reduce を 0.125 に設定します(ポリゴン数を8分の7減らします)。
  10. メッシュを COLLADA でエクスポートします。これで LOD は「最低」のレベルになります。モデルの物理描写を定義するときはこのメッシュを使うとよいでしょう。

残念なことに Poly Reducer スクリプトは現在バージョン 2.4x の Blender でしか動作しません。代替手段として "Decimate" モディファイアを使えますが、それぞれの LOD レベルで UV マップを作り直さなければならないという欠点があります。

テクスチャを適用します

メートルに直します

サイジングは必ずしなければならないものではありません。基本的には、3D プログラム (Blender) とターゲットとなる環境 (Second Life) のマッピングがどのようになっているかを知っていれば大丈夫です。あとは適切な大きさで作ればいいだけです。ターゲットとなる環境でもモデルのサイズは変更できます。

そうすると、Blender では何が問題になってくるのでしょうか?単純です。Blender の Collada エクスポータはメジャーの1単位が現実世界の 1cm にマッピングします。しかし Second Life は1単位は Second Life の 1m とみなします。残念なことに、このミスマッチでしょっちゅう「タイニーオブジェクト」がインポートされることになってしまいます。一般的な解決策は、Blender のモデルのサイズを 100 倍にすることです。

しかしもっとよりよい方法があります。Collada エクスポータを修正して期待通りにふるまわせてしまえばよいのです。ビデオを見てください。Blender-2.49b と Second Life のメジャーのミスマッチを解決する方法について説明しています。

<videoflash type="vimeo">18354783|640|370</videoflash>

COLLADA にエクスポートします

Second Life にインポートします

ベストプラクティス

Forum thread on optimizing your mesh in Blender for Second Life

Forum thread on installing Blender

ボーンとリグ

Forum tip for exporting joint positions with Blender