3Dオブジェクトの作成方法

PCで位置情報と一緒に投稿した写真や3D画像は、 Android携帯・iPhoneでLayarをダウンロードすることで、 表示させたり、人と一緒に記念撮影することができます。 また、撮影した画像をメールで家族や友人に送ることもできます。

ここでは、投稿する3D画像を作成する方法を説明しています。

Layarとは

はじめに

Layar3Dのサンプル

2009年9月

Layar は ARプラットフォームの今後の可能性としてLayar3D を世界に紹介しました。

2009年12月

すべての開発者にLayar3Dを公開しました。

このチュートリアルでは、Layar開発者が学んだ事を公開したものです。 Layar3Dを活用する上で参考になるでしょう。


対象となるLayar

以下のLayarで表示するLayar3Dオブジェクトを対象としています。
iPhone
iPhone OS 3.1.3
Layar version 3.0.3
Android
全機種

必要なソフトウェア

モデリングツール

Wavefrontフォーマット(.obj/.mtl)を出力またはエクスポート可能な3DCGソフトウェアをご用意下さい。

いくつかのモデリングツールをここで紹介します。

Blender (www.blender.org)

長所
フリーのオープンソースツール。 プロ仕様のクオリティがあり、.obj/.mtl出力が可能。
短所
習得が難しい。

Google Sketchup (sketchup.google.com)

長所
使いやすいフリーのバージョンが入手可能。多くの3Dモデルライブラリを入手することができます。
Google Sketchup 3Dモデルギャラリー
短所
.obj/.mtl出力はプロバージョン($345)のみ対応。 ノーマルバージョンはモデル編集のコントロールが少ない。

Autodesk 3ds Max (www.autodesk.com)

長所
プロ仕様のツール。多くのチュートリアルが入手可能。多くの3Dモデラーが利用している。
短所
.obj/.mtl出力対応している3Dモデリングツールとしては高価。

その他、.obj/.mtl出力対応しているモデリングツール

3Dモデリングツール Blender

このチュートリアルではモデリングツールの詳細な使い方を示します。 チュートリアルについては様々なリソースがインターネットから入手可能です。

このチュートリアルでは Blender についての作例を取り上げます。

Wavefront (.obj) 形式へのエクスポート

Blender
オプション

.obj フォーマットは座標系が異なるので、「X90」を選択してください。
設定した法線を適用する場合は「Normals」を選択してください。
モデルの複数のマテリアルはマテリアルグループで最適化してください。
すべてのテクスチャファイルを .obj/.mtl と同じフォルダにコピーしてください。

Layar3Dオブジェクトへの変換ツール

Layar3Dオブジェクト変換ツール

以下のURLからダウンロードして下さい。
http://site.layar.com/downloads/Layar3DModelConverter.jnlp

Layar3Dオブジェクト変換ツールのバージョン

このチュートリアルでは、以下のバージョンの変換ツールを利用しています。
Layar3D Model Converter Version 1.5.2

OS及びJavaのバージョン

JRE 1.5 以上
または
JDK 1.5 以上
上記Javaが動作するOS

以下のOSとJavaで動作確認しています。
Windows XP jre 1.6.0
Windows 7 jre 1.6.0

3Dモデリング

用語

座標系

座標系

Layarでは現実の空間を以下のような座標系として考えます。

X
西から東
Y
南から北
Z
地面から空

頂点  :  3D空間上の点

それぞれのモデルは3D座標系に頂点を持っています。
例えば、立方体には8つの頂点があり、それぞれが立方体の角となります。

面  :  「ポリゴン」と呼ばれる3つ(またはそれ以上)の頂点を結んだ空間

面は3Dモデルが見えるための要素です。
例えば、立方体には6つの面が含まれています。

基本

基本

法線ベクトルは面の向きを示しています。
面は表の面だけがレンダリングされます。
面はシェーディングの効果に影響します。
モデルに面が見えないような場合、面の頂点の順番が原因かもしれません。
*頂点が時計回り順の面が正面です


マテリアル(素材)

マテリアル

デフューズカラー

マテリアルに光が当たった際に反射する、マテリアルの色。

アンビエントカラー

環境光の色。

スペキュラーカラー

モデルのハイライトとなる色。(基本的には白)

シャインネス

シャインネスのレベルはハイライトの大きさ(広さ)に影響します。
レベルが高いとシャインネスはより小さいハイライトになり、レベルが低いとより広いハイライトになります。


テクスチャマッピング

モデルにイメージをテクスチャとして加え、細部を再現できます。
Layar はデフューズカラーテクスチャだけ対応しています。 現在、バンプマップと法線マップは無視されます。
面のマッピングを設定する為にUVマップを用います。

テクスチャサイズ(幅、高さ)

テクスチャは、最も近い2の階乗のサイズに変更されます。 (128x128, 256x256, 512x128 等)
適正なクオリティを保つために、正しいフォーマットでテクスチャを作成してください。

テクスチャイメージサイズ

