セカンドライフでは、ユーザーが作ったポリゴンメッシュを持ち込むことができます
メッシュというのは、3Dの形状データのことです。
メッシュの形式は、いろいろありまして、たとえばDirectXでは、「.x」のファイルをロードできます。
セカンドライフでは、COLLADA形式(.dae)のファイルをアップロードできます。

このCOLLADA形式を吐き出せるツールはそんなにないですが、
使いやすい日本人が作成した有名な3Dモデリングツールであるメタセコイアで、
COLLADA形式を出力できるので、今回はこれを使用した場合の動作情報を紹介します。

※有料版でないと出力できないので注意。


座標とスケーリング

さて、メタセコイアで出力したファイルが
セカンドライフでも読み込めるということですが、いろいろ気になる点があると思います。
その1つとして、座標空間はどうなんだという点です。

座標軸の方向や意味がソフトによって異なるものであり、
たとえば正面を向いて作ったキャラクターを他のツールにアップロードしたら、
下を向いていたということもありうることなのです。

ほかにもメタセコイアでサイズを100として作ったモデルを、
他のツールにアップすると、超巨大なモデルになってしまったり、
ノミみたいな小さいモデルになってしまうこともあります。

まずは、この重要な座標軸、大きさがどのように反映されるのかテストしたいと思います。

dimtest_1s
こんなオブジェクトをメタセコイアで作ってみました。
正六面体で、6つの面にはそれぞれ次のような色の面の設定をしています。
ちなみにメタセコイアの座標家は、DirectXのような座標系になっています。
X+は赤、X-は水色 (Xは横)
Y+は緑、Y-は紫色 (Yは高さ)
Z+は青、Z-は黄色 (Zは奥行)
また、横×高さ×奥行を200x200x200で、立方体の重心を中心点に設定しています。

dimtest_2s
それをCOLLADA形式で出力します。
出力の際にダイアログでオプションが表示されますが、
とりあえずここはデフォルトのままで行きたいと思います。

dimtest_3s
これをアップロードします。
アップロード時でもスケールを設定できますが、ここではデフォルトの1.0倍(等倍)にしています。

dimtest_4s
さて、セカンドライフの世界では次のような表示になりました。
ここに表示されている座標軸をそのままみると、
セカンドライフのX軸+(東)は、メタセコイアのX軸+(左右)
セカンドライフのX軸-(西)は、メタセコイアのX軸-(左右)
セカンドライフのY軸+(北)は、メタセコイアのZ軸-(奥行)
セカンドライフのY軸-(南)は、メタセコイアのZ軸+(奥行)
セカンドライフのZ軸+(上)は、メタセコイアのY軸+(上)
セカンドライフのZ軸-(下)は、メタセコイアのY軸-(下)
一見座標軸は違うものの、作ったときと同じような見た目です。

dimtestX_1s
でも、実は注意点がありまして、最初からX軸で90度回転しています。

dimtestX_2s
そのため、90度の回転を戻すとこんな感じです。
セカンドライフのX軸+(東)は、メタセコイアのX軸+(左右)
セカンドライフのX軸-(西)は、メタセコイアのX軸-(左右)
セカンドライフのY軸+(北)は、メタセコイアのY軸+(上)
セカンドライフのY軸-(南)は、メタセコイアのY軸-(下)
セカンドライフのZ軸+(上)は、メタセコイアのZ軸+(奥行)
セカンドライフのZ軸-(下)は、メタセコイアのZ軸-(奥行)
軸はあっていますが、少しややこしいですね。
考えるのが面倒な場合や、動き系のスクリプトを組み込まない場合であれば、
X軸の90度回転を戻さずアップロードしても問題なさそうです。

dimtest_5s
スケールは、アップロード時にも見えていましたが、
メタセコイアで 200 と設定したものを、
メタセコイアのエクスポートで 0.001倍 にしてCOLLADAファイルを出力
これをセカンドライフで、等倍でアップロードすると 0.2 = 20cm となりました。
つまり、メタセコイアの1が、セカンドライフで1mに相当します。

