OSVR HDKでカノジョの部屋へ行ってみる

 先日、OSVR HDKv1.4に対応したVRアプリケーションとして、MikuMikuTickleV05を公開させて頂いたのですが、記事を読んで頂いた方は、OSVR HDK v1.4を買うべきかどうか迷っている方も、既にOSVR HDK v1.4をお持ちの方も、ほとんど全員の方が以下のような疑問を持たれているのではないかと思います。

「OSVR v1.4で動作するアプリは、MikuMikuTickle以外に存在しないのか?」

 もちろんそのような事はないのですが、他のアプリをOSVRで動かす為には大抵の場合、MikuMIkuTickleを動かすのとは異なる手順を踏む必要があります。そして、その手順に関して、2017年1月現在、ざっと検索した限り、日本語の情報は存在しないようなのです。
 そこで、ここではOSVR HDK v1.4の、MikuMikuTickle以外での活用に関しまして、私が試した内容を紹介したいと思います。
 試した結果はあくまでも私の環境(Win10 64bit、Core i3-3240 3.4GHz、メモリ4GB、GTX650)での話ですので、他の環境では必ずしも同じ結果にはならないかもしれないのですが、OSVRに関する数少ない日本語の情報の一つとして参考にして頂ければと思います。

[OSVRで遊べるコンテンツには、どのようなものがあるのか?]
 MikuMikuTickle以外にOSVR HDKv1.4でミニメロンが動作確認したコンテンツの中で皆さんに最初に紹介すべきは、イリュージョンから2017年2月28日に発売予定の18禁タイトル「VRカノジョ」の体験版です。
 現在、公式サイト(http://vrkanojo.com/) からダウンロードする事ができます。
 公式サイトの動画を見た所、製品版では女の子をくすぐる事ができそうな感じなので、OSVR HDKをお持ちの18歳以上の皆さんも、お小遣いをためておかれると良いかもしれません。ちなみに18歳未満の方は購入できない模様です。

 ところで、実際に上記公式サイトへ行かれた方は、次のような疑問を持たれるのではないでしょうか。

「OSVR対応とは、どこにも書いてないんだけどっ!?」

 確かに「VRカノジョ」の体験版が対応するVRHMDは、Oculus Rift又はHTC Viveという事で、OSVRは対象外のように見えるのですが、実はHTC Vive対応のアプリケーションは、OSVRでも動作させる事が可能なようなのです。
 ただし、ここで言う「動作させる事が可能」というのは、「OSVR HDKのセンサー及びカメラによりアプリケーションがヘッドトラッキングを行う事ができ、それらの情報に基づいて生成した映像をHDKに表示させる事ができる」という意味です。
 幸い「VRカノジョ」体験版に関しては、後ほど説明する手順により一通り体験する事ができたのですが、他のタイトルではヘッドトラッキングの範囲や精度等がViveと異なる事等により、VR体験としての快適さという点で問題が生じる場合もあります。私の場合はそれらに加えて、PC性能の低さが問題になる場合もありました。これらについても、後ほど詳しく紹介したいと思います。
 HTC Vive用のVRタイトルは、主にSteamというゲーム配信サイトから入手する事ができます。また、現在Steamから配信される一部のタイトルはOSVRにも正式に対応しているようです。
 OSVR正式対応といっても、HMDの制御はSteamVRというHTC Vive用のランタイム経由で行われるので、OSVRで使用する為には他のHTC Vive用アプリと同様の準備が必要です。

[Steamのインストール及びアカウント作成]
 OSVRでHTC Vive用アプリケーションを起動できるようにするためには、Steamのインストールとアカウント登録が必要になります。
 上記の「VRカノジョ」体験版は、Steamから配信されているわけではないのですが、それでもSteamのアカウントは必要です。
 Steamはゲーム配信プラットホームであり、当サイトはゲーム関連の話題が中心のサイトではないので、これをご覧の皆様の中には「Steamなんて、聞いた事ないよっ。普段PCでゲームなんてやらないし、そんなよく分からない所に登録するなんて、ちょっと不安なんだけどっ!」という方も多いかと思います(実は最近までの私がそうでした)。
 Steamについてネット検索すると、「Steamのインストール、新規アカウント作成までの流れ【PCでゲームやろうぜ!】」(https://www.imamura.biz/blog/18672)といった記事が見つかります。インストールやアカウント作成方法の他に、Steamとは何なのか、登録するとどのようなメリットがあるのかといった事も書かれていますので、それらも含めて参考にされるとよろしいかと思います。

 Steamのインストール及びアカウント作成が終わったら、Steamを立ち上げ、画面左上の「ライブラリ」→「ツール」とクリックして表示される一覧の中からSteamVRを探し、インストールします。

[SteamVR及びOSVRプラグインのインストール]
 ここから先の手順については、「OSVR SteamVR Driver Tutorial - v0.1-178 - 04.June.2016 」(https://www.youtube.com/watch?v=1ZaboSUUpcI)といった、海外の方による動画などで詳しく解説されているのですが、残念ながら音声が英語ですので、この動画を参考にして私が実際にやった事を以下に日本語で紹介したいと思います。

 まずは、https://github.com/OSVR/SteamVR-OSVR にアクセスし、Windows alpha binary をダウンロードします。
 ダウンロードの為のリンクをどのようにたどればよいかにつきましては、英語が分からない方でも上記動画をよく見ればお分かり頂けると思います。
 ダウンロードファイルの拡張子は.7zですので、7-Zipという、7z形式に対応した圧縮解凍ツールで解凍します。
 解凍すると、SteamVR-OSVRというフォルダが出てきますので、その中の lib の中の openvr の中の osvr というフォルダを右クリック→コピーします。
 SteamVRのインストールが完了していれば、C:\Program Files(x86)の中に Steam というフォルダがあるはずですので、その中の steamapps の中の common の中の SteamVR の中の drivers の中に、右クリック→ペーストで先ほどの osvr というフォルダをペーストします。
 その後 drivers フォルダの中にある drivers.cfg というファイルをテキストエディタで開き、先頭に[osvr]とだけ書いた行と、1行の空白行を追加して保存します。ただし、私の環境では drivers.cfg の書き換えをする前の状態でも一見問題なく動作しており、書き換えなかった場合にどのような問題が起こるのか等について特に確認できておりません。不要な作業なのかもしれませんが、念のため元のファイルのバックアップを残した上で、やっておくとよいかもしれません。

 とりあえずここまでの作業を終えたら、OSVRの電源を投入し、OSVR Serverを起動します。
 OSVR Serverが立ち上がったら、試しにSteamの「ライブラリ」から「SteamVR」を起動してみます。
 ここで「コンポジターがフルスクリーンではありません」というエラーが出る場合は、C:\Program Files (x86)\OSVR\SDK\binの下の、EnableOSVRDirectMode.exeをダブルクリックする事により、OSVRをダイレクトモードにします。
 再びSteamVRを起動すると、今度はエラーは出なくなっていたのですが、私の環境の場合、OSVRの左目側のみに、白っぽいドームの内部のような風景が横倒しで映し出されたような状態になりました。
 この現象を解決するには、C:\Program Files (x86)\OSVR\SDK\binの中にあるosvr_central.exeをダブルクリックで立ち上げ、ToolsタブのOSVR Configuratorをクリックし、ブラウザから自動的に開く設定画面の左上にある「OSVR-Config」「Devices」「Rendering」などと並んでいる中から「Rendering」をクリックし、画面に現れる項目の中からRotationという項目を探します。私の場合、その項目が最初90になっていたのを0に変更した所、白いドーム内の風景が両目に映るようになりました。
 次に、SteamVRの小さいウィンドウのメニューから「ルームセットアップ」を選択し、立位の場合について画面の指示に従い設定を行います。

 ここまでの作業が完了したら、「VRカノジョ」体験版を立ち上げてみます。
 起動すると、設定画面が表示されますので、パフォーマンスとRender Scaleを、PCのスペックに応じて設定します。
 私の環境(Intel(R) i3-3240 3.4GHz/GeForce GTX 650)の場合、パフォーマンスを「エフェクト効果無」、Render Scaleを100%にした所、HMDの映像にチラツキが見られ、さくらベンチマークでのフレームレートは20FPS程度となっていました。
その後、Render Scaleを50%に変更した所、チラツキは見られなくなり、フレームレートは約30FPSまで改善され、ました。

 映像にチラツキが見られたり、フレームレートが低すぎる場合は、SteamVRの小さなウィンドウのメニューから設定を選択し、設定ウィンドウの左側の一覧から「開発者」を選んで、右側の設定項目の中の下の方にある「常時再投影を有効化」にチェックを入れると改善される場合があります。
 私の場合、「常時再投影を有効化」にチェックを入れた所、Render Scaleを100%にした場合でもチラツキは見られず、さくらベンチマークでのフレームレートは30FPSとなりました。そして、Render Scaleを50%にした場合のフレームレートは60FPSまで改善されました。

[OSVR ServerによるCPUパワー消費の低減について]
「OSVRな空間でモデルさんをくすぐってみる」でも書きましたが、OSVR Server を立ち上げると、私のPCの場合、CPUパワーが50%近くも消費されてしまいます。
 MikuMikuTickleV05では、CPU負荷を少しでも減らすために、LeapMotionのデータを他のPCから取得できるようにしたりしてみたのですが、その後の調査でもっと簡単かつ効果的な方法がある事が分かりました。

 https://github.com/OSVR/OSVR-Docs/blob/master/Troubleshooting/OSVRServer.md によると、C:\Program Files (x86)\OSVR\SDK\binの中にある osvr_server_config.json というファイルの中の適切な場所に、

"server": {
  "sleep": 1
},
という記述を挿入すれば、CPU負荷が低減されるようです。
「適切な場所」というのが具体的に何行目なのかは状況により異なるようなのですが、私の場合、
"drivers": [
と記述された行の直前に挿入してみた所、OSVR ServerによるCPU使用率が20%程度に減少しました。以前は50%程度だったので、30%ほど改善された事になります。

[LeapMotionをHTC Viveコントローラとして使えるようにする]
 これまでの作業で、とりあえず、「VRカノジョ」の体験版は一通り体験できるようになったのですが、製品版はViveコントローラ対応となり、くすぐりの機能もViveコントローラにより実現されるようです。
 OSVR HDKにはViveコントローラなど付属しているわけではないので、このままでは「VRカノジョ」の製品版を買っても、女の子をくすぐる事はできない事になってしまいます。
 幸いな事に、皆さんが既にお持ちのLeapMotionをViveコントローラとして使用する為のドライバを、https://github.com/cbuchner1/driver_leap/releases から入手する事ができます。
 インストール手順については、https://rinowis.com/vr/vr4 などを参考にするとよいでしょう。
 インストールが終わったら、LeapMotionをHDKに装着します。
 この状態でSteamVRを起動してHDKを装着し、手を目の前にかざすと、その手が HTC Vive のコントローラの形となって現れます。

 操作方法は、「LEAP Motion Controllers in SteamVR! How-To Guide + Gameplay」(https://www.youtube.com/watch?v=Qk2QlvKLWOA)といった動画で実演されているのですが、例によって解説が全て英語です。
 https://github.com/cbuchner1/driver_leap に書かれた説明(英語)によると、Viveコントローラーの操作とハンドジェスチャーとの関係は、下記のようになっているようです。

ViveコントローラLeapMotionハンドジェスチャー
トリガー人差し指を、銃の引き金を引くように動かす
グリップ中指、薬指、小指で拳を作るように強く握る
トラックパッド親指を小指の方向に向けると、動きの強さに応じてトラックパッドをタッチ又はクリックした事になる。
 人差し指でもう片方の手の掌を指さすと、タッチパッドの機能が実現される。
タッチパッドの特定のポイントを押すためには、指さしと並行して親指でボタンを押す動作をする。
メニューボタン掌を平にして自分に向ける。
システムボタンタイムアウトポーズ(上記動画の20:27付近)をする

[Steamのコンテンツについて]
 現在、SteamはOSVRを正式サポートしており、OSVR対応かどうかがコンテンツ毎に表示されています。
 しかしながら、私が実際に試したところ、OSVR対応の表示がなくてもOSVR HDKv1.4で快適にプレイできるコンテンツもありました。
 また、逆にOSVR対応の表示があっても、私の環境(GTX650)では描画が重すぎてまともに鑑賞できないものもありました。
 コンテンツの内容によっては、OSVR HDKのポジトラの精度の低さやヨー・ドリフトなどが、操作性に大きく影響する場合もあります。
 LeapMotion代用によるViveコントローラは、トリガーを引く時に角度が微妙に変わるため、遠くの物を選択するような操作がしづらいです。そして、この事もまた、コンテンツによっては問題となる場合があります。
 また、HTC Viveの特長である、ルームスケールを前提としたコンテンツの場合、OSVRでは操作性が極端に悪くなる場合があります。

 これらの状況をまとめると、
・OSVR対応の表示があっても、PCの性能が低すぎると問題(フレームレート低下やチラツキ等)が発生する場合がある。
・OSVR対応の表示がなくても大抵はOSVRで起動する事は可能だが、それで問題なくプレイできるかどうかは、実際に試さなければ分からない
という事になるかと思います。

 これだけの情報では、体験版のない有償のコンテンツを買おうとする場合、全く参考にならないと思いますが、Steamには無償のコンテンツや、有償でも体験版ありのコンテンツが豊富に存在しますので、それらの中からいろいろと試してみるだけでもある程度は楽しめるのではないかと思います。

[Steam以外のコンテンツについて]
 HTC Vive対応のコンテンツはSteam以外からも配信されており、先に紹介しました「VRカノジョ」以外の日本人向けのコンテンツとしましては、例えば、ザバイオーネさんという開発者様のブログ「Zabaglioneのさもありなん」(http://zabaglione.info/)から「MikuVive」等を入手する事ができます。
 MikuViveは、HTC Viveを使ってミクさんを眺める事ができるアプリです。私が試したところ、OSVR HDKでも動作するようです。くすぐって笑わせる事はできませんが、LeapMotion代用のViveコントローラーを使ってミクさんの身体に触ると反応してくれます。笑わせるには腋やフトモモではなく、頭を撫でてあげると良いようです。
 MikuViveも「VRカノジョ」体験版と同様に、Steamのコンテンツではありませんが、起動にはSteamVRを必要とします。

[再度MikuMikuTickleV05を使う場合]
 MikuMikuTickleV05を使う時は、SteamVRが立ち上がっている必要はありませんので、SteamVRを終了します。
 また、MikuMikuTickleV05はダイレクトモードには対応していませんので、DisableOSVRDirectMode.exeをダブルクリックする事により、ダイレクトモードを解除します。
 これで再びMikuMikuTickleV05が使えるようになると思うのですが、MikuMikuTickleV05を実行してモデルを選択した後に「OSVRサーバが起動していません」というメッセージが出る場合は、OSVR Serverを一旦終了して再度起動し、それでも改善しないようでしたらOSVR HDKの電源を一旦落として再投入してみてください。

[最後に]
 OSVR HDK v1.4は、現在販売されているPC用VRHMDの中では価格が最も安く、ポジトラの精度の低さを無視できる用途(例えばMMDモデルをくすぐる事など)に限れば最善の選択ではないかと思います。
 しかしながら、それだけではOSVR HDK v1.4を買う動機にはなりにくく、購入を検討するには他にどのような用途に使えるのかを知る必要があると思います。そのための数少ない判断材料の一つとして、ここに記載した内容を大いに活用して頂ければと思います。

 2017年1月現在、既に販売されているVRタイトルの中で、女の子をくすぐって笑わせる事ができるものは、おそらくまだありません。
 しかしながら、テレビアニメ「プリパラ」第33話で小学5年生の間中らぁらが叫んだとおり、人の姿をして目の前に存在しているキャラクターがコチョコチョされても笑わない事は、人に対して強い違和感を生じさせます。
 その違和感がVR体験の質を大きく低下させる重大な問題としてVR開発に関わる多くの人々に認知されれば、いずれはVRを使用する全てのギャルゲーで女の子をくすぐって笑わせる事ができるようになるかもしれません。
 そして、当サイトを訪問される多くの方々にVRのコンテンツやVR開発に興味を持って頂く事もまた、女の子をくすぐって笑わせる事ができるVRタイトルを増やす事につながるのではないかと思います。

(2017/1/3)

戻る