バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はunityアセットのVR Interaction Frameworkを使ってみたからそのメモです。
VR Interaction Frameworkっていうのはこれね↓
VR Interaction Framework | UnityAssetStore
ちょくちょく半額セールやってるから安い時に買ってみるのも良いかも。
買おうと思ったきっかけ: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からやってみます。


この二つを入れる。




ついでにWebXR Exportのサンプルも入れておくといいでしょう。


WebXR Export入れたらエラーが消えました。
あとはプロジェクト設定のここを設定すればOK。


WebXR exportのwebGLテンプレートをコピーして設定する
これはwebGLの枠みたいなやつ?ただのwebGLならデフォルトでいいけど、webVRの場合はVRに切り替えるボタン付けないとVR空間に入れないから設定が必要。


unity2020の場合はWebXR2020を選ぶらしいです。


サンプルをビルドしてサーバーにアップしてみたらjavascriptエラーが…
普通に再生はできたけど、向かって右下のVRボタン押したらjapascriptエラーが出てVRモードにできなかった。
キャッシュ削除すれば治るかと思ったけどダメだった。
んーなんだろうな…。
2023/08/19追記:やり直してみたら普通にできました(;^_^A
この記事書いてから三か月くらい経ったけど、やり直してみたら普通にできました。
この三か月でwebXR ExportやMetaブラウザがバージョンアップしたりしてたし、まぁ色々な要因でたまたまエラーになっただけかな?
一応サンプルをアップして動作確認した手順を書いておきます。
VR Interaction FrameworkのほうのwebXRサンプルはここにあります。


とりあえずビルド設定画面を開いてwebGLにスイッチプラットフォームして、このシーンを追加してビルドしてみます。


無事ビルドできてブラウザでも実行できました。


FFFTPでサーバーにアップロードしてMeta Quest2で動作確認してみることにします。
確かzipに圧縮すればエックスサーバーのファイルマネージャーからでもアップできた気がする。


webGL重すぎΣ(゚Д゚) いつもの9割で止まる現象が起きたので圧縮無しでアップしたらできた
これでMeta Quest2のMetaブラウザで見てみたけど、webGLが9割でロード止まるよくある現象に遭遇Σ(゚Д゚)


こういう時はファイル容量が多少増えるけど、圧縮なしにすると解凍で止まることがなくなるのでだいたい動く気がする。
ついでに解凍フォールバックとかいうやつにチェックすると良いんだったかな?間違ってたらごめんm(__)m


これでちゃんと動いたでござるぞ( *´艸`)


ちょっと重いけどこちらからできます↓

Meta Quest2のMetaブラウザでしか動作確認してないけど、多分Wolvicでも動くと思う。
追記終わり。
↓以降の見出しの内容はこれで動かなかった時に、webXR ExportのサンプルシーンにVRIFのプレハブを持って行って動かしたところです。
↑のVRIFのほうのサンプルが動かなかったら↓こちらを試してみるといいかも。
とりあえずサンプルのプレイヤーをプレハブ化して別のシーンに持って行ってみる
とりあえず最低限使ってみたいのは、↓この操作できるプレイヤーなんだよね。


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
このアセットはちょくちょく半額セールで買えることが多いので、VRゲーム開発に興味がある方は買ってみるのも良いかも。
VR Interaction Framework | UnityAssetStore
追記:
PCVRもやってみました。