Oculus RiftのルームスケールとKinect v2を同時に使用した時に困った話のメモ
不正確な情報が多い記事なので、参考程度に留めてください。
問題の要約
現象
Kinect v2のフレームレートが著しく低下する現状が発生しました。
同時にOculus Rift側では3台のセンサーを用いてルームスケール機能を使用していました。
原因
恐らくUSB帯域不足による問題だと判明しました。
USBを接続するホストコントローラーには使用できる帯域に制限があるため、それを超えたデータ転送を行えないということらしいです(多分)。
参考: USB 2.0と3.0について知っておくべき10のポイント - page4 - builder by ZDNet Japan
以下の通り、RiftとKinectそれぞれで多くの帯域を使用するとのことでした。
If you connect three Oculus sensors—each sending and managing a ton of data locally—you can run into problems when they try to send more data than the USB host controller can handle.
(意訳) 3台のセンサーを繋いで制限以上のデータを送ろうとすると問題が発生しうる。
Oculus Roomscale: Balancing Bandwidth on USB | Oculus
Kinect for Windows v2 センサーは、USB コントローラーの USB3 帯域幅をかなり消費します。
Windows アプリが Kinect for Windows v2 センサーで機能しない
解決方法
- ホストコントローラーに接続するUSBを減らす
- ホストコントローラーを追加し、接続先を分散させる
- (Riftではなく) HTC Viveを使用する
以下でそれぞれについて説明します。
(1,2について) ホストコントローラーの種類
EHCI(Enhanced Host Controller Interface)がUSB 2.0対応、xHCI(Extensible Host Controller Interface)がUSB 3.0対応だそうです。
[デバイスマネージャー] > [ユニバーサルシリアルパスコントローラー]で確認すると、僕のPCにはxHCIが1つとEHCIが2つ接続されているようです。xHCIがEHCIの機能を内包しているかどうかが分からなかったのですが、少なくとも3.0に対応しているxHCIが1台なので、現状で接続先を分散させる対処は恐らくできません。
参考: USB ホスト コントローラー ‐ 通信用語の基礎知識
(3について) HTC Viveのルームスケール
Oculus Riftのルームスケールは、Rift本体から飛ばした赤外線を、周囲に設置したセンサーで認識することで実現しています。そのため、センサーが受け取った情報が取得するためにセンサーとPCを接続する必要があります。
対するHTC Viveですが、こちらはセンサーから飛ばした赤外線を本体で認識する仕組みになっています。この違いにより、Viveのセンサーに必要な接続は、電源供給のためのACアダプターのみとなります。そのため、今回のようなUSB帯域を圧迫するような問題は解決できると思います。
続きを読むUnityでビルド用のコンポーネントを後から導入する
Unityのインストール時に選択するコンポーネントが後から必要になってくることがあると思います。しかし、Unityのインストールからやり直すのは時間もかかりますし、面倒です。
そこで、特定のコンポーネントのみをあとから導入する方法を紹介します。
続きを読む
【CEDEC 2016レポート】 BIOHAZARD7 resident evil におけるゲームオーディオワークフローとシステム―コストをかけずにクオリティを高めるために改善したこと
5分で分かる内容まとめ
登壇者
小島 健二 株式会社カプコン CS制作統括 プロダクション部 サウンド開発室 サウンドプログラマー
鉢迫 渉 株式会社カプコン CS制作統括 プロダクション部 サウンド開発室 サウンドディレクター
概要とミッション
効率良く効率の良いサウンドシステムを作った話
メインコンセプト
「恐怖」
ホラー性の深化のため、圧倒的没入感のためTPSからFPSにし、フォトリアルな表現を用いる。
サウンドコンセプト
「聞き取る恐怖」 プレイヤーは生きるために耳を澄まし、聞くことで恐怖を感じるジレンマを表現。
続きを読む