unity webXR exportでMeta Quest2のスティック入力を取得して移動させてみた備忘録

unity webxr export 移動Meta(Oculus) Quest2

バーチャル3Dクリエイター神部まゆみです(*^-^*)

この記事は、unity webXR exportでMeta Quest2のスティック入力を取得して移動させてみたからそのメモ。

unity webxr exportについては以前書いたのでそちらを参照。

unity-webxr-exportでブラウザでWebVR!LookAnimatorでVRoidモデルとVR空間で遊べたよ
バーチャル3Dクリエイター神部まゆみです(*^-^*) 前回の続きで、unity-webxr-exportをいじって、Oculus Quest2でWebVRを動かして行こうと思うよ。 前回の記事はこちら。 ...
unity-webxr-exportをいじったメモ。VRでバーチャル女子のおっぱいを鷲掴みできたでござるぞ( *´艸`)
バーチャル3Dクリエイター神部まゆみです(*^-^*) 今回はunity-webxr-exportをいじっていくよ。 前回の記事はこちら。 機能を網羅的に調べていこうかと思ったけど、VRでおっぱいを掴もうと...

————-PR———————-

現在、人気商品が最大70%以上オフで買えるアマゾンタイムセールをやってるみたいです。

amazonタイムセール祭り 最大70%以上オフ

ゲーミングノートなども安くなっているので、欲しい商品はこの機会に買っておくと良いかも。

————————————-

参考にした頭のいい先輩のページ

とても参考になりました。

ありがとうございます(*^-^*)

Unity + WebXR開発メモ(Oculus Quest、Chrome、Firefox対応)
UnityでWebXR対応ページを作る方法についてメモしています。

最初に自作パッケージを作ってpackagesフォルダに自作スクリプトを入れた

これは前回書いた。

unityで自作カスタムパッケージを作ってPackagesフォルダに入れてみたメモ
バーチャル3Dクリエイター神部まゆみです(*^-^*) この記事はunityで自作カスタムパッケージを追加してみたからそのメモ。 自分用備忘録程度なので、一から学びたい人は他の先輩の記事を見たほうがいいかも(;^_^A ...

Assetフォルダにスクリプトを入れても、packagesフォルダにあるWebXRのスクリプトが参照できなかったため。

もしかしたらasmdefファイルの設定をちゃんとやればできるのかな?どうだろ。

スティックの状態を取得してデバッグ出力してみる

先輩のページにコードが書いてあったのでその通りに書いてみた。

Unity + WebXR開発メモ(Oculus Quest、Chrome、Firefox対応)
UnityでWebXR対応ページを作る方法についてメモしています。

スクリプトは後述。

unity webxrcontroller.csの中にある、GetAxis2D関数を使えばいいっぽいです。

画面にデバッグログを表示する

ちゃんとスティックの値を取得できてるか不明なので、デバッグログを表示したい。

でもGetAxis2DがVector2型だったので、普通にキャンバスのテキストに表示させようとしたら型不一致のエラーが出た(~_~;)

 

でもこの頭のいい先輩のスクリプトはまんまコピペで動作したので助かった。

ありがとうございます(*^-^*)

【Unity】画面にログを表示する | KAZUPON研究室
端末単体でリアルタイムにログを確認できると結構便利。そんな訳で端末の画面上にログを表示してみます。 サンプルコード 適当なGameObjectに以下のコンポーネントを追加してくだ...

BitArrayというものが何か全く分かっていないけど、とりあえずデバッグログは表示できました。

Meta Quest2で見てみたら、ちゃんと左スティックを傾けたら数値が変わったので認識されてるっぽいです。

返り値を上手くトランスフォームに代入すれば動かせるかな。

スティック検知でカメラを動かすには?

カメラというかWebXRCameraSetごと動かす。

まずカメラの向きを取得して、左スティックで前後左右移動、右スティックで向きを変える感じ?

とりあえず向きは考慮せずに左スティックで移動だけできればいいかな。

transformの位置を変えればいけそう。

unityスクリプト

最近あんまりプログラムいじってないから適当です。

そもそも私はエンジニアではないし(;^_^A

 

XRtest.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using WebXR;

public class XRTest : MonoBehaviour {

     [SerializeField] WebXRController leftHandWebXRController;

     void start()
     {
     }

     void Update ()
     {
          var obj = GameObject.Find("WebXRCameraSet").transform;

          var a = leftHandWebXRController.GetAxis2D(WebXRController.Axis2DTypes.Thumbstick);

          obj.gameObject.transform.Translate(a.x, 0, a.y);
     }
}

これをmypackageに入れた。

unity packagesフォルダ

LeftHandに追加した。

using WebXR;

これでWebXRController.csのクラスが使えるようになるっぽい。

unity webxr contoroller

namespace(名前空間)についてはこちら。

名前空間 - Unity マニュアル
プロジェクトが大きくなり、スクリプト数が増えるにつれてスクリプトクラス名が衝突する可能性が増大します。これはゲームの異なるパーツを別々に作業し、最終的に同じプロジェクトに統合する場合に当てはまります。例えば一人のプログラマがメインプレイヤーの制御コードを作成し、もう一人が敵キャラクターの制御コードを作成したとします。二...

[SerializeField] WebXRController leftHandWebXRController;

SerializeFieldについてはこちらの記事が分かりやすかったです。

【初心者Unity】[SerializeField]ってなに? | TECH PROjin

var obj = GameObject.Find(“WebXRCameraSet”).transform;

WebXRCameraSetのtransformを取得。

WebXRCameraSetの名前を変えているとダメです。

var a = leftHandWebXRController.GetAxis2D(WebXRController.Axis2DTypes.Thumbstick);

これでVector2型でスティックの状態が取得できるっぽいです。

unity webxr export

今回は使わないけど、ボタンの状態を取得する関数とかもあるみたいです。

unity webxr export

obj.gameObject.transform.Translate(a.x, 0, a.y);

単純にWebXRCameraSetのトランスフォームに代入してみた。

テレポートする感じになるかと思ったけど…割といい感じに動いたからいいか。

Meta Quest2で動作を確認してみる ※webVRあり

動きは速すぎるけど、まぁ動いたからヨシ。

Meta(Oculus) Quest2のMetaブラウザから見れた。

Unity WebGL Player | My project

…けど夜見たら重!(-_-;)最近エックスサーバーさん不安定かも。

2022/05/31追記:エックスサーバーを新サーバーに移行したら、サイトスピードが20%くらい?アップしたから少しはマシになったかも。多分(;^_^A

 

予備のアダルトOK激安サーバー借りてるから一応上げとく↓

Unity WebGL Player | My project

時間帯によると思うけど、こっちのほうが読み込み早かった。

月250円でちょくちょく落ちるけど(;^_^A

 

unity webxr export 移動

ついでにLookAnimatorも使ってこっちを見てくれるようにした(笑)。


Look Animator|unity Asset Store

 

まぁ動けるようになったから良いかな( *´艸`)

