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 Quest】XR Interaction Toolkitのサンプルから理解する"つつく処理"

Posted at

アドカレ

KENTOのひとりアドカレ12日目の記事です。
https://qiita.com/advent-calendar/2025/kento

環境情報

ツール/SDK バージョン
Unity 6000.0.62f1
Meta XR Core SDK 81.0.0
Open XR Plugin 1.16.0
XR Interaction Toolkit 3.0.9
XR Hands 1.7.1

事前準備は以下の通りです。

デモ

以下GIFのようにコントローラーや指先でつつくインタラクションをみていきます。
2025AdventCalendar19.gif

2025AdventCalendar20.gif

つつく処理

VRではよくPokeというつつく動作そのままの名前が付けられてインタラクションが実装されており、XRIでもPokeと定義されています。

つかむ処理同様、MetaのAPIへの依存はないため、XRIの機能で実装したインタラクションはOpenXR互換のデバイスであればそのままの移植が可能となります。

参考リンク:【Meta Quest】XR Interaction Toolkitのサンプルから理解する"つかむ処理"

つかむ動作の中核となるのが、XRPokeInteractorです。UIに関しては、このコンポーネントを用意し、UI側のCanvasにTrackedDeviceGraphicRaycasterをアタッチするだけでつつく処理が動作します。(XRUIInputModuleがシーンにある前提)

image.png

つつかれる側が3Dオブジェクトの場合、XRSimpleInteractableが必要です。IntaractableEventsに処理を登録することで、押した/離れたなどのイベントに応じた処理を実行可能となります。

image.png

XRPokeFilterは文字通り、つつく処理の条件をフィルタリングできます。
例えば、この画像の設定だと、PokeDirectionがNegativeYとなっており、かつPokeAndleThresholdが45度となっています。
image.png

真上から垂直に押す場合が0度となり、その角度から45度を許容範囲としてインタラクションが動作するようにフィルタリングされます。


         許可範囲(45度以内)

            \    ↓    /
             \   ↓   /
              \  ↓  /  ← この範囲内からのPokeのみ有効
               \ ↓ /
          ┌─────────────┐
          │   Button    │  
          └─────────────┘

もう1つ重要なコンポーネントとして、XRPokeFollowAffordanceがあります。
image.png

このコンポーネントはつついた時の押し込まれる挙動を簡単に設定できます。

わかりやすい例として、UIを見ていきます。Poke可能なUIにはXRIのコンポーネントとしてXRPokeFollowAffordanceだけがアタッチされているのですが、このコンポーネントだけで以下GIFのような押し込まれる挙動が作れます。

2025AdventCalendar18.gif

つつかれたときに押し込まれる挙動になってほしいパーツをあらかじめMaxDistanceと同じ距離だけ離れて配置しておけば、押し込まれる挙動がきれいに動きます。

image.png

image.png

3Dオブジェクトの場合も基本的に同じような設定で押し込まれる挙動を実現できます。

つかむ動作同様、ハンドトラッキングの際にもつつく処理を変更なく動かせるので非常に便利です。

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?