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」をクリック
- New Script > Nameを「FocusMode」、Languageを「C Sharp」にして「Create And Add」ボタンをクリック
- 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);
}
}
}
Android向けにビルド
- File(トップメニュー) > Build Settings
- Add currentボタンをクリックして、現在のsceneを追加する
- PlatformでAndroidを選択する
- Player Settingボタンをクリック > Bundle Identifierに適当な値を入力(デフォルトのままだとビルド時に怒られる)
- Build And Runボタンをクリック
AndroidWearアプリ作成(マーカー表示用)
マーカーを表示するためだけのAndroidWearアプリを作成します。
- AndroidStudioで新規プロジェクトを作成
- Target Android Devicesで「Phone and Tablet」と「Wear」にチェックします
- Blank Activityを選択します
- wear/res/drawable以下に、「light_silhouette.jpg」という名前で、ユニティちゃんのロゴ画像を配置します(ファイル名に大文字やハイフンは使用不可)
- 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に表示されているマーカーを写します。
以下のようにユニティちゃんが表示されれば成功です。