バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はunityアセットのVR Interaction Frameworkを使ってみたからそのメモです。
VR Interaction Frameworkっていうのはこれね↓
VR Interaction Framework | UnityAssetStore
2023/06/02まで半額セールやってるから興味があればどうぞw
買おうと思ったきっかけ:webXRのアセットをいじりたかったから。あとセールで半額だったからw
WebXRはDe-panther氏のwebXR-exportを前いじったけど、他のやつもいじってみたかった。

それに何よりunityアセットスプリングセールで半額だったからw
paypal支払いで五千円ちょいくらいで買えた。
VeryAnimationとかPlayMakerとかの有名アセットがセールになる時は大体安くなってるかも?
たぶん年2~3回くらい安く買えるチャンスがある気がする。
VR Interaction FrameworkのWebXRサンプル
VR InteractionsもwebXRのサンプルがあって動いたのでいじってみたかった。
↓こちらで試せますが、Meta Quest2 + Metaブラウザで動かせました。
↓動画
↓GIF
webXRじゃないVR向けのゲームも開発できる
結構色々なデバイスのVRゲーム開発をサポートしてるっぽい。
Meta QusetだけじゃなくViveやPicoとかもサポートしてるようです。
というかVR Interaction FrameworkがwebXRをサポートしだしたのは比較的最近っぽいので、まだベータ版みたいな扱いっぽい?
買ってから気付いたけど、De-Panther氏のwebXR exportを使う感じっぽいですw

