月別アーカイブ: 5月 2013

metaioとUnity3Dの連携その2 自由なARアプリを作る

標準

前記事はチュートリアルを実行しただけだが、新規に作成する場合をみていく

新しいUnity Projectを作成する

2013/5/28 Unity Version 4.1.3

Unityを起動し、新しいプロジェクトを作成する。

Assets>Import Package>Custom Package から、metaio SDKに含まれている、SDK_Unityフォルダ内のmetaioSDK.unitypackageを選び、インポートする。

unity-metaio02

ユーザレイヤーを追加する

レイヤーのドロップダウンからレイヤー編集を選ぶ。
使えるUserLayerを選択し、たとえばmetaioLayerと名前をつける。

unity-metaio03

Androidの場合

1)ビルド設定を変更し、アプリ名、アプリIDを決定する

File>Build Settings>Player Settingsで、

  • プロダクト名を決める~これが、アプリケーション名になる 例えば、MetaioUnity02など
  • カンパニイ名を決める~metaio.comなどを使ってはいけない。自分に関係ある名前にする。

レゾリューション&プレゼンテーションタブで

  • 好みはあるだろうが、デフォルト方向を Landscape Left にする

Other Settingsタブで

  • 最小限 API Level を 8 (Android 2.2 Froyo)にする
  • デバイスフィルタを ARMv7 onlyにする
  • グラフィックレベルを OpenGL ES 2.0にする
  • !ここが大事 バンドルアイデンティファイア すなわち、このアプリのID名を決める~アプリ名.個人名.会社名 など

2)metaioの開発者ポータルにログインし、署名記号を求める

上述のプロダクト名とバンドルアイデンティファイアを決めたら、一度、metaioのライセンスポータルにログインする。

unity-metaio04
①にプロダクト名(アプリケーション名)、②にとバンドルアイデンティファイアを入力して、③の追加ボタンをクリックする。すると、下段にアプリケーション署名(④)が得られるので、それをコピーしておく。

3)UnityのmetaioSDKのパラメータに署名を記入する

もう一度Unityに戻り、ARSceneというシーンを開く。
ヒエラルキーのmetaioSDKをクリックし、そのインスペクター(プロパティ)のところに、上で得られたサイン(Signature)をペーストする。

また、その下の欄、Tracking Dataのところには、tracking.xml を記入する。
unity-metaio05

4)デバイス(Android)を接続して、Build&Run

GLUE_1_2_5_6-MISC_2-metaioMan_01

この画像を見ると、3Dのメタイオマンが浮かび上がるはず。

新しいマーカを導入する

画像でもなんでも、すべて、最後に.bytesという名前をつけてから導入する。たとえば、tracking.xmlなら、tracking.xml.bytesに、またimage.pngならimage.png.bytesに変更してから、Resources/metaioフォルダに直接いれる。

metaioSDKのオプションとして、このトラッキングデータを設定するが、このときには、.bytesを除いた名前を記入する。

オブジェクトの追加は、metaioTrackerの子要素として

metaio Trackerを追加した場合は、COS ID (correspond ~一致する)を順番につけておく。

【参考】実行例

unity-metaio-kintaro

広告

metaio Unity3Dとの連携 その1 チュートリアルの実行

標準

https://dev.metaio.com/sdk/getting-started/installing-the-sdk/

からmetaio SDKをダウンロードしていない場合はまずそれを行う。

解凍すると、Android用、iOS用、Unity用のフォルダにわかれているので、ここではまず、Unityを試す。

sdk-ls

まず、チュートリアルを実行してみる。

Unity(Proでなくても動く)を起動したら、「Projectを開く」を選び、

meatio/metaio SDK/SDK_Unity/example

フォルダを選ぶ。

すべてのチュートリアルサンプルがUnityにインポートされるので、すぐに、File>Build Settingsを選択し、Windowマシンで操作しているなら、Android 出力に Platform スイッチする。

出力したい、AndroidマシンをUSBで接続し、Unityで そのままBuild & Runを選択する。

途中、Android SDKのフォルダの場所をきくダイアログが出るが、その都度 指定する。

unity-metaio01

あとは、つないだデバイスで自動的にプログラム(Unity)が始まり、メニューが開くので順に試していくことができる

