Unity Free版でRazer Hydraを使う

Razer Hydraはベースステーションが発する磁気を2つのコントローラで検知し、コントローラの三次元的な位置や角度を取得することができる特殊なコントローラです。

Unity内で使用できるように、Asset Storeにて公式プラグインが提供されています。

Unity - Hydra 1/2 Unity - Hydra 1/2

Sixense Unity Plug-inの使い方

Unityのメニューから「Window」→「Asset Store」をクリックします。

「Sixense」で検索し、「Sixense Unity Plug-in」をインポートします。

インポートが完了するとProjectビューのAssets内に「Plugins」と「SixenseInput」のフォルダが追加されています。

動作を確認するには、SixenseInput/DemoScenes/SixenseHands.unityのシーンを開き、Hydraを接続して再生します。

しかし、UnityのFree版では以下のエラーが発生して正しく動作しません。これはFree版がネイティブプラグイン(.dll)の読み込みに対応していないためです。

DllNotFoundException: sixense

Unity Proの30日体験版を有効化すれば普通に使えますが、ここではFree版で動作させる方法を紹介します。

Unity Free版でSixense Unity Plug-inを動作させる

まず、Unity.exeのインストールフォルダ(C:\Program Files\Unity\Editor)に、プロジェクトフォルダのAssets→Plugins内にあるsixense.dllをコピーします。

次にProjectビューからSixenseInput/Scripts/SixensePlugin.csを開いて153行目以降をすべて以下のように変更します。

変更前 : [DllImport( "sixense", EntryPoint = "sixenseInit" )]
変更後 : [DllImport( "sixense.dll", EntryPoint = "sixenseInit" )]

再びSixenseInput/DemoScenes/SixenseHands.unityのシーンを開き、Hydraを接続して再生すると、今度はエラーなく実行されます。

Unity - Hydra 2/2 Unity - Hydra 2/2

左右のスタートボタンでキャリブレーションし、動作を確認して下さい。ボタンやトリガーで指が動きます。(私の環境では初回のキャリブレーション時に固まる現象が見られましたが、停止して再生しなおしたら正常に動きました)

参考ページ

おわりに

手が表示できたので、MMDモデルとインタラクションさせたいところですが、そのまま触っても素通りしてしまいます。

他のモデルと衝突させるには各指にcolliderを作成したりすればよさそうですが、現在のところその先がさっぱり分かりません。

関連記事

blog comments powered by Disqus