Synamon’s Engineer blog

Synamonでは、VR空間に複数人が同時に接続可能で、多彩な標準機能を搭載している『NEUTRANS』という独自のVRシステムを開発しています。ビジネスなどの現場でも使いやすいよう、独自の機能や技術を日々追究しています。このブログでは、『NEUTRANS』開発の裏側にあるVR技術と、それを支えるUnityやC#といった技術の話を書いていきます。

Varjo Unity XR SDKを使ってパススルーを試す

こんにちは!
Synamonでエンジニアをしている黒岩(@kro96_xr)です。

プレスリリースにもあります通り、SynamonではVarjo XR-3を導入してよりハイエンドなXRコンテンツの開発にチャレンジしております。
f:id:krocks96:20210913171213j:plain

今回Unity向けSDKを触る機会がありましたのでSDK内のサンプルを動かすまでの手順を記事としてまとめておこうと思います。正確な情報が知りたい方は公式リファレンスも参照してくださいね。

なお、Varjo XR-3の紹介や体験記事については下記の記事にまとめられておりますのでよろしければご覧ください。

note.com

必要要件(2021/9/12時点)

大きいのはXR-3がなくてもVarjo Baseのシミュレータで簡易なテストは可能なことですね。私もリモートワーク中にシミュレータで実装をした後に出社して実機でテストというようなことをしています。
また、今回の記事で使用している私用PCのグラボはGTX1060です。実際にVarjoを動かすことはできないスペックですがシミュレータでサンプルを動かすくらいならできました。
機材費が高額となるため個人で実機を使用するのは難しいですがSDKを触ってみたいという方はぜひ試してみてください!

プロジェクトのセットアップ

SDKに同梱されているサンプルがHDRP対応なのでサンプルを動かすだけならHDRPテンプレートからプロジェクトを作成するのが楽かと思います。
また、URPだとPostProcessに対応していないようなのでリッチなコンテンツを作りたい場合はHDRP一択になるのかなと考えています。

When using URP, you need to modify the camera settings to be able to write into the alpha channel of the color buffer. For video pass-through to work, make sure the camera’s Post Processing and HDR settings are disabled.
引用元

それでは実際のプロジェクト作成に移りましょう!
* プロジェクトの作成
f:id:krocks96:20210912185809p:plain

  • パッケージマネージャーからSDKをインポート

    • Gitを使う場合
    • ローカルにダウンロードして使う場合
      • Window > Package Managerをウィンドウを開き、左上の+ボタンからAdd package from diskをクリック
      • ダウンロード済のSDKのpackage.jsonを選択してインポート
  • プロジェクト設定の変更

    • Edit > Project Setting > XR Plug-in ManagementからVarjoのチェックをONにしてください
      f:id:krocks96:20210912191132p:plain
  • レンダリング設定の変更

    • 前提知識
      • Varjoのディスプレイは中央のFocus Displayと周辺のContext Displayがあり、両目で計4枚のディスプレイがあります
      • Edit > Project Setting > XR Plug-in Management > Varjoから各種レンダリング設定を変更できます
    • パススルーを使用するための設定
      • OpaqueをFalseにする(標準がTrueなので変更必須)
        • Falseにすることでアルファブレンディングを行うようになります
          f:id:krocks96:20210912191317p:plain
      • (HDRP)Project Setting > Quality > HDRP > HDRenderPipelineAsset > Rendering > Color Buffer FormatをR16G16B16A16
        f:id:krocks96:20210912191743p:plain
      • (HDRP)カメラのBackgroud TypeをColorに、Background ColorをRGBA(0,0,0,0)
        f:id:krocks96:20210912192033p:plain
      • (URP)カメラのBackgroud TypeをSolid Colorに、Background ColorをRGBA(0,0,0,0)
        f:id:krocks96:20210912194317p:plain
      • (URP)カメラのRendering > Post ProcessingをFalseに
        f:id:krocks96:20210912193231p:plain
      • (URP)カメラのOutput > HDRをOFFに
        f:id:krocks96:20210912193415p:plain

これで設定はOKです。

サンプルシーンの読み込みとシミュレータでのテスト

  • サンプルシーンの読み込み
    Varjo XR Plugin>2.1.1>HDRP Samplesに各種サンプルシーンがあるのでそれを使用してください。
    今回はパススルーの設定をしましたのでMixedRealityを使用します。
    f:id:krocks96:20210912194739p:plain

  • Varjo Baseでのシミュレーション
    なにも接続せずにVarjo Baseを起動すると"No headset connected"となりToolsは選択できない状態ですが、左下の"Analitics window"だけは使用できます。 f:id:krocks96:20210912194918p:plain

Analitics windowをクリックすると新規ウィンドウが開きますので、左下のボタンをクリックしてメニューを表示>Simulateボタンを押してXR-3を選択してください。
f:id:krocks96:20210912195253p:plain

選択すると、Analitics windowが再起動しますので、これで準備完了です。
この状態でUnityでPlayを押すとAnalitcs windowにレンダリング結果が表示されます。
ピンクの部分がパススルーになる部分です。
f:id:krocks96:20210912195703p:plain

おわりに

本記事ではVarjo Unity XR SDKを使ってサンプルシーンを試してみました。
現状では中々触る機会がないような機材ですが、シミュレータもありますので興味ある方はぜひ触ってみてください!
マーカー検知やハンドトラッキングについても実機検証は出来ているので次回以降の記事で触れられたらと思います。

ここまで読んでくださりありがとうございました!

▼最後にお知らせです▼

お知らせ

Synamonは、Unity / C#エンジニア、テックリードを中心に新しい仲間を募集中です。
「XRが当たり前の世界をつくる」というミッションに共感したメンバーが、切磋琢磨しながら日々挑戦しています!カジュアル面談も実施中なので、ご興味ある方、お気軽にご連絡ください。
カジュアル面談でご来社いただきXR-3を体験することなども可能ですよ!

カジュアル面談はMeetyから▼
meety.net

エントリーはこちら▼
herp.careers

また、本テックブログやnote記事のお知らせは、Synamon公式Twitterでも発信もしています。
弊社の取り組みに興味を持っていただけたら、ぜひフォローお願いいたします!
twitter.com