LoginSignup
1
1

Quest3でのDepth API ver.0.1.0を用いたDynamicOcclusionアプリのセットアップ

Posted at

Quest3でのDepth API ver.0.1.0を用いたDynamicOcclusionアプリのセットアップ

この記事では2023年10月15日現在、UnityにてDepth APIを利用したDynamic Occlusionを行うアプリの作成セットアップ方法を解説します。

できるだけ初心者の方でもわかるように画像多めで解説します。

初期のパススルーアプリ制作の際と同様に、
DepthAPIの動作確認には毎回ビルドしてQuest3でRunする必要があります
(UnityのPlayモードでデバッグできません (もしかしたら私が間違っているだけかもです 有識者の方々教えてください))

環境

  • UnityHub 3.5.2
  • Unity 2022.3.11f1
  • Oculus Integration SDK v57

0. Unityプロジェクトのセットアップ

1. UnityHubで新たなUnityプロジェクトを作成

通常の「3D Core」テンプレートでプロジェクトをCreateします。
スクリーンショット 2023-10-18 210119.png

2. ヒエラルキーの初期オブジェクトを削除

  • mainCamera
  • Directional Light
    を削除します。
    スクリーンショット 2023-10-15 181120.png

    スクリーンショット 2023-10-15 181128.png

3. プラットフォームをAndroidに変更

左上のFile -> BuildSettingsを開き、画像のように「Android」で、

  • Texture CompressopnをASTC
  • RunDeviceを All Compatible device
  • Development Builにチェック(これは正式版では外す)
    のように設定して, 「Switch Platform」を実行する
    スクリーンショット 2023-10-18 214944.png
    スクリーンショット 2023-10-15 173634.png

ここまでで最低限の準備は完了

1. Depth API 0.1.0とOculus Integration v57のインストール

1. Oculus XR Pluginのインストール

Window -> PackageManagerを開く
スクリーンショット 2023-10-18 210341.png
左上の「+」ボタンを押し、
"Add package by name..."を選択
スクリーンショット 2023-10-18 210421.png
画像のように
name -> com.unity.xr.oculus
version(optional) -> 4.2.0-exp-env-depth.1
と入力して Add を押す
スクリーンショット 2023-10-18 210719.png

するとPackagesに
Oculus XR Plugin
が追加され、Assetsに
XR
が追加されている
スクリーンショット 2023-10-18 210806.png

2. Depth API ver.0.1.0のインストール

ここでDepthAPIをインストールするが、ついでにOculusIntegration ver.57の一部もインストールされる

Window -> PackageManagerを開く
スクリーンショット 2023-10-18 210341.png

左上の「+」ボタンを押し、
今度は"Add package from git URL..."を選択
スクリーンショット 2023-10-18 210840.png

URL欄には
https://github.com/oculus-samples/Unity-DepthAPI.git?path=/Packages/com.meta.xr.depthapi
を入力し Add
スクリーンショット 2023-10-18 210912.png

*ここでもしURPでプロジェクトを作成している場合は同様の手順で
https://github.com/oculus-samples/Unity-DepthAPI.git?path=/Packages/com.meta.xr.depthapi.urp
もAddする
(初心者の方は飛ばして大丈夫です)

いろいろポップアップが出てくるので言われるがままにボタン押していくスクリーンショット 2023-10-18 210957.png
(↑これはどっちでもOK)
スクリーンショット 2023-10-18 211001.png

すると
PackageにMeta XR Utilitis SDKが追加され、AssetsにOculusとResoursesが追加される(↓の画像参照)
スクリーンショット 2023-10-18 211037.png

3. Oculus Integration SDKの残りをインストール

ここのパートは必要に応じてだが、初心者のうちは一通りインストールしておくのが無難です

windows -> PackageManagerを選択
スクリーンショット 2023-10-18 211123.png
左上の「+」ボタンを押し、MyAssetsを選択
スクリーンショット 2023-10-18 211142.png
OculusIntegrationを選択し、「Import」

もしここでOculusIntegrationが見つからなかった場合下記詳細参照


https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022?locale=ja-JP
からマイアセットにOculusIntegrationSDKを追加してください
スクリーンショット 2023-10-18 221235.png

スクリーンショット 2023-10-18 211209.png

ここでOculusProjectConfig.assetsのチェックを外してインポート
(こいつを2重で上書きインポートするとうまく動かない。。。気がする)
スクリーンショット 2023-10-18 211352.png

いろいろポップアップ出てくるので言われるがままボタン押す
スクリーンショット 2023-10-18 211425.png
スクリーンショット 2023-10-18 211542.png
スクリーンショット 2023-10-18 211553.png
スクリーンショット 2023-10-18 211607.png
スクリーンショット 2023-10-18 211618.png

以上で必要なアセット系統のインストールが完了

2. Oculus Project SetUp Toolを使って細かい部分の設定

OculusIntegration v57からこれまで面倒だった細かい設定を一挙にやってくれるセットアップツールが実装されました。これを使います

