LoginSignup
2
2

More than 5 years have passed since last update.

FirstVRでジェスチャを使う

Last updated at Posted at 2018-11-25

概要

さて、今回は前回書いた「FirstVRでHello World」に続き、FirstVRでジェスチャを使って見たのでそのメモです。

実際に動かしたデモ動画はこちら↓

重力系の魔法使い感を出してみましたw

ジェスチャを司るFVRGestureManager

FVRlibにはFVRGestureManagerという、ジェスチャを管理するクラスがあります。
このクラスにはジェスチャに関するイベント処理や状態確認ができるプロパティがあるので、今回はこれを利用して冒頭の動画のような処理を作ってみました。

なお、今回のジェスチャはこちらの開発者サイトにアップされている動画(FirstVR SDK Tutorial 4: Gestures)を参考にしました。

また、FVRGestureManagerのドキュメントはこちらです→ FVRlib.FVRGestureManager クラス

イベントハンドラを設定する

FVRGestureManagerクラスにはOnSwipeUpなどの、スワイプを検知した際のGestureEventHandler型のデリゲートが設定されています。
今回のデモはこれにハンドラを登録して処理を行っています。

_fvr.gestureManager.OnSwipeUp += GravityOff;
_fvr.gestureManager.OnSwipeDown += GravityOn;

こんな感じで、スワイプアップを検知したら重力オフ、スワイプダウンを検知したら重力オン、みたいな感じにしてます。
ただ、動画では成功したところだけを載せていますが、若干検知が遅れたりすることがあったので、これを利用したシビアなゲームはあまり適さないかもしれません。
ちょっとした演出に使う程度ならありかも?

なお、この他にも以下のイベントが購読できるようになっています。

FVRlib.FVRGestureManager
public event GestureEventHandler OnSwipeLeft;
public event GestureEventHandler OnSwipeRight;
public event GestureEventHandler OnSwipeDown;
public event GestureEventHandler OnSwipe;
public event GestureEventHandler OnShake;
public event GestureEventHandler OnFVRTap;
public event GestureEventHandler OnMSVarPeak;
public event GestureEventHandler OnSwipeUp;

また、イベント以外にもジェスチャオブジェクトの状態をチェックして処理を行う(Input.GetKey的なやつ)こともできます。

ジェスチャオブジェクト
public FVRGesture swipeD;
public FVRGesture swipeU;
public FVRGesture swipeR;
public FVRGesture swipeL;
public FVRGesture fvrTap;

これを利用する場合は以下のようにして、Updateメソッド内で評価することができます。

triggeredを利用する
if (_fvr.gestureManager.swipeD.triggered)
{
    // do anything.
}

FirstVRのSDKには、デバイスから取得できるデータをビジュアライズしてくれるサンプルシーンがあるのでそれを使って、どんな値がどれくらい取れるかをチェックしてみると分かりやすいと思います。

SDKについているViewer↓
Viewer

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2