スクリーンショット 2015-06-11 10.58.41

Vuforia+Unityを使って、Android Wear上にユニティちゃんを表示する

Vuforia+Unityを使って、Android Wear上にユニティちゃんを表示させてみます。

AndroidWearにARマーカーを表示し、Android端末にインストールしたARアプリを通して
AndroidWearを見ると、ユニティちゃんが表示されるという仕組みです。

環境

  • Mac OS X Yosemite
  • Unity v5.0.1
  • Vuforia v4.0
  • AndroidWear(LG G Watch R)
  • AndroidMobile(XPERIA S0-01F)

ARアプリ作成

ARカメラにユニティちゃんのライセンスロゴが映されたときに、ユニティちゃんを表示するアプリケーションを作成します。

  • 以下のサイトに書いてある通りに、UnityでARアプリケーションを作成します。

【Unity】Vuforia4.0とユニティちゃんを使ってARアプリケーションを作る

カメラのAutoFocusを有効にする

デフォルトではオートフォーカスが無効になっているので、以下の手順でオートフォーカスを有効にします。

  • HierarchyタブでARCameraを選択し、Inspectorタブの「Add Component」をクリック

autofocus1

  • New Script > Nameを「FocusMode」、Languageを「C Sharp」にして「Create And Add」ボタンをクリック

NewScript

  • FocusMode.csを以下のように書き換えます。

using UnityEngine;
using System.Collections;
using Vuforia;

public class FocusMode : MonoBehaviour {
  private bool mVuforiaStarted = false;
  // Use this for initialization
  void Start () {
    QCARAbstractBehaviour qcar = (QCARAbstractBehaviour)FindObjectOfType( typeof(QCARAbstractBehaviour) );
    if (qcar) {
      qcar.RegisterQCARStartedCallback( OnQCARStarted );
    } else {
      Debug.Log ("Failed to find QCARBehaviour in current scene");
    }
  }
  
  private void OnQCARStarted() {
    Debug.Log ("Vuforia has started.");
    mVuforiaStarted = true;
    // Enable focus mode:
    bool autofocusOK = CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
    if (autofocusOK) {
      Debug.Log ("Successfully enabled Continuous Autofocus mode");
    } else {
      // set a different focus mode (for example, FOCUS_NORMAL):
      CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_NORMAL);
      // Other possible options:
      // CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_MACRO);
      // CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_INFINITY);
    }
  }
}

参考: Camera Focus Modes

Android向けにビルド

  • File(トップメニュー) > Build Settings
  • Add currentボタンをクリックして、現在のsceneを追加する

Build

  • PlatformでAndroidを選択する
  • Player Settingボタンをクリック > Bundle Identifierに適当な値を入力(デフォルトのままだとビルド時に怒られる)

PlayerSettings

  • Build And Runボタンをクリック

AndroidWearアプリ作成(マーカー表示用)

マーカーを表示するためだけのAndroidWearアプリを作成します。

  • AndroidStudioで新規プロジェクトを作成
  • Target Android Devicesで「Phone and Tablet」と「Wear」にチェックします

TargetAndroidDevices

  • Blank Activityを選択します
  • wear/res/drawable以下に、「light_silhouette.jpg」という名前で、ユニティちゃんのロゴ画像を配置します(ファイル名に大文字やハイフンは使用不可)

light_silhouette

  • wear/res/layout/round_activity_main.xmlを以下のように修正します
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context=".MainActivity"
                tools:deviceIds="wear_round"
                android:background="@color/white">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/light_silhouette"></ImageView>

</RelativeLayout>
  • AndroidWearにデプロイします

動作確認

ARアプリを起動して、AndroidWearに表示されているマーカーを写します。
以下のようにユニティちゃんが表示されれば成功です。

result


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Top