2017年01月28日

2017-01-28_14h01_36

前回掲載した「我が家のVRヘッドセット事情(ハードウェア編)」の続きです。今度はソフトウェア周り。なお、ハードウェアに比べてアップデート頻度が高く、流動的な部分もある為、記事公開時点での環境として参考にして頂ければと思います。

各ソフトウェア・アプリの使用、及び各種設定等に関しては、使用される環境や時期によって大きく変わります。最終的な判断は皆様の自己判断、及び自己責任にてお願い致します。

設定内容における不具合、使用機材やデータの破損、セキュリティにおける各種問題等、これらの内容に関して何らかの保証をする記事では無いという事をご理解下さい。

*2017/03/02:画面回転設定のアプリ紹介が抜けていた為、加筆しました。

それでは、以下より。
 

・使用スマートフォン環境:XperiaZL2(Android5.0ベース)
ハードウェア編で紹介したスマートフォン「XperiaZL2」は、リリース時点ではOSバージョンが4でしたが、その後5.0までアップデートが行われました。 販売していたキャリアであるauによるアップデートは5.0で終了した模様ですが、本端末とほぼ同じ仕様の「XperiaZ2a」が台湾で販売されていた事や、元々Xperia自体のカスタムROM界隈が活発である事もあり、機能の制約がかかる部分はありますがOSバージョンを6まで引き上げる事は可能です。
なお、後述する必須ツール「Riftcat」がAndroid5.0以上という必須条件である為、必然的にスマートフォン側もそれ以上に対応したものを使用する必要があります。これから中古で専用端末を探そうとしている方は要注意。
今回VRで使用するにあたって様々な検証を行いましたが、結果として「root化した上でauバージョンの5.0へバージョンアップ」という環境に落ち着きました。
root化の理由については後述しますが、USBテザリング周りの自動化が主な理由であり、SIMロック解除や過剰なOSカスタマイズは行っていません。ただし、不要なキャリアアプリを始めとした常駐系のツール、アプリに関してはroot権限を取得した上で削除し、スマートフォン自体に過剰な負荷がかからないよう最適化しています。
カスタムROM適用、root化とも、キャリアやメーカーのサポートが受けられなくなる行為であると同時に、さまざまなトラブルの原因になりうるものです。適用やroot権限取得に関してはご自身の責任の元、実行してください。
本記事ではroot権限取得に関する手法は掲載せず、またこれ以降で注意喚起する記載は行いません。


・VR画面表示/ストリーミングツール:Riftcat(PC側サーバ)/VRidge(スマートフォン側クライアント)
このツールを見つけなければ、きっと私はこれほどVRにのめり込まなかっただろうと思われる程、本システムの基幹となるツール。本ツールと関連して、Steam/SteamVRも導入しています(PC側)。英語ツールの為、後述する決済も含めて日本語対応は無し。 
大雑把に言ってしまえば、「基本的にHTC Vive使用が前提のSteamVRに対して『Vive接続状態』と誤認させ、VRコンテンツを実行、その表示内容をスマートフォン画面に飛ばす」というもの。対応環境としてはGoogleCardboardとなり、必然的にサイドバイサイド(SBS:一つの画面を左右に分割し、2画面表示状態にする方式)となります。
現状安価に購入出来る「スマートフォン向けVRゴーグル」の殆どはSBS向けであり、よほどスマートフォンの画面が小さくなければ対応出来るものと思われます。
本ツールは有料であり、無料状態の「体験版モード」では一回の連続使用時間が10分までという制約があります。課金はPC側の「Riftcat」に対して行い、ツール起動時に必要となるログインIDに対して紐付けられます。決済方法は複数ありますが、私はPaypalにて決済を行いました。決済時点で日本円にして1700円前後。
一方でスマートフォン側にインストールする「VRidge」には課金機能が無い為、「VRゴーグル用の端末だけGoogleアカウントを分けたい」という方にも対応出来るものと思います(未チェックの為、詳細不明)。
購入前時点でも、ツールのアップデートを含めた設定内容に制限は無いため、連続使用10分という制限以外の点については全て動作確認が行えるようになっています。逆に言うと、「10分の使用に耐えない環境では満足なツール使用は出来ない」と考えて頂いて過言ではないと思います。スマートフォン負荷とそれによる発熱、そもそものスペック不足や「ジャイロ等のセンサが入っていなかった」という機能制限、これらは10分もあれば問題なく確認が出来ます。
精力的な開発、アップデートが行われており、1月中旬頃のアップデートでは画面表示やセンサ反応に対するレスポンスが大幅に向上するなど、今後も期待出来るツールです。 