ということは、メタセコイアで作ったデータで 200 を 200 cm とするならば、
メタセコイアのエクスポートで 0.01 倍にして出力すると期待した大きさになるということです。

select_s
ところで、今回メタセコイアで6つの材質を色をそれぞれ設定して、アップロードしました。
この場合、セカンドライフ上では、各面に色を設定した状態になる感じになります。
つまり材質で分けておくと、面選択でその材質のものを一括で選択できるということですね。

話は変わりますが、セカンドライフの世界では
X軸の+が正面(アバターの向いている方向)
Y軸の+が左(アバターの左側)
Z軸の+が天上(アバターの上側)
のようです。
何か作るときはこの軸を参考にアップロードしましょう。


テクスチャのUV

テクスチャのUVマッピングの座標がどのように反映されるか調べます。
これもUVの座標軸が異なると、テクスチャが正しく反映されない場合があります。
従ってメタセコイアからセカンドライフへデータを持って行った際のUVがどのようになるか、
とても重要な情報なのです。

textest
まずはテスト用のテクスチャをつくります。
このテクスチャのX軸がU軸、Y軸がV軸となっています。
学校で習ったグラフのように、
画像の右がX軸+、U軸+
画像の上がY軸+、V軸+

textest_2s
これを貼った平面を作りました。

textest_3s
これをアップロードしてみると、こんな感じに。
これをみると分かるようにメタセコイア上のUV座標のうち、
上下のV軸がセカンドライフでは逆になっているようです。

ちなみにプレビュー画面で実際のアップロード(有料)はまだしてませんので、
この時点で引き返せます。引き返しましょう!

textest_4s
さて、メタセコイアのエクスポート時の話に戻るのですが、
ここで「テクスチャのV方向を反転」というのにチェックしておきましょう。
ちなみに、先ほどのスケールの話から拡大率1.00 x 10^-2 としました。

textest_5s
これで上下の反転がなくなり、
正しくテクスチャを反映できたことが分かります。

textest_6s
実際にセカンドライフ上に設置してみると、こんな感じです。


その他のアップロード時のテクニック集

point_1s
描画詳細度 Level of Detail (LOD ) という項目があります。ここかなり重要です。
3D描写の負荷を下げるために、遠いオブジェクトはポリゴン数が少ない簡易モデルを表示させます。
ここでは、その簡易モデルの登録を行う設定となっています。

簡易モデルはいちいち作るのも面倒なので、通常は自動で計算したものを利用します。
ですが、たとえば今回、単純な平面や立方体をアップロードしたのですが、
あまりに座標数が少ないためか、自動計算で三角形が1となっています。
4点の座標が必要な平面を表示させるのに、
座標数が3と計算され、三角形1つとなってしまうのです。
とくに低ポリの場合は、しっかりここの設定について目を通しておきましょう。

point_3s
アップロードの設定に「テクスチャを含む」というのがあります。
これにチェックを打つと、後でテクスチャをアップロードして、設定するという手間が省けます。
なお、ここにチェックを入れてアップロードすると、
画像をアップロードするときにかかるお金はしっかり取られます。

texture_upload_s
テクスチャを含んでアップロードした場合、ここに自動で保存されます。


メタセコイア関係の本の宣伝コーナー

(2014年発売) (2005年発売)

2005年のメタセコイアは、今の2014年のメタセコイアと使い勝手が
大分違うので、ツールの使い方から知りたいという方は新しいほうがいいかもしれません。

以上!

