日本全国に自分で作ったキャラクターや自分で撮影した写真を投稿しよう!!
IT版顔だし記念撮影パネルも作れます!
PCで位置情報と一緒に投稿した写真や3D画像は、 Android携帯・iPhoneでLayarをダウンロードすることで、 表示させたり、人と一緒に記念撮影することができます。 また、撮影した画像をメールで家族や友人に送ることもできます。
ここでは、投稿する3D画像を作成する方法を説明しています。
2009年9月
Layar は ARプラットフォームの今後の可能性としてLayar3D を世界に紹介しました。
2009年12月
すべての開発者にLayar3Dを公開しました。
このチュートリアルでは、Layar開発者が学んだ事を公開したものです。 Layar3Dを活用する上で参考になるでしょう。
Wavefrontフォーマット(.obj/.mtl)を出力またはエクスポート可能な3DCGソフトウェアをご用意下さい。
いくつかのモデリングツールをここで紹介します。
このチュートリアルではモデリングツールの詳細な使い方を示します。 チュートリアルについては様々なリソースがインターネットから入手可能です。
このチュートリアルでは Blender についての作例を取り上げます。

.obj フォーマットは座標系が異なるので、「X90」を選択してください。
設定した法線を適用する場合は「Normals」を選択してください。
モデルの複数のマテリアルはマテリアルグループで最適化してください。
すべてのテクスチャファイルを .obj/.mtl と同じフォルダにコピーしてください。
以下のURLからダウンロードして下さい。
http://site.layar.com/downloads/Layar3DModelConverter.jnlp
このチュートリアルでは、以下のバージョンの変換ツールを利用しています。
Layar3D Model Converter Version 1.5.2
JRE 1.5 以上
または
JDK 1.5 以上
上記Javaが動作するOS
以下のOSとJavaで動作確認しています。
Windows XP jre 1.6.0
Windows 7 jre 1.6.0
Layarでは現実の空間を以下のような座標系として考えます。
それぞれのモデルは3D座標系に頂点を持っています。
例えば、立方体には8つの頂点があり、それぞれが立方体の角となります。
面は3Dモデルが見えるための要素です。
例えば、立方体には6つの面が含まれています。
法線ベクトルは面の向きを示しています。
面は表の面だけがレンダリングされます。
面はシェーディングの効果に影響します。
モデルに面が見えないような場合、面の頂点の順番が原因かもしれません。
*頂点が時計回り順の面が正面です
マテリアルに光が当たった際に反射する、マテリアルの色。
環境光の色。
モデルのハイライトとなる色。(基本的には白)
シャインネスのレベルはハイライトの大きさ(広さ)に影響します。
レベルが高いとシャインネスはより小さいハイライトになり、レベルが低いとより広いハイライトになります。
モデルにイメージをテクスチャとして加え、細部を再現できます。
Layar はデフューズカラーテクスチャだけ対応しています。
現在、バンプマップと法線マップは無視されます。
面のマッピングを設定する為にUVマップを用います。
テクスチャは、最も近い2の階乗のサイズに変更されます。
(128x128, 256x256, 512x128 等)
適正なクオリティを保つために、正しいフォーマットでテクスチャを作成してください。
テスクチャのイメージサイズはできるだけ小さくしてください。
大きなイメージは多くの帯域幅を必要とするので、クライアントのパフォーマンスに影響します。
イメージデータはpngまたはjpgのみサポートしています。
透過テクスチャはサポートしますが、テクスチャ ブレンディングはサポートしないことに注意してください。
これは、部分的な透過(アルファ値が0.1以上)において、それらの後ろの物が表示されないことを意味します。
Layarは携帯電話で動作するため、その3D表示能力に限界があります。 データを素早くロードしスムーズに動作させるために、3Dモデルはシンプルに作ってください。
Layarは各モデルに2つの詳細さのレベルと、アイコンの表示をサポートします。
3Dモデルが大きい場合は、よりシンプルなモデルも作成するか、
または、モデルをレンダリングしたアイコンを作成してください。
テクスチャを適用することによって、モデルを複雑にすることなくディテールをアップさせることができます。 パフォーマンスを挙げるために、使用するイメージを減らし、 ファイルを結合し一つのテクスチャファイルにします。 この技術はUVマッピングと呼ばれます。
多くのデリングツールはモデルをポリゴンごとに切り開く機能があり、その平らになったものに模様を付けることができます。

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

半透明の部分は、後ろにあるモデルではなくカメライメージが表示されます。
透明な部分があるテクスチャを使用することで、3Dモデルに透明な部分を加えることができます。 それにより、3Dモデルを複雑にすることなくディテールを加えることができます。

建物の正面には、透明な部分が含まれる一枚のテクスチャを使用しています。
Layar では、これら透明な部分はモデルの後ろを表示するためにも利用されます。
NURBSサーフェスには対応していません。
NURBSサーフェスを利用している場合は、3DCGソフトウェアでNURBSサーフェスをポリゴン サーフェスに変換してください。
モデルは、三角形のポリゴンだけで構成してください。四角形または多角形は三角形に変換してください。
モデルの座標単位は1メートルにしてください。
現時点で、透過は対応していません。アルファ値を指定しても透過しません。RGB値のみを利用しています。
以下のURLからツールをダウンロードしてファイルを保存します。
モデルコンバータの最新版
ダウンロードしたファイルを開きます。

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

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

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

Layar3DModelConverterが起動しました。
ファイルが参照できない場合、モデルコンバーターはエラーメッセージを表示します。
メニュー「File」-「Import Wavefront (.obj/.mtl)」を選択し、Wavefrontファイルを選択して3Dデータをインポートします。

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

objファイルを選択し、「開く」をクリックします。
※objファイルに対応するmtlファイルは、objファイルと同じフォルダーに置いてください。
インポートした3Dデータを表示して確認します。以下の3種類の表示方法があります。
Overviewタブでは、頂点数、ポリゴン数、マテリアル数を含む詳細情報が確認できます。

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

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

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

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

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

ファイル名を入力して「保存」ボタンをクリックします。
ファイルタイプはそのままにしてください。
3Dモデルのサイズが大きい場合、より少ないポリゴンと精度を下げたテクスチャで作られたバージョンを用意してください。
アイコンは3Dモデルをレンダリングしたイメージを使用することで、ユーザーは何が読み込まれたか解りやすくなります。
「回転」パラメータはZ軸(右手座標系)回りにモデルを回転させるのに使用します。
「画像の向き」パラメータに「ユーザの向きに合わせて表示する」を設定することで、相対的な角度の設定が可能です。
これはモデルが常にユーザーに向いている事になります。
データが現実世界の正確な位置に置かれたときに、最大の効果が発揮されます。
オブジェクトの緯度と経度は、モデルの座標系が基準となります。
モデルの角度と大きさが完全に合うように調節してください。

最初のオブジェクトの配置には、Google Earth の使用を推奨します。
オブジェクトを配置する緯度経度得るために、その場所に目印を作成してください。
設置に望ましい場所であるかを判断するために、「ruler tool」を使用してください。
表示イメージから回転角度を決めてください。
携帯電話のようなハードウェアのレンダリングエンジンで動作させるためのガイドラインを記述します。