1. 右下のオキュラスマークを押し、Project SetUp Toolを選択します

スクリーンショット 2023-10-18 211710.png
スクリーンショット 2023-10-18 211730.png

2. Androidタブを選択し、FixAllとApplyAllをクリック

スクリーンショット 2023-10-18 211747.png

3. PCタブを選択し、FixAllを選択

スクリーンショット 2023-10-18 211852.png

4. XR Plug-in Managementの設定

同じ"Project Setting"画面の、
左下の「XR Plug-in Management」を選択し
画像のようにPCタブのOculusチェックボックスにチェックが入っていることを確認
もしここにチェックが入っていないとUnityのPlayで直接デバックできません
スクリーンショット 2023-10-18 211948.png

5. 追加の細かい確認

同じ"Project Setting"画面の
左下の「XR Plug-in Management->Oculus」を選択し
AndroidタブとPCタブでそれぞれ画像の設定になっているか確認
スクリーンショット 2023-10-18 212049.png
スクリーンショット 2023-10-18 212124.png

以上でDepthAPIを用いた開発のセットアップは完了です。

3. サンプルデモアプリの作成

Oculus Integration v.57より追加された「Building Blocks」を用いて簡単なDynamic Oculusionを用いたアプリを実装します。

1. Building Blocksの起動

右下のオキュラスマークを押して、Building Blocksを選択
スクリーンショット 2023-10-18 223245.png
スクリーンショット 2023-10-18 223302.png

2. パススルーのハンドトラッキングアプリを構築

  • Background Passthrough
  • Grabable Item
    をAddする
    スクリーンショット 2023-10-18 223329.png
    すると下記の画像のように
  • [BB] Camera Rig
  • [BB] BackGround Passthrough
  • [BB] Grabable Item
    がヒエラルキーに追加されている
    スクリーンショット 2023-10-18 223413.png

ここでCameraRigの「OVR Manager(Script)」コンポーネントの設定が画像のようになっているか確認
スクリーンショット 2023-10-18 223447.png
スクリーンショット 2023-10-18 223538.png
スクリーンショット 2023-10-18 223611.png

ここまでで「パススルーのハンドトラッキングアプリ」が実装できている
Quest3をUSB CケーブルでPCに接続しQuestLinkでPCVRモードにした状態でUnityのPlayモード(再生ボタン)を押すことで動作確認できる
Unity上でのこの動作確認ではパススルーはカクカクの非常に重いです

もしパススルーができない場合はOculusアプリの設定を確認してください


スクリーンショット 2023-10-18 224713.png

3. DynamicOcclusionの実装

Packages(Assetsじゃないので注意) -> DepthAPI -> Core -> Prefabs
内の
「EnvironmentDepthOcclusion」
をヒエラルキーへドラッグドロップ
スクリーンショット 2023-10-18 224912.png
ヒエラルキーへ追加される↓
スクリーンショット 2023-10-18 224923.png

「EnvironmentDepthOcclusion」の「Environment Depth Occlusion Controller(Script)」コンポーネントでオクルージョンの種類を選択(SoftOcclusionは処理重め)
スクリーンショット 2023-10-18 225117.png

DynamicOcclusion用の新たなマテリアルを作成
スクリーンショット 2023-10-18 225409.png
マテリアルのシェーダーを
「Meta/Depth/BiRP/Occlusion Standard」に変更
スクリーンショット 2023-10-18 225532.png

作成した新規マテリアルをヒエラルキーにある「[BB]Grababble Item」にドラッグ&ドロップして適用する
スクリーンショット 2023-10-18 225805.png
[BB]Grabbable Itemのマテリアルが作成した新規マテリアルに変わっていることを確認
スクリーンショット 2023-10-18 225922.png

以上でデモアプリの作成が終了!

4. デモアプリのビルドと動作確認

再度Quest3をUSB CケーブルでPCに接続し、
File -> Build Settingsを開き、
スクリーンショット 2023-10-18 230417.png
Build And Runを実行
スクリーンショット 2023-10-18 230444.png
ファイル名を設定してapkファイルを保存
スクリーンショット 2023-10-18 231227.png
Depth APIはExmentalのため、Experimental featureを実行可能にするか聞かれるのでYesを選択
スクリーンショット 2023-10-18 231317.png

すると自動的に作成したアプリが実行される
スクリーンショット 2023-10-18 234151.png
スクリーンショット 2023-10-18 234207.png
スクリーンショット 2023-10-18 234214.png

ちなみに作成したアプリはアプリ検索->提供元不明 のところにある
スクリーンショット 2023-10-18 233150.png

ちなみにExperimental featureはQuest3の電源を切るたびに実行できなくなるので、以後は毎回
adb shell setprop debug.oculus.experimentalEnabled 1
コマンドでテスト機能を有効にする必要があります
https://developer.oculus.com/experimental/experimental-overview

以上、DepthAPIによるDynamicOcclusionはMixedRealityの新たな世界を切り開く大きな機能ですので、正式リリースを楽しみに待ちましょう

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1