はじめに
セカンドライフでは、ユーザーが作ったポリゴンメッシュを持ち込むことができます。メッシュというのは、3Dの形状データのことです。メッシュの形式は、いろいろありまして、たとえばDirectXでは、「.x」のファイルをロードできます。セカンドライフでは、COLLADA形式(.dae)のファイルをアップロードできます。
このCOLLADA形式を吐き出せるツールはそんなにないですが、使いやすい日本人が作成した有名な3Dモデリングツールであるメタセコイアで、COLLADA形式を出力できるので、今回はこれを使用した場合の動作情報を紹介します。
※有料版でないと出力できないので注意。
座標とスケーリング
メタセコイアで出力したファイルがセカンドライフでも読み込めるということですが、いろいろ気になる点があると思います。その1つとして、座標空間はどうなんだという点です。座標軸の方向や意味がソフトによって異なるものであり、たとえば正面を向いて作ったキャラクターを他のツールにアップロードしたら、下を向いていたということもありうることなのです。
ほかにもメタセコイアでサイズを100として作ったモデルを、他のツールにアップすると、超巨大なモデルになってしまったり、ノミみたいな小さいモデルになってしまうこともあります。
メタセコイアで箱を作りアップロード
まずは、この重要な座標軸、大きさがどのように反映されるのかテストしたいと思います。
こんなオブジェクトをメタセコイアで作ってみました。正六面体で、6つの面にはそれぞれ次のような色の面の設定をしています。ちなみにメタセコイアの座標家は、DirectXのような座標系になっています。
- X+は赤、X-は水色 (Xは横)
- Y+は緑、Y-は紫色 (Yは高さ)
- Z+は青、Z-は黄色 (Zは奥行)
また、横×高さ×奥行を200x200x200で、立方体の重心を中心点に設定しています。
それをCOLLADA形式で出力します。出力の際にダイアログでオプションが表示されますが、とりあえずここはデフォルトのままで行きたいと思います。
これをアップロードします。
アップロード時でもスケールを設定できますが、ここではデフォルトの1.0倍(等倍)にしています。
セカンドライフ上で確認
さて、セカンドライフの世界では次のような表示になりました。
座標系を比較
ここに表示されている座標軸をそのままみると、
- セカンドライフのX軸+(東)は、メタセコイアのX軸+(左右)
- セカンドライフのX軸-(西)は、メタセコイアのX軸-(左右)
- セカンドライフのY軸+(北)は、メタセコイアのZ軸-(奥行)
- セカンドライフのY軸-(南)は、メタセコイアのZ軸+(奥行)
- セカンドライフのZ軸+(上)は、メタセコイアのY軸+(上)
- セカンドライフのZ軸-(下)は、メタセコイアのY軸-(下)
一見座標軸は違うものの、作ったときと同じような見た目です。
でも、実は注意点がありまして、最初からX軸で90度回転しています。
そのため、90度の回転を戻すとこんな感じです。
- セカンドライフのX軸+(東)は、メタセコイアのX軸+(左右)
- セカンドライフのX軸-(西)は、メタセコイアのX軸-(左右)
- セカンドライフのY軸+(北)は、メタセコイアのY軸+(上)
- セカンドライフのY軸-(南)は、メタセコイアのY軸-(下)
- セカンドライフのZ軸+(上)は、メタセコイアのZ軸+(奥行)
- セカンドライフのZ軸-(下)は、メタセコイアのZ軸-(奥行)
軸はあっていますが、少しややこしいですね。考えるのが面倒な場合や、動き系のスクリプトを組み込まない場合であれば、X軸の90度回転を戻さずアップロードしても問題なさそうです。
スケールを比較
スケールは、アップロード時にも見えていましたが、メタセコイアで 200 と設定したものを、メタセコイアのエクスポートで 0.001倍 にしてCOLLADAファイルを出力。これをセカンドライフで、等倍でアップロードすると 0.2 = 20cm となりました。つまり、メタセコイアの1が、セカンドライフで1mに相当します。
ということは、メタセコイアで作ったデータで 200 を 200 cm とするならば、メタセコイアのエクスポートで 0.01 倍にして出力すると期待した大きさになるということです。
アバターの座標系
話は変わりますが、セカンドライフの世界では以下となるようです。
- X軸の+が正面(アバターの向いている方向)
- Y軸の+が左(アバターの左側)
- Z軸の+が天上(アバターの上側)
何か作るときはこの軸を参考にアップロードしましょう。
マテリアルの設定の動作
今回メタセコイアで6つの材質を色をそれぞれ設定して、アップロードしました。この場合、セカンドライフ上では、各面に色を設定した状態になる感じになります。つまり材質で分けておくと、面選択でその材質のものを一括で選択できるということですね。
テクスチャのUV
テクスチャを作成してアップロード
テクスチャのUVマッピングの座標がどのように反映されるか調べます。これもUVの座標軸が異なると、テクスチャが正しく反映されない場合があります。従ってメタセコイアからセカンドライフへデータを持って行った際のUVがどのようになるか、とても重要な情報なのです。
まずはテスト用のテクスチャをつくります。このテクスチャのX軸がU軸、Y軸がV軸となっています。
学校で習ったグラフのように、
- 画像の右がX軸+、U軸+
- 画像の上がY軸+、V軸+
これを貼った平面を作りました。
セカンドライフ上での動作
これをアップロードしてみると、こんな感じに。これをみると分かるようにメタセコイア上のUV座標のうち、上下のV軸がセカンドライフでは逆になっているようです。
ちなみにプレビュー画面で実際のアップロード(有料)はまだしてませんので、この時点で引き返せます。引き返しましょう!
反転防止を防ぐ
さて、メタセコイアのエクスポート時の話に戻るのですが、ここで「テクスチャのV方向を反転」というのにチェックしておきましょう。ちなみに、先ほどのスケールの話から拡大率1.00 x 10^-2 としました。
これで上下の反転がなくなり、正しくテクスチャを反映できたことが分かります。
実際にセカンドライフ上に設置してみると、こんな感じです。
その他のアップロード時のテクニック集
LoDの編集
描画詳細度 Level of Detail (LoD ) という項目があります。ここかなり重要です。3D描写の負荷を下げるために、遠いオブジェクトはポリゴン数が少ない簡易モデルを表示させます。ここでは、その簡易モデルの登録を行う設定となっています。
簡易モデルはいちいち作るのも面倒なので、通常は自動で計算したものを利用します。ですが、たとえば今回、単純な平面や立方体をアップロードしたのですが、あまりに座標数が少ないためか、自動計算で三角形が1となっています。4点の座標が必要な平面を表示させるのに、座標数が3と計算され、三角形1つとなってしまうのです。とくに低ポリの場合は、しっかりここの設定について目を通しておきましょう。
テクスチャも一緒にアップロード
アップロードの設定に「テクスチャを含む」というのがあります。これにチェックを打つと、後でテクスチャをアップロードして、設定するという手間が省けます。なお、ここにチェックを入れてアップロードすると、画像をアップロードするときにかかるお金はしっかり取られます。
テクスチャを含んでアップロードした場合、ここに自動で保存されます。
おわりに
さらに材質分けの調査ということで以下の記事に続きます。
コメント