Gear VRのトラックパッドでドラッグ - ReDo

2015年5月 5日

Gear VRのトラックパッドでドラッグ

GearVRの入力を使う
http://tamagokobo.blogspot.jp/2015/05/gearvr.html

パッドのどの部分を触ってもまずはX:1280,Y:720の座標が返されます。 ドラッグで動かすと触った部分を起点として座標が変化します。 なのでタッチパッドのどの部分を触ったかという判定は取れないようです。

おおなるほど。

マウスやスマホ側のタッチパネル直接操作時との互換性を考えて、タッチした瞬間のXY座標を保持しておく作戦でドラッグを実装してみます。

力技ですがOVRPlayerControllerに以下の様な感じのを入れるとだいたいドラッグで移動ができるようになりました。良い操作モデルはまた別に考えることにします。

  :
	private bool isDrugging = false;
	private float startX;
	private float startY;
	private float moveX;
	private float moveY;
  :
		if (Input.GetMouseButtonDown (0)) {
			if (!isDrugging) {
				// down
				isDrugging = true;
				startX = Input.mousePosition.x;
				startY = Input.mousePosition.y;
				moveX = 0;
				moveY = 0;
			}
		} else if (Input.GetMouseButtonUp (0)) {
			isDrugging = false;
		}
  :
		if (isDrugging) {
			float deltaY = Input.mousePosition.y - startY - moveY;
			if ((deltaY < -0.1f) || (0.1f < deltaY)) {
				moveDirection.y += deltaY * 0.01f;
				moveY += deltaY;
			}
		}
  :
		if (isDrugging) {
			float deltaX = Input.mousePosition.x - startX - moveX;
			if ( (deltaX < -0.1f) || (0.1f < deltaX) ) {
				euler.y += deltaX * rotateInfluence * 0.1f;
				moveX += deltaX;
			}
		}
  :

○その他Gear VR雑記

・カメラの移動については回転+上下モードや平面WASDドラッグ移動モードを実装してみましたが、あまり直観的でないです。「左右ドラッグで回転+上下ドラッグでカメラが向いている方向に前後移動」が少々操作性が悪いのですが、単一モードで一応空中を自由に移動できる気がします。
・Gear VR Homeアプリに野良アプリを追加する方法が分かりません。AndroidManifest.xmlだけではダメの模様。
・Loadの問題なのか、楽曲とモーションがずれる。もうvmd直した方が早そう。
・MMD4Mecanimで物理演算を有効にしていると、LoadLevelするたびに何かが二重起動しているらしく重くなっていく。後でおいかける。

コメントする