<Androidスクリーンショット>

   20130528-180354 20130528-180457 20130528-180529 20130528-180907 20130528-180959

20130528-181116

metaio Toolboxによる立体トラッキングAR

標準

前記事でToolboxのところを飛ばしたので、今度はそちらを解説試み。

元ネタの参考サイトは、こちら http://dev.metaio.com/toolbox/

概観

metaio Toolboxは iOSベースのアプリケーションで、カメラまわりのテクスチャを3D認識する。

iPadやiPhoneなどをもっていたら(iOS5以上)、Appleストアからアプリをインストールできる。

Toolboxを使って、1.Instant Mapping と 2.Precise Mappingという、2つのタイプのマッピングをすることができ、metaio mobile SDKやmetaio Creatorで使うことができる。

1.インスタントマッピング

「インスタントマッピング」は、SLAM(スラム)※を元にしたトラッキング技術である。この機能は、metaio SDKには含まれているので、自分で実装することもできる。

※SLAM(スラム)とは、自己位置推定と環境地図作成を同時に行うことを言う。 正式名称は、Simultaneous Localization and Mapping

2.プリサイスマッピング

この手法では、現実に存在するオブジェクトを精密に計測し、その上にバーチャルなオブジェクトを同じスケールでオーバーラップすることができる。

これには、3枚のIDマーカを模型のまわりに設置し、相互の距離を計測することで実現している。デフォルトでは、80番、81番、82番のマーカ(15cm角)を順にタッチしていくことで出来る。

===

出来上がったマップはiTunesからダウンロード

iPadをiOSのマシンにつないだら、iTunesのappタブをクリックする。Toolboxをクリックすると、作成したマップ一覧が出てくるので、必要なマップをiOSマシンにダウンロードする。
そのとき、 .3dmap 識別子のものは、metaio SDKで使う。いっぱう、  .creator3dmap 識別子のものは、metaio Creatorで使う。

==

アプリ設定のオプション

iPadなどのアプリ設定を開くと、Toolboxアプリに対して、いくつかのオプション選択ができる。

1)Gravity-Aligned Feature Descriptors

デフォルトではオフになっている。垂直線が多いものをトラッキングするときには、オンにするとよい。

2)マップの最大サイズ

点の数が100,1000,5000,10000から選択できる。

3)スケール 大きさ

オブジェクトのだいたいのサイズを設定できる。小はカップサイズから大は建物サイズまで選択できる。

metaio Creator からmetaio Cloudへ 無料で簡単AR

標準

Version Up! (2013/07/21) Ver3.5.2(2014/10/15現在)

metaio Creator

  • Demoバージョンでは、2つのマーカー(トラッキングパターン)、1つのマーカに対して2つのARコンテンツのみアップロード可能。
  • また、チャンネルへのアクセスは、QRコードのみ。
    ダウンロードはこちらから MacバージョンとWindowバージョンがある (Mac版140MBぐらい。206.5MBの空き容量必要)。
  • ダウンロードには開発者登録(無料)が必要

metaio Cloud

  • 無料ライセンスでは、原則1アカウント当たり100MBまで利用可能で、metaio社のウォーターマーク(「metaio」のロゴ)が画面に入る。(サイト案内より)

=============

1.metaio Creator   のダウンロード

http://dev.metaio.com/creator/getting-started/

ページの右横に PC Demoへのリンクがある。それをクリックするとメールアドレスと名前登録のページに飛び、入力後、ダウンロードリンクが、メールで届く。(Windows バージョン 約135MB 2013/5/23現在Version 2.51→2013/7/21現在Version2.6→2014/7/14現在Version3.5.1)

creator01

2.metaio Creator   の起動

metaio Creator を起動すると下のようなアプリケーションが開く(PC版の例)

creator02

※バージョンが2.6になって、プレビュー機能がついた

3.metaio Creator   の使い方

左の+のアイコンをクリックすると、画面中央のようなポップアップウィンドウが開き、何をマーカにするか選択を促される。

一番左は、画像、真ん中と右側は、立体物や実際の部屋や外の空間をマーカにするものであるが、これら2つは、iPadやiPhoneアプリのmetaio ToolBoxを使って作成する必要があるらしいので、ひとまず、一番左の画像を選ぶ。