・ゴーグルごとに最適な画面表示を設定する:Cardbard
前述の通り、Riftcat/VRidgeでは「Google Cardboard準拠」のSBS表示を行います。他のVRアプリでも同様ですが、この時に「ただ左右に画面を出す」だけでなく、使用するゴーグルに最適化した状態で画面表示を行う機能を持つのが、この「Cardboard」アプリです。Googleよりリリース。
VRゴーグル自体、取扱説明書、またはサポートサイトや販売ページなどに掲載されているQRコードを本アプリで読み込む事で、「Cardboardアプリに対応したVRアプリで、レンズ径や画面との距離に合わせた表示を行う」という最適化が出来るようになります。
それぞれのアプリ単体で同様の機能を持っている場合もありますが、ほとんどの場合このアプリに対応している為、入れておいて損はないアプリです。
なお、「ゴーグルに対応したQRコード」がほとんどである為、「同じゴーグルで5インチのスマートフォンと、5.5インチのスマートフォンを使う場合に違いはあるか」という点では「違いは無い」ものと思われます。
スマートフォンの画面サイズを明記していないQRコードを使用してチェックしていますが、最終的には画面サイズに合わせて引き伸ばされる為、そこまで大きな違いはないようです。
さまざまなゴーグル向けのQRコードをまとめたサイトはこちら(海外)

・画面の回転方向を強制的に指定する:Rotation Control
Riftcatに限らず、スマートフォン向けVRコンテンツは基本的に前述のCardboardに準拠しており、必然的にスマートフォンを横方向にして使用、視聴する事になります。
Android側で自動回転の指定をする、しないに限らず、視聴するアプリによって強制的に画面回転が適用され、「横方向の状態で上下を入れ替える」といった動作をするものが多数見受けられます。
一方、それらのコンテンツがさらに確実な環境を用意する為か、「上下の入れ替えも許可せず、特定の向きにのみ対応、固定する」というアプリもあります。
Riftcatと対にして使用するVRidgeもそのひとつで、手元の端末(AQUOS Xx3、XperiaZL2)で確認した所、「電源ボタンが上になり、(AQUOSの場合)USBポートが右を向く」という状態で固定されます。
今回の環境で使用しているXperiaZL2も同様に電源ボタンが上を向く状態で画面が固定されるのですが、ハードウェア編で記載したとおり、ケーブルの関係から電源ボタンを下にしてゴーグルに装着せざるをえない状態にあり、このままでは使用できないという状況でした。
そこでいくつかツールを漁った所、「Rotation Control」というツールを使用する事で、「ホーム画面を含めた(おそらく)全てのアプリが指定してくる画面方向の固定を完全に無視し、このツールで指定した画面方向に強制的に回転させる」という設定が可能になりました。
これによって画面を180度回転させ、電源ボタンが下の状態で正常表示をさせる事が出来るようになります。VRidgeに限って言えば、実際のVR画面において全画面表示、かつ中心線がどちらでも正しく画面の中央に入る為、使用上全く問題ありません。
これに関しては完全に端末依存の問題であった事と、他にも同様の動作が行えるツールはあるようなので、使用する端末やケーブル引き出しの影響を考慮した上で設定して頂くとよいと思います。

