読者です 読者をやめる 読者になる 読者になる

littlewing

人間とコンピューターとメディアの接点をデザインするために考えたこと

Google TangoのUnity開発環境を整える(Lenovo Phab 2 Pro)

tango センシング/NUI unity

https://pbs.twimg.com/media/Cz4_KPeUQAA98xi.jpg:large

Lenovo Phab 2 Proを手に入れたので、Tango機能を触ってみました。

書きかけなので、随時更新すると思います。

Tangoでできること(3つのコアテクノロジー)

  • Motion tracking
    • デバイスをもって移動すると、デバイスがその動きを理解できる。
  • Depth Perception
    • 物体、空間の距離、奥行きを把握できる
  • Area Learning
    • 空間を認識し、後で照合できる。

Google’s Project Tango、一度見た空間を記憶し後で見ても同じだと認識できるコア技術「Area Learning(エリア ラーニング)」とは | Seamless

Tango 開発リソース

タイトル リンク
Tango開発者向けサイト Google DevelopersのTango開発者向けページ
githubのtango-examples-unity サンプルコードなど、TangoのUnitySDKのソースもここでメンテされています
TangoのYouTube公式チャンネル 技術の紹介や開発方法などの動画
公開されているTangoアプリ一覧 何ができそうかなんとなくわかるはず

TangoのUnitySDKを試す。

1.環境構築

Androidアプリの通常の開発環境が整っていれば、TangoのUnitySDKを除けば必要なものはありません。

  • Unity 5以上
  • Java SE Development Kit 8(JDK)
  • AndroidSDK(AndroidStudio)
  • UnityのAndroid用ビルドパッケージ (Build SettingsでAndroidを選んだ際に必要であればインストールされます。)
  • TangoのUnitySDK

2.TangoのUnitySDKのインポート

以下のサイトにてTangoのUnity向けのSDKが配布されています。

TangoSDK_Biyelgee_Unity5.unitypackageをダウンロードして、新規のUnityプロジェクトにインポートすると実機で以下のサンプルシーンが実行可能になっています。(Assets/TangoSDK/Examples/Scenes)

サンプルシーン名称 内容
AreaDescriptionManagement 未確認
AreaLearning 空間認識
DetectTangoCore TangoAPIがその端末で利用可能かをOK/NGで返すだけ
MotionTracking 未確認
PointCloud 奥行きなどをポイントクラウドで描画
PointToPoint 空間上の2点をタッチすることで長さが測れる
SimpleAugmentedReality ARカメラ機能。SLAMでマーカーレスで、地球と周回する月を空間上に配置できる。

3.プロジェクトの調整

各サンプルシーンはアプリ内で切り替え表示ができるようになっているので(SceneSwitcher)、Scenes in buildにまとめて登録しておくと動作確認が楽です。

f:id:pigshape:20161218212547p:plain

PlayerSettingsも特筆すべき調整はしなくても、良さそうです。 Virtual Reality Supportにチェックを入れる必要もありません。

4. サンプルの文字サイズを調整する

実行してみるとわかるのですが標準状態ではPhab 2 Proでは解像度が高すぎるため、シーン切り替えなどのボタンが押しにくいです。

そのため、ソースコードを少し修正します。

  • SceneSwitcher.csの変更箇所
    private const int SCENE_BUTTON_SIZE_X = 500;  //29行目:300から変更 
    private const int SCENE_BUTTON_SIZE_Y = 120; //30行目:60から変更

   if (GUI.Button(buttonRect, "<size=40    >" ....  //60行目:size=20から変更
  • 随時追記します。