Durovis Dive SDKでCardBoard向けアプリを作ってみる - ReDo

2014年9月22日

Durovis Dive SDKでCardBoard向けアプリを作ってみる

dive-droid.jpg

【先にまとめ】
おおむねエイバースの中の人の以下のエントリを参考に一通り試しただけ、とも言えます。
UnityでGoogle Cardboard用のコンテンツを作成する
http://blog.livedoor.jp/abars/archives/52289782.html

○1.Durovis Dive SDK

先述のエントリに「Dive Unity Pluginにはジャイロセンサーに対応したカメラが含まれているため、既存のカメラを置き換えるだけでVR対応が可能です。」とあるので試してみます。

スマホ向け両眼VRゴーグルDurovis DiveはiOS/Android向けのUnity PluginをSDKとして配布しています。

Dive SDK
https://www.durovis.com/sdk.html
unitypackageをダウンロードします。

【手順概要】
1. Android SDKをセットアップ
2. Dive SDKをダウンロード、Unity新規プロジェクトにimport
3. MMD4Mecanimで適当なモデルをUnityに召喚
4. Android向けにビルドして起動

さっくりと動きます。液晶の応答速度の問題なのか、選んだモーションが悪いのか、やっぱりCardBoard越しに見ると追従性が残念な感じですね...。

○2. CardBoardの磁石スライドセンサー

こちらも同エイバースの中の人のエントリ
UnityでGoogle Cardboardのマグネットボタンに対応する
http://blog.livedoor.jp/abars/archives/52291562.html

HOW TO INDIE - MAKING A UNITY GAME FOR GOOGLE CARDBOARD
http://www.sc0ttgames.com/?p=293

を参考にしましたが、イマイチ使い勝手の良いところまでもっていけませんでした。
intになるので扱いやすいのもあってMathf.RoundToInt(Input.compass.rawVector.magnitude)ベースでもう少し賢いScriptを組む必要がありそうです。

○3. オブジェクトを中心にカメラを回したい

こちらもぶっちゃけ以下のアプリの再現ですね。

[dive] WAVEFILE/初音ミク fullver.
https://play.google.com/store/apps/details?id=com.mypaceengine.mmdtest

結局色々試しましたが以下のエントリの作戦でさっくりと実現できました。

Unityで、オブジェクトを中心にカメラを円移動させる簡単な解決方法!
http://0310unity.hateblo.jp/entry/unity_camera_circlemove_1

DiveのカメラScript、OpenDiveSensor.csをちょっとだけ編集します。

適当に中央に空GameObjectを追加した後、
transform.rotation = rotation_gameobject.transform.rotation* rot;
とかなっているあたりを
centerBlankObject.transform.rotation = rotation_gameobject.transform.rotation* rot;
とかにしてやるとカメラが中央を向いたままぐるぐると回ります。

ドロイド君は以前のエントリでも登場したものを再度お借りしました。
BowlRoll:ドロイド君
https://bowlroll.net/file/37398
関節数が少々足りないのですが、ミクさんとか3Dぐりぐりまわしてるとパンパカパンツで再配布アウツな感じなのできっと今後もお世話になることと思います。よろしゅう。

アプリ名もあってないし適当すぎるのでそのうち削除するかもしれませんが、今回試して作ったapkを以下においておきます。良かったらあーこういうことかーと試してみてください。
DroidRun.apk(8.72MB)

コメントする