・ スマートフォン動作の自動化:MacroDroid
今回のシステムでは、PCとスマートフォンをUSB接続した上で、「USBテザリング」の形で各種通信を行っています。Riftcat/VRidgeではWiFi環境での無線通信にも対応しているのですが、高解像度で表示しようとした場合、どうしてもレイテンシ(遅延)が発生し、結果として画面表示が崩れたり、場合によっては接続が切れてしまうケースがあります。
XperiaZL2の標準OS(前述のAndroid5.0)では、USBテザリングを使用する際は「USBケーブルでPCと接続→設定画面より『USBテザリング』を有効化」という手順が必要であり、USB接続を解除するとこの設定が強制的に無効化される為、使用する度にゴーグルを開いてスマートフォンを直接操作する必要がありました。
その為、「MacroDroid」のような「条件設定式の自動操作ツール」を使用し、「USB接続を確認したら自動でUSBテザリングを有効化、USB接続が外れたら画面OFF」という条件を組んで、ゴーグルを開かなくとも使用できるように組み立てています。
この時、USBテザリングのON/OFFを切り替える為にroot権限が必要であり、前述の通りroot取得の上で使用しています(画面OFF程度であれば標準状態で設定可能です)。
このようなマクロツールは多数リリースされている為、使用用途にあったものであれば他のツールでも代用出来るものと思います。最低限USBテザリングのON/OFFを設定出来れば、使用上問題ありません。

補足:USBテザリングについて
今回のシステムで使用しているUSBテザリングですが、本来は「PCとスマートフォンをUSBで接続し、スマートフォンをモデム代わりにしてインターネット通信を行う」というものです。その為、以下の2点が重要なチェックポイントとなります。
1.接続しているPCのネットワーク通信が(一部、または全部)スマートフォンに切り替えられる
2.これにより、スマートフォンの通信量が莫大になるケースがある

これはRiftcatサイトでも警告されているもので、普段使用しているスマートフォンで兼用しようとした場合、設定ミスが残っていると、スマートフォンの通信量(と通信「料」)が大変な事になるケースもあります。
対策としては、スマートフォン側でフライトモードを設定し、LTE通信等を行わない状態にする事で対処可能です。この間、当然ですが電話やメールの着信等は一切受けられない(条件付きでWiFi経由の受信は可能)状態になりますので、予め注意しておいてください。
私の環境ではXperiaをVR専用端末としている為、そもそもスマートフォンにSIMが入っていない状態なので、この点は問題ありませんでしたが、不必要な通信や電波探索(セルスタンバイ等)を防ぐ為、フライトモードに設定した状態になっています。

もう一点のPC側に関する問題ですが、ネットワーク周りの設定を最適化する事で、「USBテザリングは必要な通信だけ、それ以外は通常のインターネット回線(PC側NIC)を使用」とする事が可能であるようです。
Windows10環境の場合、ネットワーク設定ダイアログでの確認の他、PowerShell(コマンドプロンプト置き換えのコマンドラインツール)による設定で回避可能、という情報があり、実際にそれらの設定で回避する事ができました。
ただし確実な設定方法というわけではないようなので、詳細の設定は本記事での掲載は控える事にします。なお、RiftcatのFaQページに該当する項目がありますので、こちらを確認頂くのもよいでしょう。

・OculusRift向けVRソフトウェアの動作用:ReVive
ここまでの内容で実現出来るのは、「SteamVR、及びHTC Vive向けソフトウェアの動作」となります。SteamVR内の「OpenVR」向けコンテンツに関しても、確認した限りでは動作可能であるようです。
一方、SteamVRを使用している点から、Viveより先行して販売されたOculusRift向けのコンテンツでは、一部で利用できないものがあります。
それらを動作させるにあたって、「ReVive」というツールを導入しました。また、本ツール導入にあたってはOculusRift自体のドライバを導入する必要があります。
この部分に関しては、「使用したいソフトウェアや遊びたいゲームがRift向けしかなかった」という場合を除いて、省略出来る項目になります。Riftのドライバは結構なサイズがあるので、必要になるまでは導入を見送っても構わないでしょう。


現状、「ゴーグルを動作させる」という点で必要となる、あるいは使用しているツール類はこれらのみとなります。ここから先に関しては、環境に応じて、あるいは必要に応じてインストール・構築する部分になります。


