TangoSDKで簡単なサンプルを作ってみる(Phab2Pro)

日本でもPhab2Proが発売されたのでメモ

1.TangoSDKを入手

公式サイトからUnity向けパッケージ(TangoSDK_Argentine_Tango_Unity5.unitypackage)をダウンロードする

2.Unityにインポート

「Google-Unity」「Plugins」「TangoPrefabs」「TangoSDK」の4つのフォルダが生成される
00021

3.TangoSDKのPrefabを追加

HierarchyにTangoPrefabs以下の「Tango Manager」と「Tango Simple Camera」を追加する
00022

4.表示するオブジェクトを追加

適当に表示するオブジェクトを追加する(ここではユニティちゃん)
Positionの数値が実空間でのメートルに換算されるので、カメラが(0,0,0)に配置されているなら、(0.5,0,0)辺りに設置することで50cm先に表示される
カメラが(0,0,0)だと目の前に足が表示されてしまうので顔の正面になるように高さを調節した
00023

5.BuildSettingの設定

PlatformをAndroidに変更し、PlayerSettingsで以下の部分を変更する

  • Resolution and PresentationのDefault Orientatiionを「Landscape Left」に変更
  • Other SettingsのMinimum API Levelを「Android 4.2」以上に変更
  • その他はAndroidアプリを作るときと同じでBundle Identifier等を設定
  • 6.ビルド

    後はビルドして端末で実行するだけ!
    00024

    これだとVRっぽいけど、カメラを「Tango AR Camera」に変更して、「Tango Manager」の設定を変更すれば、背面カメラの映像にモデルが描画されるようになるのでよりARっぽくなる

    カメラを動かした際に表示される青いラインはカメラのモーショントラッキングの軌跡
    非表示にするにはカメラ以下に存在している「Trail Renderer」を非アクティブにすればOK

    後はTangoSDK内のサンプルをいろいろ試してみよう

    3Dモデルビューワみたいなモノを実装する(スマホ向け)

    スワイプでオブジェクトを中心に回転する処理を実装する(スマホ向け)
    2本指スワイプでカメラを並行移動する処理を実装する(スマホ向け)
    ピンチイン/ピンチアウトでモデルを拡大/縮小する処理を実装する(スマホ向け)
    をまとめて、3Dモデルビューワのような機能をを実装する

    1.各オブジェクトの配置

    表示して眺めたい3Dオブジェクトを配置する。
    次に空のゲームオブジェクトを生成し、そのオブジェクトを先に配置したオブジェクトの中心に配置する。
    その下にMainCameraを配置する。位置は3Dモデルから少し離れた位置に。

    スクリプトをアタッチ

    空のゲームオブジェクトに以下のスクリプトをアタッチする

    画面をタッチしている指の本数で回転、移動、拡大の切り分けをしている
    2本指の場合は移動か拡大かを判別する必要があるので、2本の指が同じ方向に移動している場合は移動、異なる方向に移動している場合は拡大、と判別して処理を分けている
    また、2本指から1本になった際に回転が飛ばないように初期化するようにしている

    これでビューワっぽい操作ができる機能が実装出来たはず

    ピンチイン/ピンチアウトでモデルを拡大/縮小する処理を実装する(スマホ向け)

    スワイプでオブジェクトを中心に回転する処理を実装する(スマホ向け)
    2本指スワイプでカメラを並行移動する処理を実装する(スマホ向け)の続き

    ピンチイン/ピンチアウトで表示しているモデルを拡大/縮小表示する処理を実装する

    前回同様にオブジェクトを配置後、空オブジェクトに以下のスクリプトをアタッチする

    2本の指の距離を前フレームのものと比較して、その差分に応じてカメラを前後に移動させることで拡大/縮小しているように見せている

    この処理などを合わせてビューワっぽく実装したのがこちら

    スワイプでオブジェクトを中心に回転する処理を実装する(スマホ向け)

    3Dモデルをスワイプで回転させられるような機能を実装する

    1.各オブジェクトの配置

    表示して眺めたい3Dオブジェクトを配置する。
    次に空のゲームオブジェクトを生成し、そのオブジェクトを先に配置したオブジェクトの中心に配置する。
    その下にMainCameraを配置する。位置は3Dモデルから少し離れた位置に。

    2.回転スクリプトをアタッチ

    空のゲームオブジェクトに以下のスクリプトをアタッチする。

    メインカメラの親となる空のゲームオブジェクトを回転させる事で、モデルの周りをメインカメラが回転するという方法。

    この処理などを合わせてビューワっぽく実装したのがこちら

    2本指スワイプでカメラを並行移動する処理を実装する(スマホ向け)

    スワイプでオブジェクトを中心に回転する処理を実装する(スマホ向け)の続き

    2本指でスワイプした時にカメラを並行移動させる処理を実装する

    スワイプでオブジェクトを中心に回転する処理を実装する(スマホ向け)と同じようにオブジェクトを配置した後、MainCameraの親オブジェクトに以下のスクリプトをアタッチする

    2本の指でタッチされている状態でスワイプした場合、カメラを移動させる事でモデルが平行移動しているように見せている

    この処理などを合わせてビューワっぽく実装したのがこちら