第10回で一区切りとした本連載ですが、VRプラットフォームはその後も新たな選択肢が登場したり、それぞれが機能拡張したりと、さらに進化が加速しているように感じます。そうした動きをピックアップするべく、改めて連載を再開いたしますので、引き続きよろしくお願いします。
OculusやHTC Viveなどを活用したPC対応VRコンテンツは、ハイスペックPCが必要なうえ、デバイスも高価なので、ある程度のコストがかかります。それよりも安価にVRコンテンツを作りたいとなった場合、前回まで紹介してきたGear VRが最初の候補に挙がるでしょう。しかし、Gear VRではSamsungのGalaxyシリーズしか対応できないという点が問題になることもあります。
実は、Gear VRのように特定機種向けに最適化されたもの以外にも、一般的なスマホで見られるVR HMDも存在します。ハコスコに代表される段ボール型のものから、もうちょっとしっかりした作りのものまでいくつか販売されています。
例えば、筆者はコントローラ付きのHMDをAmazonから購入して使用しています。レンズ位置も調整できて、それなりの使用感で満足しています。
今回からはこのような一般的なスマホを活用したVR HMDのためのコンテンツを作ります。
制作環境はUnity(現時点での最新バージョン 5.5.0f3)を使用します。
Google Cardboardとは
「Google Cardboard」とは、Googleが提唱するモバイルデバイス向けのVR HMD規格です。
仕様はオープンソースとして公開されています。「Cardboard」の名の通り段ボールで作られているものもありますが、樹脂製のしっかりしたものもたくさんリリースされています。
最新のGoogle Cardboard規格はversion2となっています。version1では磁石を使っていたスイッチがありましたが、version2では画面をタッチする仕組みに変わっています。
SDKをダウンロードする
今回はUnityで使用するため、Unity用のGoogle VR SDKを入手しましょう(後述しますが、まだダウンロードしないでください)。
アプリ開発用のライブラリは、以前は「Google Cardboard SDK」という名称でしたが、現在(2016年12月末時点)は、「Google VR SDK」という名称に変わっています。「DayDream」というさらにハイエンドのモバイルデバイス向けVR HMD規格と統合するためだと思われます。
注意がしてほしいのは、本稿執筆現在では、developers.google.com内にある「DOWNLOAD SDK」ボタンからダウンロードされる最新バージョン「1.10.0」は、Unityに取り込んだときにエラーが出ます。なので、本稿では、上記ページのものは使用しません。
一つ前のバージョン「1.0.3」を、以下のGithubからダウンロードしてください。
「GoogleVRForUnity.unitypackage」というUnityのアセット形式になっているライブラリがダウンロードされます。
プロジェクト作成、ビルド設定、シーン作成
Unityで新規プロジェクトファイルを「SimpleVR」という名前で作成します。
最初のシーンを「Test」という名前で保存しておきます。
「File > Build Settings」を選んで「Add Open Scenes」ボタンを押し、「Scenes in Build」に「Test」が追加されたのを確認します。
左下の「Platform」で、「Android」を選び「Switch Platform」ボタンを押します。
「Player Settings…」を押して出てくるInspector設定パネル内で、「Bundle Identifier」と「Minimum API Level」を設定しておきます。
筆者の場合はそれぞれ「jp.torques.SimpleVR」、「Android 6.0 Mashmallow」と設定しました。
シーンもちょっと作っておきます。細かい数値は適当で良いのですが、カメラの位置は、「x:0, y:1.5, z:0」と配置しておきます。
VRで周りの変化が分かるように、10個程度のCubeをシーン内に配置します。
SDK取り込み
次にSDKをインポートします。
「Assets > Import Package > Custom Package…」で先ほどダウンロードした「GoogleVRForUnity.unitypackage」を選択します。
すべてを選んでいる状態で「Import」ボタンを押すとSDKのインポートが始まります。
途中で「API Update Required」というダイアログが出てきますが、「I Made a Backup. Go Ahead!」を選びます。
インポート完了後、「Package Import Required」というダイアログが表示され、さらに別のパッケージのインポートが要求されますので、これもインポートします。
VR化
続いて、TestシーンをGoogle VR SDKでVR化します。
Assets内にある「GoogleVR/Prefabs/GvrViewerMain」をシーンにドロップして追加します。
これだけでVR化は完了します。
これでAndroid用にビルドして実機に書き出し、市販されているVR HMDにセットすると、頭の向きで見える景色が変わるVRアプリが楽しめます。
Unity Editor上でも、Playボタンを押すと、Gameパネル内には、VRのために左右に分割表示されます。
Gameパネルにマウスのフォーカスがある状態で、「Alt」キーを押しながらマウスカーソルを動かすと、カメラを動かすことができます。都度デバイスに送って動かさなくても良いように作られています。
画面設定の調整
書き出し設定について、修正しておくと便利な設定があるので、補足しておきましょう。
デフォルトでは、デバイスが縦になっているときも左右に画面分割されてしまうので、これを修正します。
「File > Build Settings」のパネルの左下にある「Player Settings」を押して「Inspector」パネルを表示させます。上の方にある「Resolution and Presentation」タブを開いて、「Portrait」と「Portrait Upside Down」のチェックボックスを外します。
これで画面分割は回避されます。
次回は、本アプリに視線による選択機能を実装する予定です。
事例紹介
富士急ハイランドでは現在「ドドンパ」が改修中で乗れません。その代わりに出てきたコンテンツがVRアトラクション「ほぼドドンパ」です。
初代ドドンパのスリルをそのまま体験できるとのことです。
- ホーム常設のドドンパの車両にて体験
- 所要時間 : 約3分
- 利用料金 : 13歳以上500円、7歳~12歳300円
来援してくれたお客さんを落胆させない仕組みとしてのVRコンテンツの利用事例です。
12歳以下も楽しめるように子供用の機材が用意してあるとのことですので、安心して体験できますね。
著者紹介
山田宏道 (YAMADA Hiromichi) - 株式会社トルクス 代表取締役
千葉大学工学部卒業。ゲームプログラマーを経て、2005年よりフリーランス、2012年 株式会社トルクスを設立し、コンシューマ用途、ビジネス用途等、様々なiOSアプリ、ARアプリ等を受託開発。
2016年4月より島根県奥出雲町在住。現在、VR関連技術に注力しており、2016年10月に「地域おこしVR研究会」を立ち上げ、観光向けVRコンテンツなどを企画、開発中。