LeapMotionを使用する:LeapMotion Orion Driver(Beta)
手や指の動きを検出し、画面上に表示した「仮想の自分の手」を動かしたり、何らかの操作を行う際に、現状最もダイレクトな操作感を実現してくれるのが「LeapMotion」です。
このLeapMotionをVR環境で使用する際に必要となるのがドライバのアップデート。「Orion Driver」と呼ばれる開発者向けバージョンへアップデートする事で、VRへの対応だけでなく、トラッキング精度なども大幅に向上したドライバを使用する事が出来るようになります。
開発者向けキット(SDK)が付属しているバージョンもありますが、ドライバ単体としてはどちらも同じバージョンであるようです。
LeapMotion自体は決して新しいものではなく、また最初の製品出荷後からハードウェアのバージョンアップ(新製品等)は行われていない為、機能として「ある程度完成した状態」で現在に至る部分はあるのかもしれません。このドライバのように、ソフトウェアの更新で大幅に精度を上げることが出来るという点では、「Beta」が取れて正規版となる頃にはなかなかの完成度になっているかもしれません。
なお、LeapMotionは「赤外線LEDと赤外線検知センサ(カメラ)の組み合わせ」というシステムである為、VRコンテンツ側が対応していれば、LeapMotionの赤外線カメラをそのまま使ったAR(拡張現実)システムとして動作させる事も可能です。
実際に同様のコンテンツがLeapの開発者向けサイトで公開されており、「リアルタイムにカメラで映した部屋の空間に、画像や動画などのウィンドウを貼り付ける」といった機能を持つものもあります。
ただし、赤外線検知カメラの仕様上、映し出される部屋の様子はモノクロで、液晶モニタなどは点灯状態でも表示されている内容を取り込むことは出来ないようです。
VRゴーグル使用時はLeapMotionをゴーグル前面部に貼り付ける形になる為、キーボードやマウスを見たいという時には自然な視点から見ることができます。

・LeapMotionによるViveコントローラのエミュレート:VR LeapMotion Driver
LeapMotion使用時に利用可能なオプション。LeapMotionで検出可能な手や指の動きを、Viveコントローラの操作に置き換えるエミュレートツールです。
モバイルVR(スマートフォンVR)の環境でPCVRを実現するにあたって最も大きな障壁となる「操作系(コントローラ)」に対するひとつの回答といえるツールなのですが、うまく動作してくれない為に、テスト時以外は外しています。
SteamVRを始めとしたPCVR向けのゲーム、ソフトウェアでは現状、「OculusRift、もしくはHTC Viveを使用しており、同梱(あるいはオプション)のコントローラを使用する」という前提になっているものが多く、「表示系をエミュレートしているだけ」であるRiftcat系では、この操作系において大きな制約になっている部分があります。
それに対して、LeapMotionを使用する事でエミュレート可能であるという事もあり期待していたのですが、LeapMotionドライバ側か、エミュレートツール側か(おそらく後者)、いずれかの認識精度が甘く、指定された指の形を作っても正しく検知されず、コントローラ操作として使用する事が出来ませんでした。
また、LeapMotionにも対応しているソフトウェア(「カスタムメイド3D2」のVRパッチ等)では、コントローラとハンドトラッキングの双方がダブってしまう状態になる為、正常な操作が行えない状態でした。
尚、機能のON/OFF切り替えはできず、インストールは「ドライバ」として行われる為、使うのを一時的にでもやめたい、という場合であってもアンインストールが必要になります。

現状ではコントローラ単体でViveコントローラ互換となる製品も無く、単体販売されている本家Viveコントローラも「それ単体」では使用出来ない為、このようなエミュレートツールはそれなりに需要があるものと思いますが、「コントローラって重要なんだな」と痛感した一件です(この件は後日記事にする予定です)。 
月末にKickstarterでプロジェクト開始となるNoloVRに期待。