自分の写真をドラッグドロップしてもよい。サンプルフォルダから画像を選んでもよい。

creator03次に、右のウィンドウから、そのマーカをカメラがとらえたときに、何を表示するかを選択する。選択肢は多く、3DCG,画像、映像、サウンド、ボタン、ハイパリンクなどアイコンを見ればわかるようになっている。

ここでは、ハイパーリンクを選んでみた。(上図) 表示させる位置は、移動したり、回転できる。
上図に出ているような矢印アイコンをドラッグすると移動させることができるし、一度矢印アイコンをクリックすると、回転用のアイコンに変わる。

4.metaio Cloud  へのアップロード

セッティングが終了したら、右下の、Upload metaio Cloudに移る。

あらかじめ、metaioCloudのアカウントをとっておくか、ここで新しく作成する

creator04

これで、Createボタンを押すと、チャンネルの名前(必須)と説明、アイコン、metaioサーバ(Cloudのこと)に載せるかどうかを選ぶ。

creator05

Createボタンを押して、しばらく待つと、このチャンネル用のQRコードが作成される。

5.Junaio ARブラウザで出来上がりを確認する

1)Junaio ARブラウザがインストールされているモバイルを準備する。
※Junaio ARブラウザは、アンドロイド版もマック版もあるので、それぞれのストアからダウンロードインストールしておく(無料)

2)http://dev.junaio.comにログインして、My ChannnelのところにアップされているQRコードを用意する。

junaioQRLogo_179901

3)マーカとなる画像を準備する

ILoveAR今回は、サンプルに含まれていた上図を利用した。

Junaio ARブラウザを起動し、まず、チャンネル用のQRコードを読み取らせたあと、上図のマーカ画像を覗き、そのまましばらく待つと、このページに飛ぶはず。

おまけ)マーカイメージは上と同じだが、別のオブジェクトを表示してみた。

チャンネル用QRコード

junaioQRLogo_metaiocity

結果 (3DCGの読み込みに2分近くかかったが)

metaiocity

マーカの上にmetaioCityが立体的に表示された。

※metaio Creator Demoでは、一度に2つまでのコンテンツしかアップロードできない。

junaioQRLogo_metaiotiger

============

マーカーについて
http://dev.metaio.com/sdk/tracking-configuration/optical-tracking-technologies/id-marker/

1)IDマーカー

marker_sample
512通りの認識ができるようになっている。最近のモバイルでは、20〜30のマーカーを一度に認識できる。白黒パターンを避ければ、空いているスペースに画像を置いてもよい。
FASTモードとRobustモードがある。
FASTモードは素早く反応する。Robustモードは安定して反応する
それでもちらつきが多かった場合は、Smoothing Fuserを試してみるのもよい。

トラッキングに関するパラメータ

  • Tracking Quality  : robust か fast
  • ThresholdOffset スレショウルド オフセット:カメライメージを0~255のグレースケールを使って2値化するときの境界値 質がfastに設定されているときは変更できない 0〜255で設定
  • NumberOfSearchIterations 探索マーカの数:robust設定時のみ有効。あまり高く設定すると遅くなる

マーカーに関するパラメータ

  • Size サイズ:マーカのサイズ(mm単位)
  • MatrixID : マーカ区別用のID

2)ピクチャーマーカ

picture_marker_5_01IDマーカとマーカレスとの中間ぐらいに位置するマーカ。

持っているパラメータも1)とほとんど同じである。

違うのは、マーカに関してReferenceImageというパラメータを持っていること。ファイル名はトラッキング用XMLファイルがあるフォルダを起点に相対的に指定する。

イメージのサポートフォーマットは ppm,pgm,png,jpegである。

64×64ピクセルのサイズが望ましい。

3)LLAマーカ (緯度経度高度)

llamarker
IDマーカに似ているが、LLAマーカジェネレータで作ることができる

3)マーカレス

markerless

これにはトラッキングに関して2つの主なパラメータがある。widthMMとheightMMである。マーカの横幅と縦幅をセットする。複数のマーカを設定したいときは、TrackingData_MultiMarkerlessのヘルプを見ること

4)他に QRコードやバーコードを読み込むことができる

====

BlenderでGoldの輝きを

標準

参考動画

