Unity에서 비콘을 시도했습니다

도쿄 본사의 S입니다.

最近では「ゲーム以外でもUnityを使う」と言うケースが増えてきました。
受託案件で비콘を使用したiPhone/Androidアプリを作っており、今回はUnityでiBeaconのレシーバーアプリを作っていこうと思います。

비콘とは何ぞやですが、ひとことで言うと「微弱電波を出す端末」です。

その微弱電波をスマホで検出して、位置情報(UUID)を取得します。

検出できる範囲は、数センチ/1m/10m と비콘の仕様により選べるので、狭い範囲での位置情報が取得できます。

예를 들어 몇 센티미터 범위의 신호는 진열 상품 옆에두고 스마트 폰을 표지에 갖다 대면 정보 제공 수 있으며, 1m 범위의 표지는 제품에 접근했다는 감지, 10m의 비콘은 점포 (매장)에 내점 한 는 감지 할 수있을 것입니다.

今回は店頭に来店した来客に、パーソナライズ化したクーポンをその場で配布するという想定要件です。

비콘も多くの種類がありますが、Bluetoothの微弱電波を使うものが多いようです。

今回は、Appleが独自で規格を作ったiBeaconを使用します。

비콘は以下の2つの端末を用意しました。どちらもiBeacon規格に対応しています。

비콘

大きさがわからないかもしれませんが、500円硬貨を一回り大きくした程度です。
左側はボタン電池、右側は単4電池で駆動し、どちらも電池は1年以上持つとのことです。

왼쪽은 "BLEAD®-Ver.2 "
http://www.houwa-js.co.jp/index.php/ja/products/blead

오른쪽은 "BVMCN1101AAB"
http://www.products.braveridge.com/beacon/bvmcn1101aa-b/

さて、비콘は用意できましたので、あとは次のものを準備します。

· Unity5
・BLE対応しているAndroid端末およびiOS7以上の端末
· iBeacon 말 자산

Android 기기는 신호를 감지 할 수 있도록 BLE (BlueTooth Low Energy)에 대응하고있다 BlueTooth Ver.4 터미널을 사용하십시오. 최근 단말기라면 대부분 OK라고 생각 합니다만, 조금 오래된 단말이라고 BlueTooth가 Ver.4에서는 없을 수도 있습니다.
iOS端末はiOS7以上で、비콘が対応されるようになっています。

Unity는 자산을 사용합니다.
いくつか비콘のアセットを試してみましたが、安定しないものもあったので、以下の「iBeacon」という名前そのものの有料アセットを使用します。

자산 "iBeacon"$ 25
https://www.assetstore.unity3d.com/jp/#!/content/15260

「アプリを起動している間Beaconの情報を受信する」と言う要件ならこのアセットでOKです。バックグランドで常駐させたり、비콘に情報を送信したりとの場合は検証していないのでご注意下さい。

Unityを起動して実装を進めます。

■ 구현 단계 ■

1. Assets 가져 오기

インポートすると以下の様になってると思います。

unity1

Scene/ibeaconreciverexample と言うシーンを選びましょう

2. UUID를 세트하는

unity2

a. HierarchyからIBeaconReviverを選択します。
b. 監視する비콘の数を設定します。
c. 監視対象の비콘の名前を指定します。
d. 先に控えておいた端末のUUIDを指定します。
e. アプリ起動時に表示される位置情報の説明を記載します。
更新したら[Update Description] をクリックしましょう。

アプリを起動すると以下のように表示されます。

unity3

3. 기기에서 앱 실행

それでは実際に AndroidとiPhoneのそれぞれの端末でアプリを起動させてみます。

端末の間にあるものが비콘です。

unity4

端末の画面に表示されている項目についてですが、UUID / Major / Minor は비콘に設定できるものです。비콘の設置時にあらかじめ設定します。
これらの情報を用いてどの비콘を受信したか判定できるのですね。

[Range] 비콘からの距離です。正確な距離は取れないので大まかな距離になります。
Immediate:Beacon →至近距離にあることを表します。
Near →近距離にあることを表します。
Far →遠距離にあることを表します。
Unknown →Beacon の距離が不明であることを表します。

[Rssi] 受信強度です。値が大きいほど受信状況が良い事をあらわしますが、Rangeがunknownの時は値が0になることがあります。

 

アセットを使用することで、Unityでも簡単に비콘の情報を取得できることがわかると思います。

単純ですが「アプリを起動している間비콘の情報を受信する」事が出来れば、

· 미술관의 전시물을 안내 앱
・脱出ゲームで手がかりの場所を検索できるヒントアプリ
・各店舗のクーポンを取得できるアプリ
・スタンプラリーのようなアプリ
・おかんに비콘を持たせておき(洋服に貼り付けるとか)、部屋に近づいたら通知してくれるアプリ(笑)

などなど、やれることがグッと広がると思います。

비콘も個人で買えるような値段(数百円~数千円)ですし、気軽に実験もできそうですね。