・ゲームパッドの操作をキーボード操作に置換:JoyTokey
WindowsPCに対応したゲームパッドを使用する際に利用可能なオプション。このツール自体はVR以外の面でも有名で、設定や操作も簡単に行えるものです。
VRゲームの中で、プレイヤー位置を移動する際にキーボード操作を行う必要がある場合、このツールでゲームパッドに置き換える事で操作性を向上させる事ができます。
従来のFPSゲームで主流な「WASDキー」による前後左右の他、「RFキー」での上下垂直移動、「QEキー」でのカメラ回転等、VR環境内で行う操作は意外と複雑になります(RiftやViveであれば「ポジショントラッキング」として頭や身体を動かすだけで実現できます)。
これらのキー操作をゲームパッドの十字キーやジョイスティックに割り当てる際、最もシンプルなツールとして使用できます。
尚、私はゲームパッドとしてXBOX360用ゲームパッド(有線・Windows対応)のものを使用していますが、現行である程度予算が組めるようであれば、XBOX ONE向け無線コントローラ(Bluetooth機能搭載のWindows対応モデル)をオススメします。OculusRiftはこのコントローラが採用されていました。
Logicool等から販売されている「PlayStation型コントローラ」も良いのですが、キー配置やキーの数など、「ゲームをプレイする」ではなく「様々な操作を行う」という、どちらかといえば「マウスとキーボードを選ぶ」ような視点から選択して頂ければよいと思います。
また、このような使い方のみに特化するのであれば、「DirectInputかXInputか」という選択は「どちらでも良い」となります。ただし、今後Windows向けゲームコントローラとしては「XInput」が主流になる(=XBOXコントローラ基準になる)ようなので、この点も要注意。 

・スマートフォンに搭載されているセンサの動作状況を確認する:内蔵センサー
使用しているスマートフォンに搭載されているセンサ類の仕様や動作チェックが行えるアプリ。
スマートフォンによっては「ジャイロセンサのスペックが低い」、または「そもそもジャイロセンサが載っていない」というケースがある為、不安に感じた際には一度チェックしてみると良いでしょう。
動作状況を数値化してチェック出来る機能もありますので、「視点がズレる」「頭の動きに反応しない」「反応が鈍い」といったトラブル時にもチェック可能。熱暴走が原因なのか、周りに置いてある機器のノイズが原因なのか、など、やろうと思えば一通りのチェックが出来ます。


現状で使用しているソフトウェア、ツール、アプリは以上の通りです。これだけ揃えてあれば、大抵のことには対応出来るようになっていると思います。
オマケとしては、どうしてもスマートフォンの画面を操作しなくてはならなくなった時の為に、100円ショップのタッチペンを一本用意しています。
レンズで拡大して映像を見るという特性上、ほんのわずかな指紋でも視界に入ると気になって仕方ない、という状況に陥る為、一本持っていても損はしないでしょう。タッチ出来ればいいだけなので、高いペンを買う必要もありません。
root権限取得という特殊な状況ではありますが、USBテザリングの切り替えを随時行うのであれば、root権限は必要ない為、その部分は省略出来ます。また、本来であれば定期的にスマートフォンの再起動を行う事が望ましい為、「(ほぼ)完全にゴーグルの中に押し込む」というのはあまり望ましい環境でない事を記しておきます。
例によって「これ以上投資すんならVive買え」というラインギリギリまで攻めてるつもりですが、本来スマートフォンVRは「お手軽VR」の範疇である為、ここまでガチガチな構成にするのもどうかなと思…ってたらこんなシステム組まねーよ!

さて、とりあえずハードウェア、ソフトウェア両面から紹介しました。使用感や使用方法などは追って紹介する事として、参考になれば幸いです。

ちなみに、皆さん遠慮してるのか、面倒なのか、誰も見てないのか、どれかはわかりませんが、わかりませんが、わかんないけど、大事なことなので以下略ですが、質問などがあればコメントに頂ければと思います。
一応随時チェックしているので、答えられる内容であれば答えますし、答えられない内容であれば答えられませんし、頭の悪い内容であればシカトしますし、明らかにおかしい宣伝であれば消します。 

(16:10)

コメントする

名前
URL
 
  絵文字