스마트 폰에서 VR 위치 추적

札幌オフィスのZです。社内研究の一環でスマートフォンデバイスでポジショントラッキングを実現しました。

やりたいことは、VR(仮想現実)モードの画面中で、歩行などの動きの位置を検出して連動させることです。

スマホ単体では、至近距離の移動の検出は困難に思えます。

何かいい方法が無いのか?・・・試行錯誤してみました。

1- 加速度センサー

まず最初に試したのは加速度センサーを用いた方法です。

これは加速度を積分すると速度になり、速度を積分すると距離になることを利用できないかと思い浮かびました。

早速数式を当てはめて試してみましたが、加速時と減速時の加速度が釣り合わないため、端末を動かした後静止してもゲーム内では移動し続けてしまうという状態になってしまいました。

原因を調査したところ加速度センサーからは「瞬間加速度」という値しか取れないということでした。
瞬間加速度ということは、加速度センサーから値を取得しようとしたその瞬間にかかっていた加速度ということになりますので、今回のような移動距離を算出できるほど完全な加速度は取れないようです。

2- ビーコンの電波強度

次に、純粋にスマホ単体のみという訳ではないですが、ビーコンを使って移動距離を検出できないかと考えました。

社内でビーコンを使ったアプリを受託制作していて、ビーコンが転がっていた(すみません!借り物ですので実際には転がしていません)ので、これを拝借して実験してみました。

本社S君のビーコンのBLOG記事は以下です。

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

ビーコンからは常に微弱電波が出ていて、電波の届く範囲に入ると、スマホ端末側でビーコンの情報を検出することができます。

ビーコンからの電波を受信した時の電波強度から距離を算出する方法を使ってみました。

これは電波の受信信号強度は距離の二乗に反比例して減衰していくことを利用するものです。

しかし、こちらも距離が離れるほど誤差が大きくなり、ポジショントラッキングとしては使用できませんでした。

3- カメラからの映像を解析する方法

次に思いついたことは、何か目印のようなものを用意して、スマホ端末のカメラに映った大きさや傾きに応じて、カメラが移動した距離を算出する方法です。

카메라에 비친 영상을 실시간으로 분석하고 처리하는 부분은 시간이 걸릴 상정했지만, Unity는 AR 카메라를 만들기위한 "Vuforia '라는 훌륭한 자산이 개발에 Unity를 사용하여 에셋을 추가 하면 의외로 쉽게 구현할 수있었습니다.

Vuforia
https://developer.vuforia.com/

ar

空中に立方体が浮いているだけでワクワクしてきます。

弊社ブランド「올빼미 스튜디오」のロゴを印刷してARマーカーとして使うことにしました。

ARマーカーとの位置関係によって3D空間上のカメラとオブジェクトの位置関係も変わるため、カメラが撮影した映像の表示をオフにすると、擬似的ではありますがポジショントラッキングを実現することが出来ました。

VRゲームの開発

さあ、ARカメラ機能を使うことでポジショントラッキングが実現できそうなので、この技術を使ってスマホでVRゲームを開発することにしました。

VRゲームを開発するにあたって「Google VR」を使うことにしましたが、VRモードで遊ぶにはCardboardが必要になりますが注意点が1つ!

今回はAR機能でカメラも使用しているため、カメラ部分が使える形状のVRゴーグル・Cardboard(ダンボールVR)が必要になります。

cardboardcardboard2

上記のようにカメラ部分に穴があいているVRゴーグルが必要です。

Google VR
https://vr.google.com/

Google Cardboard
https://vr.google.com/intl/ja_jp/cardboard/
ゲームをリリース

ポジショントラッキング機能を使用してスマホアプリの「Bungee Simulator」というVRゲームをリリースしました!

"화제의 VR을 스마트 폰으로 재현 ~ Bungee Simulator ~"를 발표했다

ビルの屋上から突き出た板の上を歩く、恐怖シミュレーションゲームになります。
板を踏み外すと落下します!

iOS版
https://itunes.apple.com/jp/app/hua-tinovrwosumahode-zai-xian/id1165264105?l=ja&ls=1&mt=8

Android版
https://play.google.com/store/apps/details?id=com.mcraft.bungee

もっとリアル(シビア)にポジショントラッキングを行うにはスマホではなく、ポジショントラッキング機能のついたVR機器やセンサーが必要です。

イベントやアトラクションで使う設置型のVR開発も行っていますのでお気軽にご相談下さい。