GET AR

世界を変えるARニュースメディア

【入門編】Google Tango対応スマホで拡張現実(AR)アプリを作ってみた #1

 44436

Google Tangoアプリ 入門

2016年12月、日本でもGoogleの空間認識技術Tangoに対応したファブレット、Phab 2 Proが発売となった。本シリーズではプログラミング初心者を対象とし、Tango SDKを使って簡単なTangoアプリを作り、Phab 2 Pro上で動かすことで、その開発手法や考え方・勉強法(実装方法)などを学ぶことを目的とする。なお、開発にはUnityを使用。

Tangoの公式ページには、紹介した3つのコア技術を中心に、基本的な機能を実装するチュートリアルが用意されている。

このチュートリアルを参考にしながら、今回はMotion Trackingとその技術を利用したシンプルな拡張現実(AR)アプリを実装する。

【入門編】Google Tango対応スマホで拡張現実(AR)アプリを作ってみた

Google Tango対応スマホで、拡張現実(AR)アプリの環境構築

開発環境は、

  • PC : surface pro 4(CR3-00014)
  • OS : Windows 10 Pro
  • 開発ソフト : Unity5.4.1f1

Android SDK, Unityのバージョンは、

  • Android SDK (API Level 17以上)
  • Unity 5.2.1以降

が前提となっている。Androidアプリ開発のためのUnityのセットアップ (AndroidのPath指定など)、PCとAndroidデバイスの接続については割愛。

Tango SDK
Getting Started with Unity for Tango

Unity Documentation
Android SDK セットアップ

Tango SDKのダウンロード

Unityを用いて開発を行う。Tango SDKから「TangoSDK_Biyelgee_Unity5.unitypackage」をクリックしてダウンロード。

Tango SDK
Download the Tango SDK

Google Tango対応スマホで、Motion Trackingを使ったサンプル拡張現実(AR)アプリ

Motion Trackingを使って実世界でのデバイスの挙動を認識し、その挙動を自作した3D空間内でリアルタイムトレースする。

Unity Tutorial
Unity Tutorial : Motion Tracking with Unity

新しいUnityプロジェクトを起動してAssets > import packages > custom packageから先ほどダウンロードしたUnity SDKをインポートする。

このとき、いくつかwarning(deprecated、never usedなど)が出るが無視する。次に、Assets > TangoPrefabs のTango Manager プレハブを、Hierarchyパネルにドラッグアンドドロップ。

tango-manager-prefab

続いて同様にAssets > TangoPrefabs のTango Delta CameraプレハブをHierarchyパネルにドラッグアンドドロップ。次に、実世界上のデバイスの動きのトレース先となる3D空間を制作する。

GameObject > 3D Object 以下のCube、Plane, Sphereを空間に配置していく。しかし、Google提供のチュートリアル通りの設定をすると、各オブジェクトの大きさ、オブジェクト間の距離が大きすぎ、Tangoの空間認識の精度を正しく認識することができない。(前方3mの場所に直径1mの球体、右手側3mの場所に1m四方の立方体を置くスペースを確保できるのならこの限りではない)

ここでは大きさ、位置で設定した。自身の環境に合わせて、各自調節する。

Position Rotation Scale
Directional light (0,0,0) (50,-30,0) (1,1,1)
Main Camera (0,1,0) (0,0,0) (1,1,1)
Tango Delta Camera (0,1,0) (0,0,0) (1,1,1)
Plane (0,0,0) (0,0,0) (1,1,1)
Cube (0.5,0.3,0) (0,0,0) (0.1,0.1,0.1)
Sphere (0,0.3,0.3) (0,0,0) (0.1,0.1,0.1)

Google Tango対応スマホの、Build Settingsの設定

続いてアプリのビルドを行う。

  • (1) File > Build Settingsを選択する。
  • (2) PlatformからAndroidを選択し、Switch Platformをクリックしてプラットフォームの変更を行う。
  • (3) Player Settingsをクリックし、表示されるPlayer Settingsインスペクタの内容を変更する。

Build Settingsの設定

(4) Android(ドロイド君のシルエットマーク) > Resolution and Presentation にある Default Orientation を、「Landscape Left」に設定する。

Default OrientationをLandscape Leftに設定

(5) 続いてOther Settings、Identification内のBundle Identifierを任意の文字列に変更する(デフォルトの文字列のままでは警告が出てビルドができない)

(6) Minimum API Levelを"API Level 17"以上に設定する。

任意の文字列とMinimum API Levelに設定

Build Setting内「Build and Run」をクリック、apk名を指定してビルドし、起動する。

起動すると、デバイスのスクリーンに正面に球体のある空間が表示される。デバイスを自分の正面に構え、そのまま右側を向くとスクリーン内の向きもそれに連動し、今度は空間に立方体が表示される。

デバイスを構えたまま前進すると、空間内でも移動することになる。球体や立方体を様々な距離・角度から観察してみよう。自身の動作の履歴が青い軌道として空間上に残る。

Google Tango対応スマホで、簡易拡張現実(AR)アプリの実装

続いて実空間に3Dモデルを重ね合わせて表示させる。

これには先ほど使用したTango Delta Cameraの代わりにTango AR Cameraを使う。

(1) Assets > TangoPrefabs のTango AR CameraプレハブをHierarchyパネルにドラッグアンドドロップ。 Tango Delta Cameraは削除するか、Inspector内の「Tango Delta Camera」と書かれた箇所の左部にあるチェックボックスを無効化しておく。

(2) Tango ManagaerのInspector内、Tango Applicationコンポーネントの以下のチェックボックスを有効にする。

  • Auto-connect to Service
  • Enable Motion Tracking
  • Auto Reset
  • Enable Video Overlay

「Enable Video Overlay」以下の「Method」は「Texture and Raw Bytes」に設定する。

上記と同様の設定でビルドした結果。

実空間上に、各オブジェクトが実際に存在するかのように表示された。

【入門編】Google Tango対応スマホで拡張現実(AR)アプリを作ってみた #1 まとめ

今回はTangoの基礎部分、motion trackingを使ったサンプルアプリと簡単な拡張現実(AR)アプリの開発方法を紹介をした。Tango SDKは現在も開発中であり、仕様は変わる可能性がある。SDKには"Tango Support Library"と呼ばれる、Tango APIから取得したデータの扱いをサポートする関数群が含まれている。現在は平面のモデルを実世界の平らな面に合わせる機能が提供されている。今後これらのサポート機能が充実すれば、より簡単にアプリの開発が可能になるだろう。

Tango対応 ARアプリ

ARアプリ