Help us understand the problem. What is going on with this article?

FirstVRでジェスチャを使う

More than 1 year has passed since last update.

概要

さて、今回は前回書いた「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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away