Gear VRとGalaxy S6を買ったので原点に戻ってミクさんに踊っていただいた - ReDo

2015年5月 2日

Gear VRとGalaxy S6を買ったので原点に戻ってミクさんに踊っていただいた

racingmiku2015.jpg

○はじめに

一通り試したのでメモを残しておきます。
DK2も、AndroidどころかDive SDKもCardboard SDKも触ったことがない人にはちょっと大変かもしれませんが、それなりに知識がある人だったらセットアップ手順はいろいろな点で親切になっており、概ね誰でも(非プログラマーでも)嫁召喚はできると思われます。

Galaxy S6/S6 edge自体は5inchと小さ目で解像度は高く、パワーもありますので単眼ハコスコ・双眼Cardboard互換組にもオススメのデバイスと言えそうです。...フラッグシップと言えるのでお値段は決して安くありませんけどね!

Android開発環境とかUnity5.0.1pXでの対Androidの話は、以前に書いたエントリ【スマホVR】Unity 5 PersonalとCardboard SDKで嫁をAndroidに召喚する【MMD】 #JAGVRを参照ください。

u5.png

○環境・アセット他

Galaxy S6
Gear VR
Unity 5.0.1p3
Oculus Mobile SDK 0.5.1
MMD4Mecanim_Beta_20150428_2
モデル:Digitrevx:2015レーシングミク
http://www.nicovideo.jp/watch/sm26148851
楽曲:初音ミク 「ナイトメア☆パーティーナイト」
http://www.nicovideo.jp/watch/sm8667565
モーション:トレース元様 【仮面ライダー217】ナイトメア☆パーティーナイト踊ってみた【☆】
http://www.nicovideo.jp/watch/sm14227332

○Galaxy S6セットアップ

・ドコモで機種変で買いましたがSIMは1回も刺してません。自宅WiFiで済みました。
・Android開発機としてセットし、adb devicesが通るようにしておきます。
・ファームウェアアップデートを1回実施し、Gear VR側のセットアップに移ります。

○Gear VRセットアップ

・Gear VRにスマホをとりあえず刺すと音声で「一回外してアプリインストールしてね」と音声案内が出ます。AndroidのTTS APIを使っていると思われる棒読みが特徴です。録画に成功した@itachinさんの動画をご覧ください。



・Galaxy S6側の表示したがっていくらかダウンロードとログイン(アカウント作成)を実施します。Oculus Rift開発者である場合にはそちらのOculusアカウントで良いので新規に作成する必要はありません。
・スマートフォン側のセットアップが終わったらもう一度刺してチュートリアルを実施します。よくできてるので特に困らないと思います。

charge.png
Gear VR利用中に充電継続しようとするとこんな感じで怒られるんですが、どういうACアダプタならだいじょうぶなんですかね?

○Gear VRアプリ

ほとんど遊んでいないので割愛します。だいたいニュースサイト等で得られる情報の通りです:)

○Oculus Mobile SDK 0.5.1とosigファイル

このへんから落とします。
https://developer.oculus.com/downloads/#sdk=mobile

ちょっとファイルが多いのでどれを使っていいのかはっきりしていませんが、
ovr_mobile_sdk_0.5.1\VrUnity\UnityIntegration\UnityIntegration.unityPackageをimportしたら見慣れたOVRPlayerController等がPrefabsにいらっしゃっいました。

Unity5.1のネイティブOculus対応にGear VRが含まれるのかは分かりません。今のところUnity5.0.1p3+Oculus Mobile SDK 0.5.1が良さそうです。

野良アプリはすべてのGear VRで動くわけではなく、Oculus Signature File (osig) をビルド時に組み込む必要があります。adb devicesコマンドでDevice IDを入手後、以下のOculus開発者サイトからosigファイルを生成してください。

Oculus Signature File (osig) Generator
https://developer.oculus.com/osig/

上記ページにも記載されていますが、UnityであればOculus Unity Integrationをimportした後、Project/Assets/Plugins/Android/assets/配下にダウンロードした「oculussig_{device id}」ファイルを配置します。

○Unity5.0.1p3

こちらもGear VRのお作法というよりはAndroid向けのお作法の方が多い印象です。

・Build SettingsからSwitch PlatformでAndroidに変更。
・Build SettingsからTexture CompressionをETC2(GLES 3.0)に変更。
・Player SettingsからCompany Nameを変更。
・Player SettingsからOther Settings->IdentificationのBundle Identifierを変更。ConfigurationのGracphis LevelをForce Open GL ES 2.0に変更。

元Sceneは適当に入ってるものを使ってもいいのですが、File->New Sceneからやってみます。Main.unityという名前で保存されるものとします。

・MainCameraを削除。
OVR/Prefabs/OVRPlayerControllerをHerarchyに追加。Position=(0,1.8,0) Rotation=(0,0,0)。 Gravity Modifierを0に、Use Profile Dataのチェックをoffに。
・どうもGear VR横のタッチパッドはデフォルトではMouseの様です。デフォルトではInput.GetAxis("Mouse X")の左右回転のみ生きています。
・Input.GetAxis("Mouse Y")で高さ上下移動をしたかったのですが、実体がタッチパッドなので移動量がとれるわけではなく、触った地点の絶対値がとれてしまい、あまり操作感がよくなりません。ひとまず天井と床を用意してお茶を濁しましたが、またがんばることにします。
・BACKキーで終了を入れてみたのですが画面が真っ暗なまま何もできないのも意味が無いので、以下の様な感じでSceneリスタートを入れてみます。

// BACK key for quit application
if (Input.GetKey(KeyCode.Escape)) {
  Application.LoadLevel(0);
  return;
}

・ナイトメアなのにお空がまったくナイトメアでないのでUnity4からSkyboxesを移植します。
・MMD4MecanimでDigitrevx式2015レーシングミクさんをお迎えします。Digitrevx式はめっちゃかわいいのですがポリゴン数がそれなりなのでGalaxy S6でもfpsは残念な感じになりました。あとかわいいランスとシールドもモーフにあるのですが出しっぱなしで貫通しないモーションが手持ちにありませんした。剣盾ありの有名なモーションって何かありますかね?

○Gear VR Service開発者モード

これはGear VRを差していなくともGear VR専用アプリを起動できるようにするモードです。
設定->アプリケーション->アプリケーション管理->Gear VR Service->ストレージを管理->バージョンを数回連打でONにできるのですが、スマホ内のアプリをスキャンして、1個以上(?)自作のGear VRアプリが入っていないと有効にならないようです。詳細な条件は不明です。

また、開発者モードをONにすると画面が黒挿入なのかちらつく件は、Gear VR Service自体のバージョンがアップすると直るらしいのですが...。

○感想

首振りには流石の強さです。没入感はCardboard互換とは一段階レベルが違い、ここまでくるとDK2と比較してポジトラがないのが逆に違和感な感じです。

async.jpg
asynchronousにもほどがあるスクリーンショット。timewarpの助けを借りる前提でも、MMDカウントで5万ポリゴンは切っておいたほうが良さそうです。流石に没入間に差がある感じでした。

コメントする