テスクチャのイメージサイズはできるだけ小さくしてください。 大きなイメージは多くの帯域幅を必要とするので、クライアントのパフォーマンスに影響します。
イメージデータはpngまたはjpgのみサポートしています。

透過テクスチャ

透過テクスチャはサポートしますが、テクスチャ ブレンディングはサポートしないことに注意してください。
これは、部分的な透過(アルファ値が0.1以上)において、それらの後ろの物が表示されないことを意味します。

Tips

ハードウェア制限

Layarは携帯電話で動作するため、その3D表示能力に限界があります。 データを素早くロードしスムーズに動作させるために、3Dモデルはシンプルに作ってください。

ポリゴン数
最大5000ポリゴン(三角形ポリゴン換算)
テクスチャ
携帯電話の小さな画面(480x320pixel)に表示される事を考慮します。 テクスチャはできるだけ小さくし、JPEG/PNG 圧縮を行ってください。
ファイルサイズ
携帯電話はデータ転送速度に限界があります。 長い時間、表示待ちさせないために、モデルファイルは小さくするように心がけます。

Layarは各モデルに2つの詳細さのレベルと、アイコンの表示をサポートします。
3Dモデルが大きい場合は、よりシンプルなモデルも作成するか、 または、モデルをレンダリングしたアイコンを作成してください。

テクスチャマッピング

テクスチャを適用することによって、モデルを複雑にすることなくディテールをアップさせることができます。 パフォーマンスを挙げるために、使用するイメージを減らし、 ファイルを結合し一つのテクスチャファイルにします。 この技術はUVマッピングと呼ばれます。

多くのデリングツールはモデルをポリゴンごとに切り開く機能があり、その平らになったものに模様を付けることができます。

3Dモデリング

透明度

Layar はアルファブレンディングによるパフォーマンスの問題から、OpenGLによる透明度には対応していません。
透明度はテクスチャでサポートします。
アルファ値が0.1以下の場合は全く表示されず、その後ろにあるオブジェクトも見ることができます。 半透明のカラー値(0.1~1.0)ではカメラビューのイメージとのブレンドになってしまい、その後ろにあるモデルについては表示されません。

透明度

半透明の部分は、後ろにあるモデルではなくカメライメージが表示されます。

透過テクスチャ

透明な部分があるテクスチャを使用することで、3Dモデルに透明な部分を加えることができます。 それにより、3Dモデルを複雑にすることなくディテールを加えることができます。

透過テクスチャ

建物の正面には、透明な部分が含まれる一枚のテクスチャを使用しています。

Layar では、これら透明な部分はモデルの後ろを表示するためにも利用されます。

その他の3Dモデルの条件

NURBSサーフェス

NURBSサーフェスには対応していません。
NURBSサーフェスを利用している場合は、3DCGソフトウェアでNURBSサーフェスをポリゴン サーフェスに変換してください。

三角形ポリゴン

モデルは、三角形のポリゴンだけで構成してください。四角形または多角形は三角形に変換してください。

座標単位

モデルの座標単位は1メートルにしてください。

透明度

現時点で、透過は対応していません。アルファ値を指定しても透過しません。RGB値のみを利用しています。

モデルコンバーター

Layar は 3D モデルに Layar3D (.l3d) ファイルフォーマットを使用します。 Layar3D フォーマットは Wavefront (.obj) をベースとしていますが、携帯電話でも処理できるように最適な表示を行います。 Layar3D Model Converter を用いて、Wavefront(.obj)へのファイル変換が可能です。

Layar3Dオブジェクト変換ツールの起動

Layar3Dオブジェクト変換ツールのダウンロード

以下のURLからツールをダウンロードしてファイルを保存します。
モデルコンバータの最新版

Latar3DModelConverter.jnlpの起動

ダウンロードしたファイルを開きます。

ダウンロードしたLayar3DModelConverter.jnlpを開きます。
ダウンロードしたLayar3DModelConverter.jnlpを開きます。

アプリケーションのダウンロード
初めて利用する場合には、アプリケーションをダウンロードするため、この画面が表示されます。ダウンロードが完了するまでお待ちください。

アプリケーションの実行の確認
ダウンロードが完了すると、この画面が表示されます。「実行」ボタンをクリックして起動します。

アプリケーション画面
Layar3DModelConverterが起動しました。

Wavafrontファイルのインポート

モデルは通常複数のファイルから成ります。
.obj
モデルの面と頂点の情報が含まれる。
.mtl
マテリアル情報とテクスチャファイルの情報が含まれる。
.png/.jpg
テクスチャファイル

ファイルが参照できない場合、モデルコンバーターはエラーメッセージを表示します。

Wavefrontファイルの選択方法

メニュー「File」-「Import Wavefront (.obj/.mtl)」を選択し、Wavefrontファイルを選択して3Dデータをインポートします。

インポート
メニュー「File」-「Import Wavefront(.obj/.mtl)」

objファイルの選択
objファイルを選択し、「開く」をクリックします。
※objファイルに対応するmtlファイルは、objファイルと同じフォルダーに置いてください。

3Dデータの確認

インポートした3Dデータを表示して確認します。以下の3種類の表示方法があります。

