※このページではアフィリエイト広告を紹介しています

VR Interaction Framework unityアセットでPCVRビルドしてsteamVRで動かしてみたメモ

Unity

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

この記事はVR Interaction FrameworkっていうunityアセットでPCVRビルドしてsteamVRで動かしてみたメモです。

 

これ手順忘れそうだからここに書いておきます。

環境が変わったらまたやり直す羽目になるかもしれないので(;^_^A

■PR■

現在200個以上の新規unityアセットが最大50%オフで買える New Releaseセールをやっているみたいです。

unityアセット New Release割引 最大50%OFF

欲しいアセットはこの機会に買っておくと良いかも。

 
 

 

 

  1. VR Interaction Frameworkとは?
  2. PCVRビルドしてsteamVRで動かしてみた手順
    1. 手順1:VR Interaction Framework対応のunityバージョンを入れる
    2. 手順2:新しいプロジェクトを作って、VR Interaction Frameworkをインポートする
      1. インポート失敗したらやり直せばOK
    3. 手順3:steamVR Pluginを入れる
      1. 設定する
    4. 手順4:XR Demoシーンを開いてセットアップ
      1. XR Rig Advancedにコンポーネントを追加してInput Bridgeの設定をする
      2. Input Bridgeの設定をする
    5. 手順5:実行ボタン押して動作確認する
      1. 最初やった時はInput Bridgeの警告が消えず、コントローラーのバインドを設定しないと動かなかった
        1. Bindingsがちゃんと作成されてなかったからかも
          1. steamVRのバインドが正しいやつかチェック
      2. 実行ボタンを押してもVRにならない場合
    6. 手順6:ビルドして動作確認してみる
      1. 普通にバリバリ動かせた
  3. 私の部屋もビルドして動かしてみる
    1. HDRPでやってみたけどダメっぽい?
    2. 高さ調整とか
      1. 屋内だとプレイヤーのコライダーが天井にひっかかってガタガタしたので注意
  4. 2023/07/31追記:ボタン押してしゃがむ機能はデフォルトではないっぽい?スクリプト書くしかないか…
    1. ジャンプと走るのはPlayer ControllerのSmoothLocomotionコンポーネントにボタン割り当てればいけた
  5. その他の設定や注意点など
    1. VRから通常のPCビルドに戻すには、Initialize XR on Startup をいじる
    2. Input BridgeのSteamVR警告が消えない時は、VRIFとsteamVRアセットをフォルダごと削除して入れ直したら直った
      1. 削除して入れ直した手順
      2. webXRと切り替えてたらこうなったので、PCVRとwebXRのプロジェクトは別にしたほうがいいかも?
  6. おわりに

VR Interaction Frameworkとは?

VRゲームが開発できるunityアセット。

ちょいお高いけど年2~3回くらい?半額セールで安くなってる気がするのでセール時を狙うと安く買えるかも。


VR Interaction Framework | UnityAssetStore

 

De-Panther氏のwebXR-exportを使ってwebXRも作れます。

VR Interaction Framework unityアセットを買って動かしてみたメモ。ブラウザで動くVRのFPSゲームが作れるだとΣ(゚Д゚)
VR Interaction Frameworkアセットを買って動かしてみたメモです。

PCVRビルドしてsteamVRで動かしてみた手順

アセット作者さんが手順を上げてくれてるけど、2年前の動画なのでバージョンアップで少し変わってる部分もあった。

 

動かしたのはMeta Quest2 + バーチャルデスクトップです。

手順1:VR Interaction Framework対応のunityバージョンを入れる

2023/06/11現在だと2020.3.40以降になってたから2020.3.40でやります。

過去のunityバージョンはこちらからダウンロードできます。

Download Archive
DownloadArchive

 

 

手順2:新しいプロジェクトを作って、VR Interaction Frameworkをインポートする

プロジェクト名は適当でOK。

作成出来たらパッケージマネージャーを開いて、マイアセットにあるVR Interaction Frameworkをインポートする。

VR Interaction Frameworkをインポートする

なんか警告ウィンドウが3つ出たけど気にせずインポートします。

これで特にいじらずインポートすればOK。

インポート失敗したらやり直せばOK

最初やった時はインポート失敗したっぽくてXRフォルダしか追加されなかった。

これやってた時微妙に回線が不安定だった気がするから回線状況によるかな?(~_~;)

 

ダウンロードとインストールやり直したら成功しました。こうなればOK。

手順3:steamVR Pluginを入れる

steamVR Pluginをアセットストアから入手します。

SteamVR Plugin | Integration | Unity Asset Store
UsetheSteamVRPluginfromValveCorporationonyournextproject.Findthisintegrationtool&moreontheUnityAssetStore.

マイアセットに追加されているのでインポートします。

 

 

 

このXR Plug-in ManagementでVRデバイスの設定ができる感じ?

XR plug-in management

デフォルトはOpenVR Loaderになってるけど、これでもsteamVR動いたから変えなくていいと思う。

Oculusにしたら動かなくなったので、別のやつを選ぶ場合は別途SDK入れたり設定が必要になるかも?間違ってたらごめん。

設定する

Assets/BNG Framework/Integrations にある SteamVRを開く。

 

インポートする。

Save and generateを押せばOK。

これでBindingsとかいうフォルダが追加された。

これコントローラーのバインド的なやつかな?

手順4:XR Demoシーンを開いてセットアップ

検索窓に demo と入れて出てくる XR Demo を開く。

Assets/BNG Framework/Scenes にある XR Demo.unity です。

 

なんかText Mesh Proのインポートみたいな画面が出てきたのでインポートしておく。

上のやつをインポートしたら下のボタンもグレーアウトが消えてEnableになったので一応インポートしておく。

終わったら右上の×を押して閉じてOK。

XR Rig Advancedにコンポーネントを追加してInput Bridgeの設定をする

これがプレイヤーになるやつ?ヒエラルキーで選択します。

「コンポーネントを追加」を押して、「action」と検索すると出てくるSteam VR_Activate Action Set On Loadを追加して設定する。

こうなってればOK。

Input Bridgeの設定をする

あと上のInput Bridgeの入力ソースをSteamVRにする。

最初は警告が出てたけど、

Open Integrations Windowをクリックして少し経ったら警告消えました。

これコンパイルとかリフレッシュ間隔の問題かな?

しかしフォーラム見たら「警告が消えない」みたいな話も見たような…。

ここで警告が出てるとコントローラーのバインド設定がおかしくなるのか?実行してもプレイヤーが動かなくてバインド設定を手動でやることになった。

手順3のsteamVRのBinding設定あたりからやり直してみたほうが良いかも。

手順5:実行ボタン押して動作確認する

これで実行ボタン押して動作確認してみます。

環境はMeta Quest2 + バーチャルデスクトップで画面映しながら実行ボタン押しました。

 

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

でもVRを終了するとエラーでunityエディターが毎回落ちる(;^_^A

とりあえず毎回起動し直してるけどちょっと現段階では原因がわからない。

最初やった時はInput Bridgeの警告が消えず、コントローラーのバインドを設定しないと動かなかった

この画面で警告が消えず、実行はできるけどプレイヤーが動かなかった。

仕方ないから自力でバインド設定したら動いた。

 

とりあえずジョイスティックだけ設定してやってみるといいかもしれない。

steamVRのバインド設定開いて、ジョイスティックのところに適当にsumstickっぽい感じのやつを設定したらいけた。

 

フォーラムでも「手が地面に沈んで動きません」って言ってる人がいたけど、多分バインドの設定の問題かな?

でも設定めんどくさいから、手順3あたりからやり直してみたほうがいいかもしれない。

Bindingsがちゃんと作成されてなかったからかも

動かせなかったプロジェクトを見返してみたら、Bindingsフォルダがちゃんと作成されてなかった。

ここがちゃんと作成されてないと実行できてもプレイヤー動かせないので注意。

これが作成されてても、バインドが正しいやつじゃないと動作がおかしくなるかも。

steamVRのバインドが正しいやつかチェック

steamVRのバインドは、作者さんが設定してくれたやつ?のこれが設定されてたらちゃんと動いた。

rift defaultsってやつ。これ以外のバインドが選ばれていた場合は移動ができなかったり、右指が動かなかったりしてダメだった。

 

追記:もしくはこっちのパターンもあった。名前がいくつかあるかも?

 

バインドの設定は、Meta Quest2+VirtualDesktopのPCVRだと左スティックの 三ボタン を押したら出てくるメニューを移動してけば見つかる。

左下の詳細設定を「表示」に ⇒ コントローラ ⇒ バインド設定UIを表示 ⇒ プロジェクト名(ここではVRIF-TEST) でバインド変更画面に行ける。

unity steamVR バインド コントローラー

間違ったバインドが選択されていた時は、バインドを変更って出てる画面で正しいバインドを選択できた。

ここで編集を押して選択したんだったかな?一度直したらダメだった場合の再現ができなかったのでまた追記するかも(;^_^A

 

バインドが正しく設定されていれば、左コントローラーのYかXボタンを押した時に音が鳴って時間を遅くする機能が使えるようになってるはず。

実行ボタンを押してもVRにならない場合

恐らくだけど、

  • steamVRがインストールされてない
  • VR Plug-in Managementのところがおかしい(重要)
  • ヘンなエラーが出てる

あたりかな?

 

steamVRはこれね。

Steam:SteamVR
SteamVRをダウンロードして、HTCVive、OculusRift、WindowsMixedRealityヘッドセットやその他のサポートされたVRヘッドセットとコントローラを使ってVRゲームにアクセスしてプレイしよう。

流石にこのページを見ている人は既に入れていると思うけど…。

 

あとVR plug-in Managementは初期設定のままいじってないです。

OpenVR Loaderにチェックが入っているかチェック。

XR plug-in management

 

あとはコンソールでエラーが出てると実行ボタンが押せないのでバグをつぶす。

でもこれまでの手順しかやらなければ変なエラーは出ないはずなので、最初からやり直したりすればいけると思う。

unityエディタ再起動で直る場合もあるかも。

手順6:ビルドして動作確認してみる

PCVRでビルドします。

XR Demoシーンにチェックを入れて、「ビルドして実行」を押す。

WebXR(WebGL)のビルドは前回やったのでこちらを参考に。

VR Interaction Framework unityアセットを買って動かしてみたメモ。ブラウザで動くVRのFPSゲームが作れるだとΣ(゚Д゚)
VR Interaction Frameworkアセットを買って動かしてみたメモです。

 

これで実行ファイルができたから動かせるようになった!

普通にバリバリ動かせた

ちゃんとビルドして動かせた!

これドアとか引き出しとかハシゴとかもあるのがポイント高いかも。

このサンプルを組み合わせるだけで大抵のVRゲームは作れるのでは…Σ(゚Д゚)

私の部屋もビルドして動かしてみる

おおー!しっかり動いた!

webXRだとブラウザのメモリがきつくてリアルタイム反射させたらモッサリしちゃったけど…。

unityの鏡面反射でリアルタイムが動かずrealtime reflection probes are disabled in quality settingsと警告が出ていた時の備忘録
unityの鏡面反射でリアルタイムが動かずrealtime reflection probes are disabled in quality settingsと警告が出ていた時の備忘録です。

PCVRだとマシンスペックの限り動かせるから制約が少なくて良いかも。

VRChatワールドのPC版でも容量は気を使うしなぁ(;^_^A

 

これHDRPとかも動かせたらリアルで良いかも(;゚д゚)ゴクリ…

unityのHDRPでVRoidのVRMモデルをシェーダー設定してみたメモ。HDRPはもはや現実Σ(゚Д゚)
unityのHDRPでVRoidのVRMモデルをシェーダー設定してみたメモです。HDRPはもはや現実でしたΣ(゚Д゚)

ちょっとチャレンジしてみようかな。

HDRPでやってみたけどダメっぽい?

HDRPのサンプルにVR Interaction Frameworkをインポートしたら、なんかレイヤーの設定が書き変わって映らなくなってしまった(~_~;)

エラーが出てるわけじゃないから設定し直せばいけるかもしれない。

しかしHDRPの知識がまだ乏しいから現時点では無理か(;^_^A

とりあえずは普通のやつでやってみます。

高さ調整とか

ここのプレイヤーコントローラーの、

 

BNG Player Controllerコンポーネントの、Player Y offsetの値を調整したらプレイヤーの身長が調整できました。

これコライダーで無理やり調整しようとやったけど上手くいかなくて、VRIFのdiscordでheightって検索したら出てきた。

ログがかなり膨大なので、ちょっとした疑問は英語で検索すれば出てくると思います。

Discord - A New Way to Chat with Friends & Communities
Discordistheeasiestwaytocommunicateovervoice,video,andtext.Chat,hangout,andstayclosewithyourfriendsandcommunities.

ちなみに翻訳はsimple translateプラグインでやりました。

Simple Translate
Webページ上で選択・入力したテキストを瞬時に翻訳します。Google翻訳とDeepLAPIに対応しています。

屋内だとプレイヤーのコライダーが天井にひっかかってガタガタしたので注意

部屋の中にプレイヤーを配置したらなんかひっかかった感じでガタガタするなと思ったら、プレイヤーの肩にコライダーが設定されてた。

とりあえずオフにしたらガタガタしなくなりました。

とりあえず問題はないから大丈夫かな?

2023/07/31追記:ボタン押してしゃがむ機能はデフォルトではないっぽい?スクリプト書くしかないか…

座りながらプレイする場合、VRChatみたいにstandかsitを切り替えられると高さ調整ができて便利なんだけど。

フォーラム見たけどボタン押してしゃがむ機能はないっぽい?

スクリプト書いてPlayer Y Offsetを増減させて調整するしかないかも?

ジャンプと走るのはPlayer ControllerのSmoothLocomotionコンポーネントにボタン割り当てればいけた

PlayerControllerはここね。

SmoothLocomotionはデフォルトではオフになってるのでオンにする。

VR IntegrationFramework unity SmoothLocomotion

 

デフォルトだとボタンが割り当てられていないので、ここにボタンを割り当てればOK。

Jump Forceでジャンプ力が設定できます。

VR Integration Framework unity ジャンプjumo button

 

走るのはここ。

デフォルトだとあまり早くならないので、Sprint Speedは3くらいにしたほうがいいかも。

VR Integration Framework sprint走る buttonボタン

これでしっかりジャンプして動いた!

VR Integration Framework unity ジャンプ 走る スプリント

しゃがみ以外の動作はだいたいできたかな。

その他の設定や注意点など

その他気付いたことや注意点があれば追記していきます。

VRから通常のPCビルドに戻すには、Initialize XR on Startup をいじる

ビルド設定 ⇒ プレイヤー設定 ⇒ XR Plug-in Management ⇒ Initialize XR on Startup のチェックを外す。

ここにチェックを入れると、実行ボタンを押したときにまたsteam VRが起動してVRで実行されます。

Input BridgeのSteamVR警告が消えない時は、VRIFとsteamVRアセットをフォルダごと削除して入れ直したら直った

PCVRからwebXRに切り替えてたらこのエラーが消えなくなったΣ(゚Д゚)

Input Source set to ‘steamVR’ , but SteamVR integration has not been enabled. Would you like to enable it now?

Open Integrations Windowを開いてもsteamVRにチェック入ってるし、Bindingsフォルダも作成されてるのに…謎。

一応実行はできるけど、またコントローラーのバインド設定がおかしくなって効かなくなった(-_-;)

そしてコンソールにはこんなエラーが出ていた。

Assets\BNG Framework\Scripts\Core\InputBridge.cs(10,13): error CS0246: The type or namespace name ‘Valve’ could not be found (are you missing a using directive or an assembly reference?)

 

フォーラム見たら同じとこで躓いてる人いるっぽいな…。

プレイヤー設定のシンボル定義?みたいなところの設定の問題かもしれない。

 

しかしよくわからなかったので、結局VRIFとsteamVRのフォルダごと削除して入れ直し、設定し直して直した(;^_^A

直した後のスクリプトシンボル定義↓にはsteamVRSDKって書いてあったので、これの設定が消えてただけかな?

削除して入れ直した手順

正しい直し方かは不明だけど一応治ったので書いておく。

steamVRのフォルダ三つとBNG Frameworkを削除して、

パッケージマネージャーからVR Interaction FrameworkとsteamVR pluginを入れ直した。

設定とかはこのページの手順2あたりからを参照。

配置したオブジェクトとかはそのままでいけたので被害は最小限で済んだ。

これアセットフォルダに入ってるアセットはremoveできないのか、手動で消してるけどもっとスマートな方法があるかな?

webXRと切り替えてたらこうなったので、PCVRとwebXRのプロジェクトは別にしたほうがいいかも?

webXRとPCVRではプレイヤーの設定が異なるので、切り替えてる時にエラーが出てしまったんだと思う。

これPCVRとwebXRではプロジェクト分けて別に管理したほうがいいかも?

切り替える時にいちいちエラー出てたらちょっと大変だし…。

 

 

まぁぼちぼちいじってるのでまた何かあれば追記していきます。

おわりに

案外簡単にできて良かった。

自分の環境で動かすだけなら容量の制約がないPCVRはかなり良いかもしれない。

 

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

 

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