http://www.youtube.com/watch?v=RKj_Rc8UA7E

1.背景にカーブした平面をひき、3点照明をあてた場面を準備しておく

背景のカーブをどうしようかと思ったのですが、Shift-Aでベジェカーブを選び、それを変形してみます
curve01

編集モードに変更し(Tab)、線を一直線にするために、S-y-0 (Scale-Y方向-0ゼロ)
間に2点いれるため、w-subdivide 2点 左端の点(図の①)を―y方向に5ぐらい移動。残り3点(図の②③④)を+y方向に5ぐらい移動

curve02③④の点を右からみて、-90°回転する(右からのウィンドウで、R- -90)

右からみて、カーブがきれいな背景用の線を描くように縦(z)方向に移動(下図)

curve03

オブジェクトモードに戻り(tab)、Ctrl-Cを押してカーブをメッシュに変換する。
再び、編集モードに入り(tab)、全部を選択して(A)、E(引き伸ばし)で、x方向に延ばす。
でこぼこが気になるようなら、Smoothをかける(背景なのでだいたいでよい)
curve04オブジェクトモードに戻り、照明をスポットライトに変え、キーライト、フィルライト、バックライトの3点配置する(説明略)

2.リングの形をつくる

Shift-Cで3Dカーソルを中央に戻し、Shift-Aでサークルを追加。
EditモードでE(Extrude引き伸ばし)、Sで縮小する。その全体を選び直し(A)、EでZ方向に引き延ばす(これがリングの原型)

curve05リングらしくするために、内側をループカット(Ctrl-R)して上側寄せ1本、下側もう1本。また外側もループカットして少しふくらます

curve06Subdivision Surface モディファイアをかけ、3まで数値をあげる。全体にSmoothをかける。
テストレンダリングしたものが下図。

curve07

3.リングにGoldマテリアルを追加する。

3-1)マテリアルNewで新しくマテリアルを設定する(名前をGoldとしておこう)
Diffuseの色はだいたいコーンブラウンあたり(R 0.78,G 0.52,B 0.13ぐらい?)にし、シェイダーをLambertからオーレンネイヤーに変更。
Intensity(強さ)を1.00にする。

curve08Specularのパネルでは、強さ(Intensity)を0.65近くまであげ、Hardnessの数値を90にする。シェイダーもPhong(フォン)を選択。

Mirrorを使うということでチェックをいれ、鏡面反射(reflectivity)を0.65程度まであげ、色は、黄色(R 1.0,G 0.67, B 0.17ぐらい)に設定する

ここまでのテストレンダリングが下図。

curve11

3-2)金属反射用テクスチャを設定する(ハイダイナミックレンジイメージHDRI)

あらかじめ、Google検索などで、フリーのHDRIイメージをダウンロードして準備しておく(たぶん、ここがポイント)
新しいテクスチャを設定し、その画像を(ImageorMovie)として読み込む

ひとまず、こちらを使わせてもらいました。
imagesMappingタブを、GenerateからReflection(鏡面反射)に変更し、プロジェクションも、Flat(平面)から、この形に合った、Sphere(球)かTubeに変更する(ここでは、Sphereを選択)
また、ExtensionをClipに変える

Influence(影響)タブでは、Colorのチェックをはずし、Mirrorをチェックするが、その強さは0.3ぐらいにする
curve124.Worldにも反射を設定する
World設定プロパティで、アンビエントオックルージョンを有効にし、その数値は0.5ぐらいにする。
サンプル数は7か8にあげる
curve13ワールドリフレクションを設定するため、そのまま新規テクスチャパネルを選ぶ。

curve14

NewでImageまたは動画というのを選び(たとえば名前は、World Reflectionとしておく)、リングに適用したのと同じ環境光マップ(HDRI)を選ぶ。
Mappingタブでは、AngMapを選び、一番下のInfluenceタブでは、Blendのチェックをはずし、Horizontal(水平)をチェックする

これで、美しいレンダリングが出来上がるはずだが、効果がないようなら、リングのマテリアルで、Subsurface Scatteringにチェックをいれてみるとよい。

下がモンキーも加えてのレンダリング結果

curve15解説終了

元の色やHDRIイメージを変えると、シルバーにも出来そうです

curve16