マニュアルだけじゃちょっと分かりにくいかも…?Discordに登録して調べつつやってみる
こちらがマニュアルですが、これだけだと少し分かりにくいかも?(;^_^A
こちらがサポート用のDiscordなので、登録して過去のスレッドを見ると分からないところが潰せるかも。
discordの翻訳方法はいくつかあるみたいだけど、とりあえずブラウザ拡張機能のsimple translateでやってみます。
選択部分だけ翻訳する感じだけど、特に設定もいらず動かせました。
選択してアイコンをクリックすると翻訳できます。
検索しても日本語の情報が少ないかも…
買う前に日本語で検索してみたけど、「明らかに買ってないでしょこの人…」って感じのまとめ記事みたいなのしか出てこなかった(~_~;)
見つかったのはこのVTuberの方くらいかな?
英語で検索したほうがいいかもしれない。
英語だけど、この方の動画は詳しく動かしてくれてたから参考になりそうです。
unity 2020.3.40を入れてインストールしてみる
記事執筆時点では2020.3.40以降って書いてあるけど、
執筆時点で最新版の2020.3.48で進めていたら、プロジェクトが2020.3.40に書き換えられてしまうエラー?みたいなのに遭遇したから2020.3.40でやります。
アーカイブはこちら↓からダウンロードできます。

パッケージマネージャーからインストール
購入してから、ウィンドウ⇒パッケージマネージャーを開くと、マイアセットに追加されてるのでダウンロードとインストールをします。
…けどなんかインストール失敗したっぽい?XRフォルダしか追加されなかった。
ダウンロードとインストールやり直したら成功した。こうなればOK。
webXR用のフォルダはここにあった
Readmeに詳しい説明が書いてありました。
De-Panther氏のwebXR-exportを使うっぽい
readmeを読んだらそう書いてあった。
1. [ウィンドウ] -> [パッケージ マネージャー] -> [git URL から新規追加] に移動してパッケージをインストールします: https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr
2. [プロジェクト設定] -> [XR 管理] – [WebGL] で、[WebXR エクスポート] と [起動時に XR を初期化] がチェックされていることを確認します。
3.InputBridge Sourceを「WebXR」に設定します(デモシーンですでに設定されています)
4. デモ シーンがビルド リストの最初の順序で追加されていることを確認します。
オプション:
1. ステップ 1 と同じ原則を使用してデモ XR Interactions をインストールしますが、次の URL を使用します: https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr-interactions
– これにより、WebGL で試すためのツールの簡単なセットが得られます。チップ :
1.「unityInstance.Module.WebXR.toggleVR();」を呼び出します。 JavaScript から VR モードを切り替える
webXR exportは前使ってみたけど、なかなか良いアセットだった。

Apache License 2.0でかなり自由に使えます。
でもデフォルトだと移動ができなかったからスクリプト書いて動かしたりしてみたけど、VR-Interaction Framework使えばいけるかな?

webxr-export入れる前にwebxrシーンを開くとエラーが出るっぽい
あーこのエラーはスティック入力取得するスクリプト書いてる時に見たエラーだった気がする。
webXR-Exportのスクリプト内のメソッドだか関数を読み出しに行ってるけど、まだ入れてないので参照先がなくエラーになってる。
アセットフォルダに自作スクリプト入れたら動かなかったので、packagesフォルダにいれたら動いた記憶がある。

webxr-exportを入れる
UPMでも入れられた気がするけど指示されてる通りにGit URLからやってみます。
この二つを入れる。
これ入れたらエラーが消えました。
あとはプロジェクト設定のここを設定すればOK。
WebXR exportのwebGLテンプレートをコピーして設定する
これはwebGLの枠みたいなやつ?ただのwebGLならデフォルトでいいけど、webVRの場合はVRに切り替えるボタン付けないとVR空間に入れないから設定が必要。
unity2020の場合はWebXR2020を選ぶらしいです。
サンプルをビルドしてサーバーにアップしてみたらjavascriptエラーが…
普通に再生はできるけど向かって右下のVRボタン押したらエラーが出てVRモードにできなかった。
キャッシュ削除すれば治るかと思ったけどダメだった。
んーなんだろうな…。
とりあえずサンプルのプレイヤーをプレハブ化して別のシーンに持って行ってみる
とりあえず最低限使ってみたいのは、↓この操作できるプレイヤーなんだよね。
webXR Exportだと移動ができなかったので試行錯誤することになったし。

一応ここにプレイヤーのプレハブがあるのだけど、
これwebXR向けにカメラのセッティングがされていなかったので、アップしたら表示がおかしくなった。
大人しくwebXRのサンプルにあるプレイヤーをプレハブにして持って行ったほうが良さそう。
webXR Demoシーンを開いて、プレイヤーのXR Rig Advancedをアセットフォルダにドラッグ&ドロップして原型プレハブにしておく。
De-Panther氏のwebXRサンプルにプレイヤーを配置してみた。
これで動いたでござるぞ( *´艸`)
おお…これのためだけに買った価値はあったかもw
弓とかおいて遊べるようにしてみる
これまたサンプルから武器とかをプレハブにして持ってきてみました。
ブラウザのwebVRでこれだけ遊べるのはかなり凄いかもΣ(゚Д゚)
このブログのエックスサーバーに上げてみたけど、Meta Quest2+Metaブラウザで動かせました↓
エラーが出る場合はキャッシュを削除するといけるかもしれない。
しかしwebGLは読み込みに時間がかかるな…。
Metaブラウザで読み込ませておいて、バーチャルデスクトップでyoutube動画見てたら読み込まれてたから待つしかないかも(;^_^A
確かサーバー設定すれば読み込み早くできるんだったかな?unity playとかは読み込み早いし。
朝読み込んでみたら読み込み早かったので時間帯によるかもしれない。
つづく?
とりあえずちょこっとだけ動かせたけどかなり面白そう。
セールになってたから勢いで買ってみただけだけど、腰を据えていじってみようかな。
VRChatとかのプラットフォームだとエロいやつは上げられないしな…(笑)。
こういう独自フレームワークのやつならサーバーの規約次第で割と自由に使えると思う。
まぁアセットストアのアセットをエロいのに使うのは、多分大丈夫っぽいけど自己責任的な可能性もあるみたいだけども(;^_^A

2023/06/02まで半額で買えるので、VRゲーム開発に興味がある方は買ってみるのも良いかも。