続く?

あとは向きを変えてみたいけど、どうだろ(・_・;)

WebXRCamerasetのトランスフォームの値を取得して、右スティックのGetAxis2Dの返り値をトランスフォームの回転にプラスマイナスすればいけるか?

移動も向きによって前後左右変えたほうが良いけど、なんか大変そう(・_・;)

 

まあ向きはquest本体を傾けて、ボタン長押しすれば修正できるから、なくてもそんなには困らないけども。

とりあえず自己満足用に使いたいだけだし。

VRで見るにはアプリ必須だけどSTYLYでもいいとは思う。

STYLYに登録してみた!登録からチュートリアル終了まで
バーチャル3Dクリエイター神部まゆみです(*^-^*) 今回はSTYLYに登録して、チュートリアルまで終わらせてみた記事です。 STYLYについて調べている人は参考にしてね。 STYLYとは? 自分のVR空間を作れる...
STYLYでまゆみ達とのVR添い寝部屋を作った!二次元に行く方法はSTYLYにあった…?
3Dだから三次元だけどね(笑)。 バーチャル3Dクリエイター神部まゆみです(*^-^*) 今日はSTYLYでまゆみ達と添い寝できるVR部屋を作るよ。 unityを使ってSTYLYにアップしていって、STYLY St...

 

もう少しいじってみようと思います(*^-^*)

タイトルとURLをコピーしました