Cross Road

Unity、VR、MR、ARを中心とした技術ブログ

PSMoveを傾けて仮想ジョイスティックを作る

ニコニコ超会議で出展した"Unbounded Space"にはPSMoveを使っていましたが、開発中、仮想のジョイスティックみたいにできたらいいなー、と思ってました。

ちょうどきっかけもあったので原理確認だけ試してみました。


こんな感じに動かすことができます。

youtu.be

1. 使ったもの

・PSMove本体

・UniMove

www.copenhagengamecollective.org


※UnimoveはMacでしか動きません(2014/3/31時点)。またアプリケーション化するには少し手間が要ります。下記を参照ください。

www.crossroad-tech.com

2.手順

2-1. Unimoveを入手し、Unityプロジェクト内にインポートします。

2-2. cubeオブジェクトを配置し、scaleを例えば(100,400,100)とします。

2-3. UniMoveTest.csをcubeにアタッチします。

2-4. UniMoveTest.cs/Updete()内に以下の1行を追記します。

void Update() 
	{
		foreach (UniMoveController move in moves) 
		{
                //省略
                this.gameObject.transform.rotation = Quaternion.Slerp(this.gameObject.transform.rotation,Quaternion.Euler(move.Acceleration.x*-90.0f,move.Acceleration.y*90.0f,move.Acceleration.z*90.0f),0.5f );
                }
        //省略
      }

3. 感想

UnboundedSpace2の開発背景にも書きましたが、OculusRiftを使うと目の前が見えなくなるので従来コントローラが使いづらいという問題があります。

また、現実での距離感が掴めないので有線コントローラの線を長く取るか、線が危ないので極力無線化するなどの配慮が必要になる気がしています。

これだったら無線で使えるし、体験者とPCの距離もそこまで気にしなくてよいというのがよいですね。