unity-webxr-exportをいじったメモ。VRでバーチャル女子のおっぱいを鷲掴みできたでござるぞ( *´艸`)

鷲掴みVR

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

今回はunity-webxr-exportをいじっていくよ。

前回の記事はこちら。

unity-webxr-exportでブラウザでWebVR!LookAnimatorでVRoidモデルとVR空間で遊べたよ
バーチャル3Dクリエイター神部まゆみです(*^-^*) 前回の続きで、unity-webxr-exportをいじって、Oculus Quest2でWebVRを動かして行こうと思うよ。 前回の記事はこちら。 ...

 

機能を網羅的に調べていこうかと思ったけど、VRでおっぱいを掴もうとしたら長くなったから今回はそこまで。

結論から言えば、多少の問題はあるけどできました( *´艸`)

今はバーチャル女子のおっぱいを鷲掴みできる時代なのです!

そう、Oculus Quest2ならね(ドヤァ

Oculus Quest2が届いた!Facebookアカウント凍結問題は今のところ大丈夫っぽい?
バーチャル3Dクリエイター神部まゆみです(*^-^*) 今日はOculus Quest2が届いたから、どんな感じか記事にしておきます。 Oculus Quest2はFacebookアカウント凍結問題があったから購入に二の...

 

おっぱいは赤ちゃんのごはんですからね(///)

決して卑猥なものではないので、何卒宜しくお願い致します。

  1. やりたいことメモ
  2. サンプルにあった、マウスやタップでドラッグできるやつを動かす
    1. InteractablesにあるCubeやSphereを見ればいいっぽい
      1. Mouse Drag Objectっていうコンポーネントがそれっぽいです
    2. 私のモデルにMouse Drag Objectを設定してみる
      1. 動いた!
    3. おっぱいをドラッグして鷲掴みできるのでは…( *´艸`)
    4. 服を脱がしたりもできるのでは…( *´艸`)
  3. Oculus Quest2でテストしてみたら掴めなかった…。非VRモードだとドラッグできるのになんでだろう?(-_-;)
    1. 砂漠のサンプルシーンに追加する形でテストしてみる
    2. 【解決】VRで掴めるようにするには、タグを「interactable」にしないといけないっぽい
  4. 果たしておっぱいは掴めるのか?
    1. 定期的にBustのtransform値を初期位置に戻すスクリプトを組めばいけるかな?
    2. 非VRモードでもドラッグで動かせた
      1. 非VRモードのカメラはCameraMainみたい。これの位置を調整すればOKっぽい
    3. これでVR機器でも非VR機器でも視点の問題は解決かな?
  5. つづく?
  6. 2021/06/08追記:キーボードで視点変更はできた。けどOculusコントローラーでは移動できないっぽい
  7. 2021/08/19追記:Oculusブラウザがアップデートされたせい?か、VRモードにできなくなっていた( ̄▽ ̄;)
    1. 2021/09/06追記:Firefox RealityならVRモードでも見れた
      1. 2021/10/21追記:unity-webxr-exportの新しいバージョンでビルドしてみたけど、oculusブラウザでVRモードにしようとしたら強制終了してダメだった
      2. 2021/11/04更に追記:またOculusブラウザでも見れるようになっていた(^_^;)アップデートされたからかな?

やりたいことメモ

・サンプルにあったマウスやタップでドラッグできるやつを動かす

・VR端末とそれ以外で視点の位置を変えられるか?

・PCやスマホから見た時にカメラ移動できるか?

・VR端末で狙った場所にテレポート移動できるか?

・低スペックスマホでも動かすにはどうしたらいいか?

 

特に最後のやつは、サンプルでは動いたけど私のモデルを配置したら英文の警告が出て、OKを押しても動かなかった。

メモリが2GBしかないandroidタブレットだからそのせいかな?

設定次第で行けるような気もするけど…。

サンプルにあった、マウスやタップでドラッグできるやつを動かす

サンプルはこれね。これならOculus Quest2でもPCでも、私のメモリ2GB低スペックスマホでも動きました。

Unity WebGL Player | WebVR

InteractablesにあるCubeやSphereを見ればいいっぽい

WebXRCameraSetはVR機器のカメラと手、他のオブジェクトはFPSを表示するやつとか砂漠の背景とかみたい。

インスペクターオフにしても動く。

Mouse Drag Objectっていうコンポーネントがそれっぽいです

名前からしてこれしかなさそう。

「コンポーネントを追加」で試しに追加してみたら、Rigidbodyも一緒に追加されました。

私のモデルにMouse Drag Objectを設定してみる

「コンポーネントを追加」で「mouse」とか打てば候補に出ます。

Rigidbodyも一緒に追加されます。

mouse drag object

注意点としては、コライダーも追加しないとダメみたい。

コライダーがないとドラッグしても反応がなかったです。

あと、Rigidbodyのuse gravityをオンにしていたら、床にコライダー設定されてるのに落下していったのでオフにしました。

※その後ボックスコライダーに変えたら大丈夫でした

動いた!

Unity WebGL Player | WebVR

おっぱいをドラッグして鷲掴みできるのでは…( *´艸`)

これ出来たらすごいよなぁ…やってみたいなぁ…。できるのかなぁ…(ワクワク

指定するなら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でもスマホでも多分動くのでは。スマホはスペック低いとダメかも?

Unity WebGL Player | WebVR

現時点ではおっぱいが伸びてしまうので、触ったらゆっくり元の位置に戻してください…(笑)。

ページ読み込みなおせば元に戻るけれども。

つづく?

まさか本当にバーチャル女子のおっぱいが揉めるとは…。

バーチャルおせっせができる時代は、もうすぐそこまで来ているのでは( *´艸`)

 

あとは非VR端末でも視点変更ができたり、VR端末で座ったままテレポート移動ができたらいいなぁ。

いつも参考にさせてもらってる優秀なkan-kikuchi先輩によると、steam開発用のプラグイン入れれば使えるみたい?

SteamVR Pluginを使ったテレポートの実装【Unity】【Steam】【VR】 - (:3[kanのメモ帳]
この記事でのバージョン Unity 2019.2.21f1 Steam VR Plugin 2.5.0 (sdk 1.8.19) はじめに UnityでSteam向けのVRゲームを開発する際は、SteamVR Pluginというアセットを使うのが一般的ですが、 SteamVR Plugin | Integration ...

webVRで動くのかな?


※2021/06/07追記:

steamプラグインのアセット入れてみたけど、webGLではビルドできませんでした(;^_^ PCゲーム開発用だからそりゃそうか。

webGLではなく、プラットフォームをandroidに切り替えてOculus向けにビルドするなら行けるかもしれない。

Unity でVRのテレポートを一番簡単に実現する方法 - Qiita
概要 この記事は、VR上でよく目にする「テレポート」を実現するための手法を書いてあります。ハンドデバイスの先に放物線状に線が表示されて、ボタンを押すとその着地点にワープするというアレです。 順番としては VRのためのセット...

というかテレポートが無理でも、Oculusコントローラーのスティックで移動できればいいかも。


 

ちなみにA-Frameでもテレポート移動できるらしいです。

Oculus Questのコントローラでaframe-teleport-controlsを使う - Crieit
A-Frameには aframe-teleport-controls という、VR空間内を近くにテレポートしつつ移動するためのコンポーネントがある。 VR空間内は勝手に自分のカメラの位置が移動してしまうと乗り物酔いと同じ原理で酔って...

A-Frameも後でいじってみるかもしれない。

 

でもバーチャルの存在と触れ合えるなんて、本当に未来感あるね( *´艸`)

これからの技術の進化がとても楽しみです。

2021/06/08追記:キーボードで視点変更はできた。けどOculusコントローラーでは移動できないっぽい

上下左右キーで動くようにしておけばOculusコントローラーのスティックでも動くかなと思ったけど、動かなかった。

でもPCのキーボードではカメラ動かせるようになった。

Unity WebGL Player | WebVR

上下左右キーで移動、QEでカメラ上下できます。

こちらの頭のいい先輩のスクリプトを参考にしました。ありがとうございます(*^-^*)

【Unity】カメラ移動を制御するスクリプト - Qiita
概要 Unityでデバックとかする時に使ってる移動・回転をするためのカメラのスクリプトです。 ふと忘れたり、スクリプトが色々な所にあったりするので備忘録を兼ねてQiitaに公開したい。 CameraMover.cs Ca...

スマホからも動かすには、キャンバスにジョイスティックみたいなの表示する感じにするしかないかな?

 

Oculus開発用のアセットを入れればOculusコントローラーの値を取得できるみたいだけど、これもsteamと同じでandroidかPCじゃないと動かないのでは…。

Map Controllers | Oculus Developers
Using OVRInput to add user input and mappings to your Unity app.

↓これはOculus Riftのやつかな?ジョイスティックのキーコードでOculus Quest2のwebGLでもスティックの状態を取得できないだろうか…?

【Unity】OpenVRで取得できるOculusコントローラー(Touch)のボタン入力 - Qiita
はじめに 公式のマニュアルが分かりづらかったので、備忘録を書いてみました。 OpenVR コントローラーの入力 - Unity マニュアル

unity-webxr-exportの中にそれっぽいスクリプトがあるかなとも思ったけど、特になさそうだった。

もう少し試行錯誤してみるかも。

2021/08/19追記:Oculusブラウザがアップデートされたせい?か、VRモードにできなくなっていた( ̄▽ ̄;)

久々にこの記事見返して、ビルドしたやつをOculus Quest2で見てみたら、VRモードに入れなくなっていました(~_~;)右下のVRボタンを押すと強制終了しちゃう。

これね↓。

Unity WebGL Player | WebVR

非VRモードでは普通に見れました。

ちょっと前からOculus Quest2のインターフェースが一新されていたから、もしかしたらそのせいかな?

新しいバージョンのunityでビルドし直せばいけるのかな?それともunity-webxr-exportの新しいバージョンを入れ直す必要があるのかな?

 

うーん、やっぱりこういうバージョンアップ対応とか考えると、A-Frameとかのほうが汎用性が高いのかな…?まだやってないからわかんないけど。

最近はblenderの勉強したりしてたのでwebVRは後回しにしてたけど、ちょっとずついじっていこうかな。

2021/09/06追記:Firefox RealityならVRモードでも見れた

Oculus Quest2のFireFox Realityブラウザなら、これまで通りVRモードで見れました。

Firefox Reality on Oculus Quest
Firefox Reality brings content from the web that you know and love to Virtual Reality headsets. Our browser provides an open, accessible and secure way for ever...

そもそもWebXR ExporterってMozilaのプロジェクトだったから、互換性が高いとか?

まぁ一応動いたので追記しときました。

2021/10/21追記:unity-webxr-exportの新しいバージョンでビルドしてみたけど、oculusブラウザでVRモードにしようとしたら強制終了してダメだった

改めてビルドし直してみたけど、Oculus Quest2+OculusブラウザでVRモードに入ろうとすると強制終了しちゃってダメでした。

Firefox Realityだといけました。

原因はなんだろうなぁ…できればOculusブラウザでも見れたらいいけど。

2021/11/04更に追記:またOculusブラウザでも見れるようになっていた(^_^;)アップデートされたからかな?

久々にOculusブラウザで見てみたら、普通にVRモードで見れました!なんでだろ?(^_^;)

Unity WebGL Player | WebVR

Oculusブラウザはけっこう頻繁にアップデートさせられるので、不具合が治ったのかも?でもまた動かなくならないか不安(-_-;)

OculusのFireFox Realityは最近あんまりアップデートされてないみたいだから、逆に安定して見れてるけど(笑)。

 

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