月別アーカイブ: 2014年10月

アマレコTVを使ってDK2でOculusの画面を別画面に出す方法

DK2になり、ディスプレイ周りの設定が変わり、UnityでミラーリングでOculusとノートパソコンのディスプレイの両方に画面出力することが困難になりました。このためいろいろな手法でノートパソコン側にOculusの画面を写す試行錯誤があったりしますが、比較的簡単に実現する方法が見つかりました。ただ、すべてのパソコン環境に通用するかは分かりませんので、実際の作業についは自己責任でお願いします。

まず、現状の問題点について説明しますと、Extendedモードでは、OculusはOS側で外部ディスプレイと認識されますが、ひとつネックなのは、ディスプレイが1080×1920と、縦に回転した状態になっているため、ミラーリングを適用すると、1920×1080の解像度が選択できず、Oculusのほうも画面がおかしくなり、まともに使用ができません。このため、拡張ディスプレイでOculusの画面を別画面としているため、めんどくさいことになっています。

本題に入りますと、私が使用したのはデスクトップのスクリーンキャプチャとして、アマレコTVを使いました。

アマレコTV公式ホームページ http://www.amarectv.com/

AMV4ビデオコーデック http://www.amarectv.com/buy.htm (インストールしておかないとアマレコTVが動きません、ライセンス購入までは必要なし)

このソフトはデスクトップを動画として記録できるソフトで、低負荷ながら結構高い解像度の動画を取ることができます。さすがに1920×1080の解像度で60fps以上でとることは難しいですが、様子だけだったらこのソフトでも十分対応することができます。ソフト自体のインストールの説明については割愛させてもらいます。

ここからは、ノートパソコン側をDisplay1とし、Oculusの画面をDisplay2として説明します。まずOculusを接続して、Extendedモードになっているかを確認します。なっていない場合は”Extended Desktop to the HMD”を選んで、Applyを押してください。

scr101

次にディスプレイのプロパティから、ディスプレイ2に拡張ディスプレイとしてOculusが認識されているかを確認します。縦長の画面になっている場合は回転させて横長の画面にしてください。
scr102

DK2側のディスプレイに、ウィンドウがフルスクリーンで配置できるエクスプローラなどをおいておき、フルスクリーン化しておきます。これはアマレコTVのキャプチャ範囲を決めるときに使います。
scr103

 

アマレコTVを起動させて、アマレコのウィンドウ内にある、キャプチャ範囲を決めるアイコンをクリックし、DK2側のウィンドウに持っていき、エクスプローラのメニューあたり画面を選択し、さらに青い枠を上にドラッグし、全画面を選択します。青枠内の左上の2つのアイコンの右側をドラッグし、DK2側のウィンドウにドロップしてください。1920×1080よりもはみ出て配置することもできるため、注意して配置し、1920×1080の解像度になるよう、調節をします。scr104

 

うまくいけば図のようにDK2側のディスプレイが全選択できます。青枠に左下にキャプチャする解像度が書かれていますので、1920×1080になるよう、調節をしてください。終わったら、パソコン側のディスプレイにあるアマレコのウィンドウに戻り、再度キャプチャ範囲を決めるアイコンをクリックし、範囲を確定してください。
scr105

起動するUnityのアプリケーションを、シフトキーを押さず、起動します。基本的にランタイムのドライバーはDK2を認識しているので、DK2側のウィンドウで起動するはずです。自分の環境だと、起動アプリケーションはどちらでも可能でしたが、シフトキーを押すと真っ黒な画面になり、表示されなくなりました。
scr106

下図のように、アマレコTV側にOculusの画面が映っていれば成功です。このとき、アマレコは非選択の状態で、Unityのアプリケーションが前面に来ている状態にしておく必要があります。もしアマレコTVのウィンドウをクリックしてしまった場合はUnityの画面が勝手に最小化されてしまうため、ALT+TabキーでUnityのアプリケーションを表示してください。
scr107

 

さて、表示のレスポンスですが、アマレコTV側は多少カクつきが出ますが、Oculus側はカクつきなく表示されているので、Ocufesなどで自作のOculusゲームを公開される場合でも結構使いやすいと思います。

本当はUnityのビルドツールが改善するか、Oculusのディスプレイドライバの仕様が変わればこの方法は必要なくなるのでしょうが、それまではこういった方法で凌いでいくしかなさそうです。