0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Meta XR SDK 】UnityでXRアプリ開発 #1 プロジェクト作成からインタラクションまで

Last updated at Posted at 2025-09-07

はじめに

少し前にSteamVR Pluginを使ってVRアプリを開発していた経験がありますが、今はOpenXRが標準となり、Metaも独自SDKの開発にかなり力を入れていたりと、XRアプリ開発においては必須知識が増えつつあります。
しかし私はまったくその辺の知識がないので、手探りしつつ備忘録も兼ねてまとめていくのでみなさんの参考になれば幸いです。

この記事でわかること
プロジェクトの作成から、追加したオブジェクトをハンドトラッキングで掴めるようになるまでの過程を説明しています。

Videotogif.gif

注意
Meta Questが必要です。

1. プロジェクトの作成

Unityのバージョンは将来も見据えてUnity 6にしました。
Coreは普通のUniversal 3Dにしましょう。
image.png

2. Meta XR All-in-One SDKのインストール

2.1 インストール

初めての方はここらからアクセスしてMy Assetsに追加しましょう。

追加したら、Unityに戻って、Package Managerを開いて、

image.png

インストールしましょう。
image.png

インストールが終わると再起動を求められるので、そのまま再起動しましょう。

無事にできていれば左上のタブ欄Meta XR Toolsタブが追加されています。

image.png

2.2 エラー解消処理

このままだといろいろエラーが出てしまうので、Project Setup Toolを開いて、

image.png

Fix AllApply Allを押してエラーを解消します。

image.png

注意
画像ではPCアイコンの部分でのみFix Allを押していますが、その右側にあるアンドロイドとMetaアイコンの部分についても同様に選択してFix Allすることを強くお勧めします。
これを治さずに発生したバグで筆者は数時間溶かしました。。。。

Fix ALlを押しても解決しないやつがあると思います。これは内容に書いてある通り、OpenXR Pluginが入ってないからです。

image.png

同じProject Settingsウィンドウの一番下にあるXR Plugin Managementを選択して、インストールします。

image.png

インストールが終わったら、3つのチェックボタンが出てくるので、Open XRにチェックを入れましょう。

image.png

そのままYesを選択。

image.png

するとProject Validationが開くと思うので、こちらも同様にFix Allを押します。こちら処理にすこし時間がかかるのでちょっと待ちましょう。

image.png

無事にエラーがなくなりました。

image.png

注意
こちらも同様に、右側にあるアンドロイドとMetaアイコンの部分を選択してエラーがないことを確認してください。

先ほどのMeta XRに戻るとこちらもエラーが解消されているはずです。

image.png

3. Building Blocksの配置

Meta XR SDKの特徴として、主要機能をモジュール感覚で追加できることです。
Building Blocksを押すと、ウィンドウが開きます。

image.png

Coreを選択しましょう。

image.png

なんといってもまずは動作確認。なのでCamera Rigブロックを追加してHMDでUnityの世界を見られるようにしましょう。
ブロックをヒエラルキーにドラッグ&ドロップしても追加できますし、そのまま選択してSelect Blockを押しても追加できます。

image.png

追加したらこんな感じ。

image.png

4. 実際にMeta Quest3で確認してみよう

これで最低限の環境は整ったので、実際にQuest3で確認してみましょう。

4.1 Meta Quest Linkアプリの導入

PCとQuestの通信方法ですが、自分はAir Linkを使って無線で接続しています。
有線であろうが、無線のAir LinkであろうがPCにMeta Quest Linkアプリをインストールする必要があります。

公式の解説ページがあるのでこちらを参照してみてください。

ちなみに、デバイスを追加するフェーズでQuestをなかなか認識してくれないことがあると思いますが、そのときはMeta Quest Linkアプリを再インストールすると認識してくれるようになると思います。(これが一向によくならないのがQuestアプリ)

image.png

4.2 接続

Meta Quest Linkアプリの設定が終わったと仮定して次に進みます。

Quest本体を起動して、メニューバー?の左下にあるバッテリーや時間が表示されているボタンを押すとクイック設定が開くのでLinkを選択します。

com.oculus.vrshell-20250907-144223.jpg

