OculusQuest技術

OculusQuestでゲームを作る話

未分類

ハンドトラッキング対応完了?

投稿日:

腕を振ると移動するという仕組み作りました。

public class PlayerMove : MonoBehaviour
{
    public GameObject CenterCamera;

    OVRInput.Controller LeftCon;
    OVRInput.Controller RightCon;

    float speed = 1.0f;

    // Start is called before the first frame update
    void Start()
    {
        LeftCon = OVRInput.Controller.LTouch;
        RightCon = OVRInput.Controller.RTouch;
    }

    // Update is called once per frame
    void Update()
    {
        float accLeft = OVRInput.GetLocalControllerAcceleration(LeftCon).magnitude;
        float accRight = OVRInput.GetLocalControllerAcceleration(RightCon).magnitude;

        float walkSpeed = 5.0f;

        if ((accLeft >= walkSpeed && accRight >= walkSpeed) && ((OVRInput.Get(OVRInput.RawButton.LIndexTrigger) == true) && (OVRInput.Get(OVRInput.RawButton.RIndexTrigger) == true)))
        {
            var moveDirect = CenterCamera.transform.rotation.eulerAngles.y;
            var moveQuate = Quaternion.Euler(0, moveDirect, 0);

            if ((accLeft + accRight) > 50.0f)
            {
                speed = 3.0f;
            }
            else
            {
                speed = ((accLeft + accRight) / 50.0f) * 3.0f;
            }

            transform.position += moveQuate * Vector3.forward * speed * Time.deltaTime;
        }
    }
}

https://qiita.com/nanaki_pg/items/ba7fcf572cc74de41d65
ベースはこちらを参考にしております。
ありがとうございます。

実験してみて思ったこと。
なるべく左右の腕が動いているときに移動としたい。
両腕が同時に前に出たり、上にあげたりする時は移動しない。
など色々考えてみましたが、左右が動いている時というのは解決済み。
今のソースでは同時に腕を動かせば移動が始まるので、なんとか対応したかったけど、時間の関係であきらめ。
最終的にトリガーボタンを左右押している時に腕を動かすと歩く、早く動かすと走るという感じ。
これでロボット操作か、鬼ごっこか何かは作れそう。
まだ動くことを確認しただけなので、なんとも言えませんが、なんとなく身体を動かして移動するというのはVR酔い軽減になりそうな感じ。
物をつかみながら移動ができるのか(できるはずだけど)も実験したい。
またハンドトラッキングが将来的に採用されても、ドライバ次第だけど動くと思う。
トリガーボタンの代わりに手を握っているかを調べればいいかな。
グーの状態で手を動かせば移動ということです。
・・・イライラ棒なのですが、おそらく作れると思っていますが、その前にデバッグするほど広い空間がありません。
デバッグ中にガーディアンからはみ出したり壁に当たったりするな。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

no image

Twitterを始めました

https://twitter.com/pixy50355681 Twitterを始めました。理由はUnrealEngineの勉強具合を残していくためです。ノウハウとかじゃなくて、どこまで学習したか記 …

no image

テストの度にビルドするのめんどい2

VirtualDesktop、入れてみました。 結果・・・やっぱやめました。 理由はTouchコントローラーがうまく動かなかったこと。 残念ですが、またその都度ビルドしますね・・・

no image

HMDのエミュレーション

OVRManager.csの void Awakeで初期化してるんだけど・・・ どうやらOpenVRを選んだ時だけエミュレーションできるみたい。 ということで初期化の条件をコメントアウトしたらできまし …

no image

ALVRを試す

先日「通りすがり」さんに紹介をいただいたALVRをインストールして試してみました。結果、ちゃんと動いています。まだ手の表示までは試していませんが、ビルドせずにUnityEditor内で動いていました。 …

no image

Oculus Integration 1.40登場!

とうとうバージョンが上がりました。とりあえずインポートして実機で動作してみましたが、1.39のまま上書きでちゃんと動いています。どこがどうなったのかリリースノートもまだ出てないのでわかりません・・・ …