zSpaceでのアプリケーションの開発・実行にはNVIDIAまたはATIのグラフィックカードが必要です。NVIDIAの場合、GeForce系のカードでは動作せず、QUADRO系のグラフィックカードが必要です。
今回はNVIDIA Quadro K2000Dを用いて開発を行いました。
またzSpaceとNVIDIA Quadro K2000Dの接続にはDVIを用いますが、立体視用の情報はFullHD2つ分のため、DVIデュアルリンクケーブルを利用します。DVIシングルリンクケーブルと違い、ピンが全部埋まっているのが特徴です。
NVIDIA QuadroとzSpaceをDVD-Dケーブルで接続します。この段階ではまだUSBケーブルの接続は行いません。
NVIDIAコントロールパネルで下記の設定を行います。
3D設定の管理 – グローバル設定 -3D App DefaultSettings – ステレオを有効にする をオン
3D設定の管理 – グローバル設定 -ベースプロフィール – ステレオを有効にする をオン
続いてzSpace用のドライバをこちらからインストールします。
zSpace100と200ではドライバが異なりますので注意しましょう。
zSpace System Install
SDK 3.0 Install
をインストールします。
インストールが完了するとコントロールパネルに「zSpace Control Panel」アイコンが追加されていることを確認します。
zSpaceとPCをUSBケーブルで接続します。USBケーブルを接続するとデバイスドライバのインストールが始まりますので完了するまで待ちます。
デバイスドライバのインストール完了後、「zSpace Control Panel」を起動しましょう。
初回起動時にはSystem check (キャリブレーション)が実行されますので指示に従って完了させましょう。
各ステップでは、緑のマークがついているもの(zSpace用メガネまたはスタイラス)を利用します。
画面は何色に見えるかを答えます。上記スクリーンショットでは赤色に見えますが、実際には左目用に赤、右目用に青が表示されるためメガネなしで見ると紫色に見えます。
左右の画像に違いがありますか?こちらはメガネをかけてみると右側の画像だけ立体的に見えます。
メガネのトラッキングテストを行います。zSpaceのメガネには位置トラッキングの機能があり、メガネの位置情報によりモニタに表示される映像が、利用者の視点に合わせて変わるようになっています。
メガネをかけた状態で頭を動かし、xマークを○マークに次々に合わせていきます。
続いてスタイラスのボタンの動作確認です。各ボタンを順番に押していきましょう。
スタイラスのライトが赤->緑->青の順に点滅することを確認してください。
スタイラスのバイブレーション機能が正常に動作することを確認してください。
スタイラスのトラッキング機能のチェックを行います。
スタイラスを動かしxマークを○マークに次々に合わせていきます。
zSpaceのシステムチェックが完了しました。おめでとうございます。
初回のシステムチェックが完了すると、zSpace Control Panelを立ち上げることが可能になります。
続いてUnityで開発できる環境を構築します。Unityでstereoscopic3d対応のアプリケーションの開発を行う場合、オプション付きでUnityを起動する必要があります。Unity4、Unity5のそれそれをオプション付きで起動するコマンドは下記のようになります。また起動用のバッチファイルを用意したのでダウンロードできるようにしておきます。
Unity4用 (Unity4 Stereo3D.bat)
"C:\Program Files (x86)\Unity\Editor\Unity.exe" -force-opengl -enable-stereoscopic3d
Unity5用 (Unity5 Stereo3D.bat)
"C:\Program Files\Unity\Editor\Unity.exe" -force-opengl -enable-stereoscopic3d
Windows8.1ではバッチファイルを実行すると「WindowsによってPCが保護されました」と表示されバッチファイルが実行されません。
「詳細情報」をクリックしてください。
「実行」ボタンが現れるのでクリックしてください。
続いてこちらからUnity用Pluginをダウンロードします。
以下、Unity4での利用を前提にしています。
Unityで新規プロジェクトを作成し、ダウンロードしたZSCore.unitypackageをインポートします。
テスト用のオブジェクトを適当に配置した後
ZSCoreプレハブをMain Cameraの子オブジェクトとしてシーンに追加します。
実行すると3Dステレオ表示されることが確認できます。メガネを掛けて頭を動かすと視点によりUnityゲームビュー上に表示される内容が変化することも確認できるかと思います。スクリーンショットではステレオ表示の感動が伝わらないのが残念。
ZSCoreスクリプトのパラメーターを設定することで3D表示の見え方を調整することが可能です。
また、Windows – zxSpace – Core Diagnostic から設定ウィンドウを開き、各種パラメーターの設定も可能です。
注意点1
ビルドしてexeファイルを作成する際の注意点です。
現時点(2015年5月)ではzSpaceのUnityプラグインが64ビット対応していません。ビルド時には必ずArchtectureをx86に設定します。
(Unity5はエディターが64ビット動作ですので、エディターでの確認時には3D表示できません。)
次に、ビルドしたexeファイルもUnity起動時と同様にオプションを指定しなければステレオ表示されません。
exe実行用のバッチファイルを用意しておきます。
zSpaceTest.exe -force-opengl -enable-stereoscopic3d
バッチファイルから実行すると、ステレオ表示されたウィンドウが立ち上がります。
注意点2
zSpaceのUnityプラグインは、インポートすると、Asstes/Pluginsフォルダ以下にDLLをコピーします。
このフォルダは32ビット64ビットどちらでビルドしてもこのなかのDLLが使われることを意味しますが、zSpaceのdllは64ビット対応していません。
つまり32ビットビルドすれば正常に動作します。
ここで、このプロジェクトに32ビット、64ビット別々のDLLが含まれるプラグインをインストールしたとします。
具体例としてLeapmotionプラグインをインポートしてみましょう。
PluginsフォルダにLeapmotion関連のDLLがコピーされます。
ではこの状態で先ほどのシーンを実行してみるとDllNotFoundExeptionエラーが発生するようになり実行できません。
これは、Leapmotionプラグインが
Pluginsフォルダ以下に
x86
x86_64
というフォルダを生成したことによりUnityが32ビットdllと64ビットDllを区別するようになったことによる問題です。
zSpace関連のDLLファイルをx86フォルダ内にコピーしましょう。
これで動作するようになりました。