無線のAir Linkの場合はAir Linkを使用トグルをオンにします。
有線接続の場合はオフのままでいいです。

com.oculus.vrshell-20250907-144738.jpg

事前に、Meta Quest Linkアプリで設定が完了していれば自分のPCが検出されるはずです。

com.oculus.vrshell-20250907-144843.jpg

起動するとこのような画面になります。

com.oculus.vrshell-20250907-144909.jpg

ここまでくればUnityとQuestの接続設定は完了です。

Unityに戻って、Playボタンを押して実行します。

image.png

QuestのほうにUnityのGameの画面が表示されていれば成功です。

image.png

5. カメラリグのもろもろ設定

今のヒエラルキーには、プロジェクト作成時に最初からある3つと、先ほど追加したQuest用のCamera Rigがある状態です。

image.png

Questに映像を出力しているカメラは、先ほど追加した[BuildingBolock] Camera Rigで、最初から存在しているMain Cameraはもう使われていないので、消しましょう。

image.png

気になるUnity内でのこのQuestの座標ですが、[BuildingBlock] Camera Rigのインスペクターを見てみると、初期のTracking Origin TypeFloor Levelが選択されています。
image.png

これは、実行したときのQuestの位置がXとYの原点となり、高さのYはガーディアンの床の高さを引き継いでくれるようです。基本的にこのTracking Origin Typeを変更することはないと思います。

image.png
引用:https://www.docswell.com/s/Ovjang/ZP9V6X-MetaXRSDK66/65

6. ハンドトラッキングの導入

Metaのハンドトラッキングは優秀なので使わない手はありません。

Camera Rig追加時と同様に、Building Blocksを選択してHand Trackingを追加しましょう。

image.png

すると、Camera Rigの親オブジェクトの中の子オブジェクトとしてHand Tracking leftrightが追加されました。

image.png

このまま実行すると、自分の手をトラッキングしたオブジェクトが描画されます。簡単ですね。

image.png

7. オブジェクトをつかむ

ハンドトラッキングができるようになったので、実際にUnity内のオブジェクトをつかんでみましょう。

今度はInteractionを選択して、Grab Interactionを追加します。このとき、必須ブロックであるInteractions Rigも同時に追加されます。

image.png

ヒエラルキーには新たに3つのオブジェクトが追加されました。

image.png

このまま実行してみましょう。

床にブロックがあるので実際につかんで動かしてみましょう。

image.png

7.1 任意のオブジェクトを掴めるようにする

この触れるブロックは少し特殊で、このオブジェクトにはHandGrabInstallationRoutineという謎の子オブジェクトがついています。

image.png

この子オブジェクト選択してインスペクターを見てみると、Meta XR SDKオリジナルのスクリプトがついていることがわかります。つまりこれがないとハンドトラッキングでさわることがないということでしょうか。

image.png

いろいろ調べていると、

掴めるようにしたいオブジェクトに対して、

  • Rigidbody
  • Grabbable
  • Physics Grabbable
  • Hand Grab Interactable
    すべてを追加する必要があるようです。

参考ページ

今回は例としてシリンダーを掴めるようにしてみます。

3Dオブジェクトはヒエラルキーの場所で右クリックしてメニューを開いて追加します。

image.png

このままだとバカでかいサイズなので、x,y,zそれぞれのスケールを0.1にします。

image.png

続いて、掴めるようにコンポーネントを追加します。
Add Componentpを押してRigidbodyを検索して追加します。

image.png

今回は床を設置してないので、Is Kinematicにチェックを入れて、離したときに飛んでいかないようにしましょう。

image.png

次にGrabbableを追加します。これは設定そのままでいいです。これは絶対必須のコンポーネントだそう。

image.png

Physics Grabbableを追加します。これも設定そのまま。これを追加しないと離したときにおかしな挙動をするそう。
これはなくても問題なかったので、もしかしたら不要かもしれません。

image.png

最後にHand Grab Interactableを追加します。

image.png

これで実行してみます。

無事に最初の青キューブと追加したシリンダーを持つことができました。

Videotogif.gif


今回はここまで。次回はパススルーなどやっていきます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?