バーチャルリアリティ
バーチャルリアリティとは、ヘッドマウントディスプレイや CAVE、トラッカーなどの様々な周辺機器を使用して仮想世界をシミュレーションする技術です。特定の視点からの画面を表示するのではなく、ユーザーの立ち位置からの光景を、頭に装着したディスプレイに表示したり壁に投影することで、まるで眼の前に同じ環境が存在するかのような効果を生み出します。
最近になって多数の周辺機器が手頃な価格でリリースする予定となっており、誰もが没入型の仮想現実を堪能できる日も近くなっています。大抵の周辺機器は Linux を部分的あるいは完全にサポートしており、AUR のパッケージも存在します。
互換表
凡例:
- 緑色: ネイティブでサポート
- 黄色: ツールキットによるサポート、あるいは部分的なサポート
- 赤色: サポートが不完全
- 無色: サポートしているかどうか不明、あるいは予定はあるがまだ未対応
Oculus Rift | OSVR | OpenVR | Leap Motion | Razer Hydra | |
---|---|---|---|---|---|
Dolphin (オリジナルの VR フォーク) | 部分的 | ||||
Dolphin (公式の OSVR サポート) | OSVR | OSVR | OSVR | ||
Minecrift (Minecraft VR) | (予定) OSVR-SteamVR | (予定) | (予定) OSVR | ||
Janus VR | OSVR | ||||
Team Fortress 2 | OpenVR | OSVR-SteamVR | うまく動いたり動かなかったり | OSVR | OSVR |
Half Life 2 | 黒色と単色が表示されるだけ | OSVR-SteamVR | 黒色と単色が表示されるだけ | OSVR | OSVR |
VRUI VR ツールキット・デモ | |||||
4089: The Ghost Within | OpenVR | OSVR-SteamVR | Linux のコンポジタを Valve が修正するまで動作せず | OSVR | OSVR |
Wine のゲームやプログラム | OVRSDK バージョン <=0.5.0.0, oculus-wine-wrapper-gitAUR と wine-unity3d-gitAUR を使用 | OSVRTrackerView は完全に動作するが、Unity デモは起動時にクラッシュ |
周辺機器とツールキット
Oculus Rift
Oculus Rift を参照してください。
OpenVR
OpenVR は Valve による VR 開発のオープン API を作成しようという試みです。残念ながら、API はオープンですが、実際のデフォルト実装 (SteamVR) はオープンではありません。しかしながら、OSVR-SteamVR プラグインを利用することで OSVR (プラグインによって様々な製品をサポートするオープンなツールキット) を OpenVR の代替実装として使うことができ、OSVR に対応している周辺機器で OpenVR 互換のゲームやプログラムを利用できます。
セットアップ
Steam をインストールして、ツールメニューから SteamVR をインストールしてください。
トラブルシューティング
設定あるいは起動時のエラー
SteamVR/OpenVR は設定ディレクトリ ~/.openvr
を作成しますが、バージョンが変わることで設定に誤りが生まれることがあります。ディレクトリを削除して、SteamVR を一度アンインストールしてから再度インストールしてください。
特定の設定で Rift を利用できなくなるという問題も存在します。代替手段として OSVR-SteamVR ドライバーと OSVR-Oculus-Rift プラグインを利用する方法があります。
OSVR
OSVR は Sensics, Inc (昔から存在する VR 会社) と Razer による VR の完全(あるいはほぼ完全)にオープンなソフトウェア API を作成しようという共同の試みです。末端の開発者が個別のヘッドセットを少しばかりの関数にフックするだけで完全なサポートを得ることができます。幅広い数の周辺機器をサポートしており、JSON の設定ファイルで柔軟に設定をすることができます。
OpenVR 実装として利用することができるプラグインも用意されており、OSVR がサポートしている周辺機器で OpenVR/SteamVR のゲームを遊ぶことが可能です。
セットアップ
osvr-core-gitAUR と、使用しているデバイスごとに必要なプラグインをインストールしてください。現在のところ、以下のプラグインが存在します:
OSVR を使って SteamVR/OpenVR のゲームやアプリケーションを使用したい場合、osvr-steamvr-gitAUR をインストールしてドライバーから SteamVR のインストールディレクトリにシンボリックリンクを張ってください。
以下のコマンドを実行することで、OSVR サーバーが起動してバックグラウンドで実行されます:
# osvr_server /usr/share/osvrcore/sample-configs/your_device_config.json
設定は必要に応じて適宜カスタマイズしてください。
インストールが成功してトラッカーが利用できることをテストするために、osvr-tracker-viewer-gitAUR をインストールして OSVRTrackerView
を実行してください。OSVR が取得したトラッカーの軸のセットが確認できるはずです。確認できない場合、osvr_print_tree
を実行してトラッカーが認識されているか、あるいは設定に問題が存在するのおか確認してください。
Leap Motion
The Leap Motion is an incredibly affordable hand tracker which can easily be mounted on the faceplate of an HMD to allow you to interact with virtual objects. Unfortunately, the latest Orion software is not available for Linux while it is awaiting porting, so the currently available tracking is functional but excessively buggy. As such, it is only really suitable on Linux for social interaction, but seeing as it costs less than 1/10th what an HMD or equivalent tracking system, it is still a fairly useful device.
セットアップ
leap-motion-driverAUR と任意で leap-motion-sdkAUR をインストールしてください。残念ながら、現在のところコンパイルは通りますが osvr-leap-motion-gitAUR が壊れているため、OSVR/SteamVR/OpenVR アプリケーションで Leap Motion を使うことはまだ出来ません。
設定するには、leapd.service
を有効化・起動して LeapControlPanel
を実行してください。トラッキングが機能していることをテストするには、パッケージに含まれている Playground
デモを起動してください。
対応ソフトウェア
Rift と Linux で問題なく動作するアプリは今のところひと握りです。その中には AUR に存在するものもあります。
Dolphin (オリジナルの VR フォーク)
dolphin-emu-vr-gitAUR はゲームキューブのエミュレータです。パッチを適用することで完全なヘッドトラッキングのステレオスコープレンダリングを行うことができ、さらに VR でゲームを上手く動作させるためのカスタマイズも多数施されています (例えば、カリング処理を無効化して世界全体を見渡せるようにしています)。
Dolphin プロジェクトが公式に OSVR のサポートを開始したため、プロジェクトは休止しています。
Dolphin (公式の OSVR サポート)
The Dolphin project has begun to work on adding support for VR officially using OSVR, available through the package dolphin-emu-osvr-gitAUR. It can even use OSVR's path tree inputs as controller inputs, such that you can use a pinch or sixaxis controller input as a wiimote input. Support is limited in places however, as the fork is not as far along as the original Oculus-only fork was.
Wine のゲームやプログラム
A number of applications have some level of compatibility when using Wine, but often require some level of tweaks to make them function as expected.
oculus-wine-wrapper-gitAUR は Wine を動かす時に SDK の Linux 版と Windows 版の違いをうめるためのユーティリティです。Wine アプリケーションが使用できる共有メモリコンテキストを作成して、アプリからネイティブの Oculus SDK にアクセスできるようにします。wineprefix に SDK をインストールする必要はありません。
Unity ゲーム
Unity を使用しているゲームの性能を最大限発揮するには、-force-opengl
で強制的に OpenGL モードにするのが最適です。しかしながら、wine にパッチをあてないとこのモードを使うことはできません [1]。wine-unity3d-gitAUR パッケージを使うことでゲームをネイティブの OpenGL で動作させることが可能になります。残念ながら頻繁にビデオモードなどの設定が変わってしまうので、画面設定が必要になります。さらに、ネイティブの OpenGL なので、nvidia の __GL_THREADED_OPTIMIZATIONS でパフォーマンスが著しく上昇します。コマンドは以下のようになります:
env __GL_THREADED_OPTIMIZATIONS=1 oculus-wine-wrapper UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl
あるいは oculus-wine-wrapper-gitAUR を使用する場合:
env __GL_THREADED_OPTIMIZATIONS=1 oculus-wine-wrapper UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl
Minecrift (Minecraft VR)
Linux サポートはメインラインに入りましたが、Linux サポートを完全に機能させるアップデートはまだリリースされていません。最新の JRift (ネイティブの java rift ランタイム) ビルドで既存のバージョンの Minecraft を動作させる方法は こちら に書かれています。
さらに、JRE7 よりも JRE8 の方がパフォーマンスが上がるという報告が多数上げられています。
JanusVR
JanusVR は 3D のウェブサイトを探検できるアプリケーションです。AUR のパッケージが存在します: janusvrAUR。
JanusVR のコードがアップデートされても AUR パッケージは自動的にアップデートされません。その場合はパッケージを再ビルドしてください。
Leap Motion サポート
The Leap Motion allows you to be more expressive with gesture input, seen by other people within the world. You will want to mount your Leap to the front of your HMD and ensure that you are using the default avatar.