関連記事

  • セカンドライフでモデリング2(メタセコイア編)セカンドライフでモデリング2(メタセコイア編) 「セカンドライフでモデリング(メタセコイア編)」の続きです。 今回は、モデリングしたプリムで、 セカンドライフ上で後で色が変更できるプリム作りに挑戦したいと思います! ほら、よく買った服とかで、ここの部分だけの色を変えれるとかありますよね。あれです! 模様はそのままついているのに、色だけ変えられるとか不思議ですよね。 前回の6つの面をそれぞれ別の色で設定するとどうなるかで […] Posted in セカンドライフ制作
  • セカンドライフの描画詳細度について 今日はセカンドライフのLoDの動作について、少し解明していきたいともいます。以前もLoDの話はしておりますが改めて説明します。 LoDとは、Level of […] Posted in セカンドライフ制作
  • セカンドライフでジャンプ台を作るセカンドライフでジャンプ台を作る はじめまして。 「セカンドライフ技術系 Advent Calendar […] Posted in セカンドライフ制作
  • セカンドライフのプリムの当たり判定の検証セカンドライフのプリムの当たり判定の検証 こんにちは! 昨日から引き続き、「セカンドライフ技術系 Advent Calendar […] Posted in セカンドライフ制作
  • セカンドライフのランドインパクトと標準プリムの話セカンドライフのランドインパクトと標準プリムの話 セカンドライフでは、土地でおけるプリム数が決まっています。 (詳しくは、セカンドライフの土地維持費を参照) 今回は、そのプリム数というのが、 どのような基準で決まるか、お話します。 まず単純にプリムとは、何なのかというと、 セカンドライフ上で作成できる「正方体」や「球体」などです。 これらは、1つ1つが、1プリムとなり、例えば512m2の土地では、117プリム=117個置 […] Posted in セカンドライフ制作
  • セカンドライフでメッシュに物理形状を設定しよう1セカンドライフでメッシュに物理形状を設定しよう1 メッシュでアップロードするときに、「実際の見た目」と「物理形状」を自由に選ぶことができます。 今回は、それらがどのような動きをするのか、少し調べたのでまとめたいと思います。 このような単純な物体を用意します。 赤色は「実際の見た目」として利用して、青色が「物理形状」として利用したいと思います。 画像を見るように、まずは、重なった立方体としています。 さて、これをアップロ […] Posted in セカンドライフ制作
  • セカンドライフのテクスチャの秘密(ノーマルマップ編)セカンドライフのテクスチャの秘密(ノーマルマップ編) はじめに こんにちは! 久しぶりのブログです。 今日は、セカンドライフのテクスチャ、ノーマルマップ  の秘密について話します。 続かないかもしれませんが、とりあえず第1弾です。 ノーマルマップの色成分の基礎 ノーマルマップといえば、平面の凹凸を現した画像です。 通常グレースケールで高さを表した画像から、このノーマルマップを作成します。 おそらく、少し詳しzい方はこの […] Posted in セカンドライフ制作
  • セカンドライフでプログラム1(書き方がC言語に似ているよ編)セカンドライフでプログラム1(書き方がC言語に似ているよ編) コンニチハ。 最近、セカンドライフやりだした。なたでです。 たぶん以前やったのが、 今から6年前の2008年5月の「ネトゲ日記-1」ですね。 で、なぜやりだしたかというと、 前々からVRに興味があるという話をしていたと思いますが、 次世代HMD?である話題もちきりの「Occlusion […] Posted in セカンドライフ制作
  • メタセコイア作品集1メタセコイア作品集1 買いましたといっても、先月買ったのですが、とても楽しいです。 値段も5400円とお得です。 無料の3Dモデリングソフトもあるのですが、 メタセコイアはユーザーインタフェースが分かりやすくてとっつきやすいです。 やっぱりインターフェースのデザインは大事です。 どんなに優れていても使いにくかったら意味がないのです。 2か月もあっというまにたちいろいろ作ったので、 作った物を紹 […] Posted in CG制作
  • Javaで3Dゲーム開発日記 part1Javaで3Dゲーム開発日記 part1 以前作ったこれは、とにかく3Dの表示にチャレンジということで拡張性がありませんでした。 ということで、今回は、物体を単位として色々設定できるオブジェクト、UV座標は0~1、 当たり判定、画像レンダリングを別スレッドへ、の4つを意識して再び作成。 モーションは、まだまだ敷居が高いので諦めます。(((っ・ω・)っ 「UV座標は0~1」というのは、以前は素の値(0-256と […] Posted in ゲーム制作