オーバービュー表示

Overviewタブでは、頂点数、ポリゴン数、マテリアル数を含む詳細情報が確認できます。
オーバービュー表示

マテリアル表示

Materialsタブでは、マテリアルとテクスチャが確認できます。また、色と輝度を編集することができます。
マテリアル表示

プレビュー表示

Previewタブでは、Layarでどのように見えるか確認します。別の距離や角度からモデルを表示することができます。
プレビュー表示

3Dデータの編集

Editメニューに3Dデータを編集する機能があります。
Editメニュー

Drop normals
その頂点を含む面の法線の平均を計算し、頂点をスムーズに表示します。
Calculate face normals
面の法線に従って表示します。これは角がそのまま表示されます。
Flip Faces
頂点の順番を変更し、面の表裏を変更します。
Optimize materials
マテリアル順で面を整理し最適化します。これはレンダリング速度を改善します。
Rotate
X軸方向に90度または-90度回線します。
Scale
指定した値でモデルの大きさを変更します。

Layar3D形式での保存

満足のできるモデルとなったら .l3dフォーマットでデータをセーブします。

データの保存

保存した .l3dファイルにはすべてのテクスチャとマテリアルが含まれています。

保存フォーマットとファイル名の入力

ファイル名の入力
ファイル名を入力して「保存」ボタンをクリックします。 ファイルタイプはそのままにしてください。

データの配置

詳細のレベル

3Dモデルのサイズが大きい場合、より少ないポリゴンと精度を下げたテクスチャで作られたバージョンを用意してください。
アイコンは3Dモデルをレンダリングしたイメージを使用することで、ユーザーは何が読み込まれたか解りやすくなります。

データの変形

「回転」パラメータはZ軸(右手座標系)回りにモデルを回転させるのに使用します。
「画像の向き」パラメータに「ユーザの向きに合わせて表示する」を設定することで、相対的な角度の設定が可能です。 これはモデルが常にユーザーに向いている事になります。

データの設置

データが現実世界の正確な位置に置かれたときに、最大の効果が発揮されます。
オブジェクトの緯度と経度は、モデルの座標系が基準となります。
モデルの角度と大きさが完全に合うように調節してください。

Google Earth

Google Earth
最初のオブジェクトの配置には、Google Earth の使用を推奨します。

オブジェクトを配置する緯度経度得るために、その場所に目印を作成してください。
設置に望ましい場所であるかを判断するために、「ruler tool」を使用してください。
表示イメージから回転角度を決めてください。

ガイドライン

遅いレンダリングエンジンのガイドライン

携帯電話のようなハードウェアのレンダリングエンジンで動作させるためのガイドラインを記述します。

  • できるだけ簡単ななモデルと、小さなテクスチャを利用してオブジェクトを作成する必要があります。
  • 画面が小さいため細かなオブジェクトは細部までは表示できません。またオブジェクトの分だけデータ表示に時間がかかります。
  • 320×480の画面では、テクスチャは1024×1024までは必要ありません。
  • ビューアで表示したときに見えないポリゴンは削除してください。
  • ポリゴンの増加に比例して、モデルの表示時間がかかることを考慮しながら作業を行ってください。
  • 座標系の中心にオブジェクトを置いてください。また、エクスポートする時にその情報を含めてください。
  • .objファイルをエクスポート可能な3DCGソフトウェアをお使いください。

オブジェクト作成のガイドライン

  • 窓、ドア、屋根などの細かな部分はモデルでは作成せず、テクスチャで再現してください。
  • マルチテクスチャは追加できますが、できる限り一つにまとめるようにしてください。
    周りから浮いた頂点は作成せず、全く同じ場所にモデルを配置したり、ポリゴン同士がお互いに重ならないようにしてください。
  • 例えば煙突のような物を追加する場合、既存のモデル(屋根)から押し出しを行い、モデルを追加しないようにしてください。
  • 初めに大まかな形状を作成し、徐々に詳細部分を造り込んでください。
  • 大きなモデルがある場合は、長い時間待つ必要がないように、簡単なバージョンを作成してください。
  • NGONS(5座標以上のフェイス)がある場合は、四角形に接続してください。

テクスチャ作成のガイドライン

  • テスクチャ サイズは常に2の階乗にしてください。64x64、128x128、等。
  • UVWマッピングを使用してテクスチャを作成してください。
  • 高解像度のテクスチャからテストし、徐々に解像度を下げて、詳細まで正しく表示される最小のサイズにしてください。
  • 画像フォーマットは、JPEGとPNGが利用可能です。透過テクスチャを利用する時はPNGを利用してください。
  • 透明度の設定は可能ですが、0%を超える透明度は正確ではありません。0%を超える場合、透過部分の奥の他のオブジェクトが表示されません。
  • アンビエント オクルージョン マップは利用しないでください。
  • マルチサブはL3Dコンバータが認識しません。
  • 標準マテリアル ライブラリは利用しないでください。
  • 3DCGソフトウェアのシェーディングはL3Dコンバータが無視します。