Mesh
SecondLifeへのメッシュインポートに関する話題。現在、メッシュはベータグリッドの限られたSIMのみ扱うことができる。下記規格は現段階でのもの1)であり、今後、大幅に変更される可能性もある。
SecondLifeのMesh規格
頂点数
1つのプリムに存在できる頂点数に上限はないとの噂。このことを試そうとししたところ、一定以上の頂点を持つメッシュアップロードの際にビュアが強制終了してしまい、未だ試せずにいる。そもそも、多くの頂点数を持つメッシュを作成しようとした場合、それなりのマシンパワーが要求されると同時にBlenderが不安定になる。また、インワールドにおいても、頂点数を増やすことでレンダリングコストに応じて複数プリムとしてカウントされるようになるらしい。1プリムのハイポリメッシュを置くだけで土地のプリム数を食いつぶしてしまうこともあり得る。これらのことから、「上限はない」とはいえ「無限」ではなく、頂点数を最適化することもクリエイターに求められる資質となりそうだ。当然、レンダリングコストをおさえたローポリが歓迎されるはずで、それをいかにテクスチャーで補完してみせるかという、これまで同様のテクスチャートリックが腕のみせどころとなりそう。
尚、頂点数・プリムカウント定数は、現在のベータグリッドでの負荷テストによって定められるらしい。
ポリゴン
SecondLifeのポリゴンは三角形ポリゴンであり、ローカルにおいてその他のポリゴンを作った場合は、アップロード時に自動で辺が追加され面が貼り直されることになる。エクスポート時には三角形ポリゴンを指定する方が良いのかもしれない。
また、SecondLife内では、テクスチャーを貼れるのはポリゴンの片面のみであり、裏はこれまでと同様に透き通ってレンダリングされる。
縫い目
メッシュには縫い目という概念がない。そのため、スカルプティッドプリムの作成時のように、縫い目を意識しなくて済む。逆に、開いた状態のメッシュを作成すれば、それはそのまま開いた状態でSecondLife上に現れるため、見る角度によっては意図に反して透明になってしまう2)。どの角度から見ても面が見えるようにするためには、ポリゴンの全表面に面を貼っておく必要がある。
また、複数の頂点を1つに集めてあたかもそこに頂点が存在しないように見せるトリック3)も必要ない。完全に分離した形状の1プリムのメッシュを作成することが可能。
大きさ
インワールドにおいて、メッシュ1つのバウンドボックスの1辺は最大64m。1プリムのメッシュで非常に大きなオブジェクトを作ることが可能。しかしながら、64mまで拡大できるメッシュオブジェクトにおいてもリンク可能距離は54mという制約は適用される模様。
面(マテリアル属性)
1オブジェクトあたり最大8つの面を持たせることができる。そのそれぞれの面ごとに色・テクスチャー・透明度・グロー・輝きなど、従来のプリムと同様、既存のパラメータを設定することができる。SecondLifeにアップロードした場合、Blenderオブジェクトのマテリアル境界がそのまま面の境界として認識される。
1つの面はつながっている必要がなく、飛び石状に同一面を配置することもできる。しかし、直方体プリムのように、辺に囲まれた部分がそのまま面として自動認識されるわけではなく、作成時にどこからどこまでが面なのかを指定しておく必要がある。
これらのことから考えると、「面」と呼ぶのはふさわしくないような気がする。「1オブジェクトあたり最大8つの面を持たせることができる」と表現すると、どうしても八面体を想像してしまう。それより「1オブジェクトあたり8つまで異なるマテリアル属性を持たせることができる」の方が混乱せずに済む気がする。
フォーマット
COLLADA1.4。ただし、アップロード時に不可逆変換されるため、一度アップロードしたものを再度ローカルにダウンロード、それをBlender等にインポートし編集するといったことはできない。また、スカルプティッドプリムのように、頂点座標をカラー情報に置き換えた画像データに変換するわけでもない。このことは、ひょっとするとコピーボット対策としても有効なのかもしれない4)。
このCOLLADA1.4形式のデータ内には、Blenderにてテクスチャーを作る際にUV展開した情報も含まれている。UV展開したテクスチャーを別の画像ソフトで編集し直し、それをSecondLifeにアップロードしオブジェクトに貼ると、Blenderで展開した通りにポリゴン上にテクスチャーが貼りつけられる。この際、複数面を一括してUV展開しておいても差し支えない。
衝突属性
メッシュ表面での当たり判定が可能。よって、建物としても使える。床や壁、階段などに凹凸を付けたり内部をくりぬいた形状にしたりと、その用途の応用性はスカルプティッドプリムの比ではない。先述の通り頂点数を増やした大きな1プリムのメッシュを作成することも可能だが、このことはオブジェクト単位の衝突判定を増やすことになり、物理負荷の増大を招くことにつながる。特に、複数階の建物を1プリムで作るような場合や、凹凸が複雑なオブジェクトにおいてはこの問題が顕著に現れることが想定される。通常プリムでの建築の際、完成後にリンク解除し負荷を軽減させるように、メッシュにおいても適度なサイズごとに切り分ける5)等同様の配慮が必要だろう。
リグ
アバターに装着する場合、アバターのボーンとメッシュを関連づけることができる。すなわち、アバターの体の動きに合わせてメッシュが変形する。メッシュを装着しておいて、アバターの表面に透明テクスチャーを貼り付けると、あたかもメッシュがアバターの体であるかのように見える。これによって、これまでシェイプの編集では表現できなかった形状のアバターをつくりだせる。ただし、相変わらずアバターの指は動かないという。
また、服飾分野においても、アバターの動きにフィットした服を1つのオブジェクトでつくることが可能になり、その表現力が大きく飛躍する可能性を秘めている。ただし、現段階ではメッシュにフレキシブル属性を持たせることや、アバター自体と装着オブジェクトの衝突判定ができないため、洋服の裾がアバターの動きや風にあわせてひらひら動くわけではなく、また、ポーズによっては服に矛盾が生じてしまうことになる。
LOD
描画距離により頂点の間引きが行われる。LODの低下を想定し、あらかじめ段階的に頂点数を減らしたローポリを複数準備。それらを描画距離により切り替えるといった指定も可能。
アップロード費用
検討中とのこと。レンダリングコストや物理コストに伴い従量制となるのか、それとも定額なのかが非常に気になるところ。