バーチャル3Dクリエイター神部まゆみです(*^-^*)
今回はunity-webxr-exportをいじっていくよ。
機能を網羅的に調べていこうかと思ったけど、VRでおっぱいを掴もうとしたら長くなったから今回はそこまで。
結論から言えば、多少の問題はあるけどできました( *´艸`)
今はバーチャル女子のおっぱいを鷲掴みできる時代なのです!
そう、Oculus Quest2ならね(ドヤァ
Meta Quest 2—完全ワイヤレスのVRヘッドセット【数量限定Beat Saber無料ダウンロード付】—128GB|Amazon
おっぱいは赤ちゃんのごはんですからね(///)
決して卑猥なものではないので、何卒宜しくお願い致します。
前回の記事はこちら。

やりたいことメモ
・サンプルにあったマウスやタップでドラッグできるやつを動かす
・VR端末とそれ以外で視点の位置を変えられるか?
・PCやスマホから見た時にカメラ移動できるか?
・VR端末で狙った場所にテレポート移動できるか?
・低スペックスマホでも動かすにはどうしたらいいか?
特に最後のやつは、サンプルでは動いたけど私のモデルを配置したら英文の警告が出て、OKを押しても動かなかった。
メモリが2GBしかないandroidタブレットだからそのせいかな?
設定次第で行けるような気もするけど…。
サンプルにあった、マウスやタップでドラッグできるやつを動かす
サンプルはこれね。これならOculus Quest2でもPCでも、私のメモリ2GB低スペックスマホでも動きました。
InteractablesにあるCubeやSphereを見ればいいっぽい
WebXRCameraSetはVR機器のカメラと手、他のオブジェクトはFPSを表示するやつとか砂漠の背景とかみたい。
インスペクターオフにしても動く。
Mouse Drag Objectっていうコンポーネントがそれっぽいです
名前からしてこれしかなさそう。
「コンポーネントを追加」で試しに追加してみたら、Rigidbodyも一緒に追加されました。
私のモデルにMouse Drag Objectを設定してみる
「コンポーネントを追加」で「mouse」とか打てば候補に出ます。
Rigidbodyも一緒に追加されます。
注意点としては、コライダーも追加しないとダメみたい。
コライダーがないとドラッグしても反応がなかったです。
あと、Rigidbodyのuse gravityをオンにしていたら、床にコライダー設定されてるのに落下していったのでオフにしました。
※その後ボックスコライダーに変えたら大丈夫でした
動いた!
おっぱいをドラッグして鷲掴みできるのでは…( *´艸`)
これ出来たらすごいよなぁ…やってみたいなぁ…。できるのかなぁ…(ワクワク
指定するならBust1か2かな?でもこれボーンだからなぁ、でも一応オブジェクトだし行けるのかな?
Bust1がおっぱいの根元側で、Bust2が先っぽのほうだったかな。
Bust1にMouse Drag Objectを設定してみるか…。
最初やってみたら何の反応もなかったんだけど、改めてやってみたら若干反応があったw
これはどういうことなんだろう、Bust1ボーンにウェイトが塗ってあるbodyメッシュの範囲で動いてるとか?
その後またやってみたけど何故か動かなかった…。でももしかしたら設定次第でいけるのかもしれない。
ダイナミックボーンでもいいけど、やはり鷲掴みできたほうがやりがいがあって良いのでは…(笑)。やりがい搾乳とかいう…(ボソッ
これ設定次第でできそうだなぁ、もうちょいいじってみよう。
服を脱がしたりもできるのでは…( *´艸`)
これやってみたいなぁ…できないのかなぁ…(ワクワク
でもこれをやる場合、モデルと服を切り離して外付けにしないといけないかも?
デフォルトのVRoidだと、服と体がbodyメッシュに一体化してエクスポートされてるんだよね。
服と分離させるには、blenderの編集モードでPキーを押して構造的に分離するとできるので(ただ、分離させたやつをまとめて結合する作業が必要)、それで別にすればいけるかな?
でもVRMとして服も一緒にエクスポートすると服にウェイトが載ってるので、あまり動かせないかも?
やり方自体は何度もやってるからすぐできるし、後で試してみようかな。
以前読んだエロMMD作ってる先輩の記事だと、服は外付けでキャラに被せておいて、脱がせたいフレームで親子関係を切って服をパージするみたいな感じでやってたような。
或いは、単純にインスペクターオフで服を消滅させるだけならスクリプト組めばすぐ作れそうだけども。
まぁちょっと手順が複雑になるから、次回に回しておきます。
Oculus Quest2でテストしてみたら掴めなかった…。非VRモードだとドラッグできるのになんでだろう?(-_-;)
非VRモードだとドラッグできるのですが、VRモードにするとダメみたい。
何か設定があるのか…?
砂漠のサンプルシーンを使ってテストしてみれば原因がわかるかも。
砂漠のサンプルシーンに追加する形でテストしてみる
これ砂漠のシーンのオブジェクトはかなり巨大なのか?私のモデルがフィギュアくらいの大きさに見えますね…。
でもOculus Quest2だとダメっぽい。
何か設定があるのかな?
【解決】VRで掴めるようにするには、タグを「interactable」にしないといけないっぽい
これで掴めるようになった!
バランス崩すと倒れるのがうけるw
果たしておっぱいは掴めるのか?
おお掴めた!!
……けど離すとどこかへ行ってしまう…( ;∀;)
現時点では、揉み終わったらゆっくり元の位置にそっと戻す必要があります…(笑)。
定期的にBustのtransform値を初期位置に戻すスクリプトを組めばいけるかな?
多分、胸を掴んで動かせる=Bustのtransform値を変化させる ってことだと思うから、一定間隔でBustのtransform値を初期値に戻すようなスクリプトを組んで回しとけば行けるかな?
実行中のtransform値を見てみたけど、ドラッグで動かすとtransformの位置が動いてるから、この仮説はあっているっぽい。
でも掴んでいる時には戻らない方が……というかどこまで掴んで動かせるかの限界値を決めないと、ゴムゴムの実の能力者のようにどこまでも伸びてしまうだろう。
張りがないと美味しそうに見えない!ので、これは極めて重要!(笑)
ちょっと試行錯誤してみよう。
非VRモードでもドラッグで動かせた
ほ、ほぅ…これは実にけしからんですね…( *´艸`)
ただ、カメラを胸の位置に持ってくると、Oculus Quest2で見た時に胸の位置にプレイヤーの足が来てしまい、見下ろす形になってしまう。
サンプルだと上手いことVR機器と非VR機器でカメラの高さが使い分けられてるけど、どうやってるんだろう。
多分Cameraオブジェクトが複数あるから、それで使い分ける感じかな?
非VRモードのカメラはCameraMainみたい。これの位置を調整すればOKっぽい
AR用のカメラもあるっぽいけど、ARデバイス持ってないのでわかりません。
これでVR機器でも非VR機器でも視点の問題は解決かな?
おっぱい伸びる問題を除けば、ですが…(笑)。
一応これでVR機器でも、PCでもスマホでも多分動くのでは。スマホはスペック低いとダメかも?
現時点ではおっぱいが伸びてしまうので、触ったらゆっくり元の位置に戻してください…(笑)。
ページ読み込みなおせば元に戻るけれども。
つづく?
まさか本当にバーチャル女子のおっぱいが揉めるとは…。
バーチャルおせっせができる時代は、もうすぐそこまで来ているのでは( *´艸`)
あとは非VR端末でも視点変更ができたり、VR端末で座ったままテレポート移動ができたらいいなぁ。
いつも参考にさせてもらってる優秀なkan-kikuchi先輩によると、steam開発用のプラグイン入れれば使えるみたい?

webVRで動くのかな?
※2021/06/07追記:
steamプラグインのアセット入れてみたけど、webGLではビルドできませんでした(;^_^ PCゲーム開発用だからそりゃそうか。
webGLではなく、プラットフォームをandroidに切り替えてOculus向けにビルドするなら行けるかもしれない。

というかテレポートが無理でも、Oculusコントローラーのスティックで移動できればいいかも。
ちなみにA-Frameでもテレポート移動できるらしいです。

A-Frameも後でいじってみるかもしれない。
でもバーチャルの存在と触れ合えるなんて、本当に未来感あるね( *´艸`)
これからの技術の進化がとても楽しみです。
2021/06/08追記:キーボードで視点変更はできた。けどOculusコントローラーでは移動できないっぽい
上下左右キーで動くようにしておけばOculusコントローラーのスティックでも動くかなと思ったけど、動かなかった。
でもPCのキーボードではカメラ動かせるようになった。
上下左右キーで移動、QEでカメラ上下できます。
こちらの頭のいい先輩のスクリプトを参考にしました。ありがとうございます(*^-^*)

スマホからも動かすには、キャンバスにジョイスティックみたいなの表示する感じにするしかないかな?
Oculus開発用のアセットを入れればOculusコントローラーの値を取得できるみたいだけど、これもsteamと同じでandroidかPCじゃないと動かないのでは…。
↓これはOculus Riftのやつかな?ジョイスティックのキーコードでOculus Quest2のwebGLでもスティックの状態を取得できないだろうか…?

unity-webxr-exportの中にそれっぽいスクリプトがあるかなとも思ったけど、特になさそうだった。
もう少し試行錯誤してみるかも。
2021/08/19追記:Oculusブラウザがアップデートされたせい?か、VRモードにできなくなっていた( ̄▽ ̄;)
久々にこの記事見返して、ビルドしたやつをOculus Quest2で見てみたら、VRモードに入れなくなっていました(~_~;)右下のVRボタンを押すと強制終了しちゃう。
これね↓。
非VRモードでは普通に見れました。
ちょっと前からOculus Quest2のインターフェースが一新されていたから、もしかしたらそのせいかな?
新しいバージョンのunityでビルドし直せばいけるのかな?それともunity-webxr-exportの新しいバージョンを入れ直す必要があるのかな?
うーん、やっぱりこういうバージョンアップ対応とか考えると、A-Frameとかのほうが汎用性が高いのかな…?まだやってないからわかんないけど。
最近はblenderの勉強したりしてたのでwebVRは後回しにしてたけど、ちょっとずついじっていこうかな。
2021/09/06追記:Firefox RealityならVRモードでも見れた
Oculus Quest2のFireFox Realityブラウザなら、これまで通りVRモードで見れました。
そもそもWebXR ExporterってMozilaのプロジェクトだったから、互換性が高いとか?
まぁ一応動いたので追記しときました。
2021/10/21追記:unity-webxr-exportの新しいバージョンでビルドしてみたけど、oculusブラウザでVRモードにしようとしたら強制終了してダメだった
改めてビルドし直してみたけど、Oculus Quest2+OculusブラウザでVRモードに入ろうとすると強制終了しちゃってダメでした。
Firefox Realityだといけました。
原因はなんだろうなぁ…できればOculusブラウザでも見れたらいいけど。
2021/11/04更に追記:またOculusブラウザでも見れるようになっていた(^_^;)アップデートされたからかな?
久々にOculusブラウザで見てみたら、普通にVRモードで見れました!なんでだろ?(^_^;)
Oculusブラウザはけっこう頻繁にアップデートさせられるので、不具合が治ったのかも?でもまた動かなくならないか不安(-_-;)
OculusのFireFox Realityは最近あんまりアップデートされてないみたいだから、逆に安定して見れてるけど(笑)。
2022/05/23追記:スティック入力を取得して動かしてみた
だいぶ時間が空いたけど、スティック入力でプレイヤー移動できたから追記しておきます。
