バーチャルリアリティ

提供: ArchWiki
2017年1月21日 (土) 20:36時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

バーチャルリアリティ (VR) とは、ヘッドマウントディスプレイや 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-gitAURwine-unity3d-gitAUR を使用 Trackers は完全動作。Render Manager 以外の Unity デモは動作しますが不安定。Render Manager を使用するデモは表示されません。

周辺機器とツールキット

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, osvr-leap-motion-gitAUR, leap-motion-sdkAUR (任意) をインストールしてください。

設定するには、leapd.service を有効化・起動して LeapControlPanel を実行してください。トラッキングが機能していることをテストするには、パッケージに含まれている Playground デモを起動してください。

対応ソフトウェア

Rift と Linux で問題なく動作するアプリは今のところひと握りです。その中には AUR に存在するものもあります。

Dolphin (オリジナルの VR フォーク)

dolphin-emu-vr-gitAUR はゲームキューブのエミュレータです。パッチを適用することで完全なヘッドトラッキングのステレオスコープレンダリングを行うことができ、さらに VR でゲームを上手く動作させるためのカスタマイズも多数施されています (例えば、カリング処理を無効化して世界全体を見渡せるようにしています)。

Dolphin プロジェクトが公式に OSVR のサポートを開始したため、プロジェクトは休止しています。

ノート: When using this application with the Rift, it works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated to minimize latency.

Dolphin (公式の OSVR サポート)

Dolphin プロジェクトは OSVR による VR のサポートを公式に追加する作業を開始しています。dolphin-emu-osvr-gitAUR パッケージをインストールすることで利用できます。OSVR のパスツリー入力をコントローラの入力として扱うことができ、pinch あるいは sixaxis コントローラの入力を wiimote の入力として使うことができます。ただしサポートは限られています。

Wine のゲームやプログラム

Wine を使用することで動作するアプリケーションは多数存在しますが、正しく機能させるには設定が必要な場合もあります。

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 の方がパフォーマンスが上がるという報告が多数上げられています。

ノート: When using the Rift, this application works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated. Unfortunately, as of 5/12/15 the ingame GUI will display as an elongated 9:16 rectangle, as opposed to staying at the screen ratio. This is usable but not ideal.

JanusVR

JanusVR は 3D のウェブサイトを探検できるアプリケーションです。AUR のパッケージが存在します: janusvrAUR

JanusVR のコードがアップデートされても AUR パッケージは自動的にアップデートされません。その場合はパッケージを再ビルドしてください。

ノート: This application works correctly with Portrait (Direct) Mode (as of 42.3), and should be run with the Rift un-rotated.

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.

Tips and tricks

OpenAL のバイノーラル音声を有効にする

ゲーム#OpenAL とバイノーラル音声を参照。