LoginSignup
6
1

More than 5 years have passed since last update.

Google Tangoでのアプリ開発

Last updated at Posted at 2017-02-25

Introduction

AR_FukuokaでTangoを扱える機会があったので、
早速応募して使ってきた。

最近アウトプットが少ないと思っていたので、超絶タイミングが良い。
AR_Fukuoka最高。

尚、この記事の内容は、
AR_Fukuokaで行われたハンズオンの内容をそのまま記載してます。

興味がある方は是非AR_Fukuokaへ!!

Tangoを使ってやる事

Unityを使って、タップした所に3Dモデルを置くアプリを作る。

Environment

  • Phab2 Pro
  • Windows 10
  • Android SDK
  • JDK 1.8.0_121
  • Unity 5.5

手順

事前準備

  • ココからUnity用のSDKをダウンロードする。
  • Unityを起動し、新規プロジェクトを作成する。
  • Window->AssetStoreを開き表示させるモデルをダウンロード後、Import。
  • AssetsのModelをHierarchyへドラッグ&ドロップしてモデルが使える事を確認する。
  • Assets->Import Package->Custom PackageからTango SDKをImportする。

今回使ったのはカイル君

まずはTangoSDKに触る

  • Assets内のTangoPrefabsからTangoManagerを見つけて、Hierarchyにドラッグ&ドロップする。
  • 既存のカメラを削除する。
  • Assets内のTangoPrefabsからTango Simple Cameraを見つけてHierarchyへドラッグ&ドロップする。
  • File->Build Settingsを開き環境をAndroidへ変更する。
  • Build SettingsのPlayer Settingsをクリックし、Inspector上で下記設定を変更する。
    • OtherSettings.BuildIdentifer : com.miyatama.tangoapp
    • Default Orientation : Landscape Left
  • Build Settings上でBuild And Run!!

failed to re-package resource.see the console for details
というエラーが出たら、

  • Javaのバージョンを上げる
  • Android SDK 24をアンインストール

ここまで来ると分かる事実。

後ろに下がらないと見えない!!

これは、Tango起動時の位置が0,0,0の座標だから。
なので、下記修正を行う

  • カイル君を後ろにずらす
  • HierarchyからTango Simple Camera->Tango Poseをクリックし、InspectorのTrail Rendererのチェックを外す

Tango SDK

Tango SDKで空間計測を可視化してみる

  • Tango Point CloudをHierarchyへD&D
  • Tango ManagerのInspectorを開き、Enable Depthのチェックを入れる。
  • Tango Point CloudのInspectorを開き、下記点を変更
    • MeshRendererのチェックを入れる。
    • Tango Point Cloud.Update Points Meshのチェックを入れる。
  • Tango Simple Camera->Gesture CameraのInspectorを開きTangoGestureCamera.DefaultCameraModeをTHERD_PERSONへ変更

ARっぽくしてみる

新規Unityプロジェクトを作成し、まずはTangoSDKに触るの手順を終わらせた後。

  • Tango Simple Cameraを削除し、Tango AR Cameraを追加する。
  • Tango ManagerのInspector
    • Enable Video Overlayのチェックを付ける
  • File->Build SettingsからBuild And Run

無事にカイル君が浮いている事を確認したら、
今度はカイル君を地面に立たせる。

  • カイル君にAdd Componentでスクリプトを追加する。
    • スクリプト名 : kylebehavia
  • Assetsのkylebehaviaをダブルクリックしてスクリプトを編集する。
kylebehavia
using System.Collection
using System.Collection.Generic;
using UnityEngine;
using Tango;

public class kylebehavia : MonoBehavior {
  public TangoPointCloud pointCloud;

  void Start(){}

  void Update(){
    if (Input.touchCount > 0){
      Touch t = Input.getTouch(0);
      TouchPhase p = t.phase;
      if ( p == TouchPhase.Began){
        StartCoroutine(FindPlane(t.position));
      }
    }
  }

  private IEnumerator FindPlane(Vector2 touchPosition){
    Camera cam = Camera.main;
    Vector3 pos;
    Plane plane;
    if ( !pointCloud.FindPlane(cam, touchPosition, out pos, out plane)){
      yield break;
    }
    transform.position = pos;
    transform.forward = new Vector3(
      cam.transform.position.x - transform.position.x,
      0,
      cam.transform.position.z - transform.position.z).normalized;
  }
}
  • カイル君のInspectorにPoint CloudをD&Dで設定する。
  • File->build settingsからbuild and runをクリック!!

C5ftAvDUoAAOQ0a.jpg

以上です。
お疲れさまでした!!

修正履歴

2017/02/26

AR_Fukuokaで本内容をご教授いただいた方から"AR Cameraを追加する手順が抜けている"
と、ご指摘を頂く。
恥ずかしいので、こそっと加筆する。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1