XR Ray Interactor を用いて VR 物体を遠隔的に掴む【XR Interaction Toolkit】
今回の記事は XR Interaction Tookit の XR Ray Interactor を用いてVR物体を遠隔的に掴んでみます.
- 前回の記事
- 実行環境
- LeftHand Controller と RightHand Controller の中身
- XR Grab Interactive を用いて掴むまで
- Attach Transform で掴む場所を変える
- Movement Type で物体の動きのタイプを変える
- 実際に掴んでみる
- 終わりに
前回の記事
実行環境
- Unity 2019.4.6f1
- XR Interaction Toolkit 0.9.4-preview
LeftHand Controller と RightHand Controller の中身
XR Rig をデフォルトのままで配置すると,中身はMain Camera,LeftHand Controller, RightHand Controller であることは前回の記事に書いてあります.
Hand Controller のコンポーネントを見てみると,XR Controller,XR Ray Interactor, Line Renderer,XR Interactor Line Visual があります.
XR Controller コンポーネント
コントローラになる基本コンポーネントです. 主に注目するべきところは,Controller Node,Select Usage でしょうか.
Controller Node
どのデバイスがコントローラになるのかを設定します. Left Hand,Right Hand 以外にも Eye,Head,Tracking Reference...などもあります.
Select Usage
コントローラで選択を行いたい場合に,どのボタンを利用するか設定します.
Unity XR Input の一覧を一度見るといいと思います.
XR Ray Interactor,Line Renderer,XR Interactor Line Visual コンポーネント
この3つのコンポーネントはセットだと思います.
XR Ray Interactor は Ray を飛ばして物体とインタラクション出来るようにするためのコンポーネントです. Line Renderer と XR Interactor Line Visual は Ray Interactor のためのコンポーネントで, デフォルトだとValid Color Gradient で物体とインタラクション出来る状態の場合は白色に, Invalid Color Gradient で物体とインタラクション出来ない場合は赤色になってます.
XR Grab Interactive を用いて掴むまで
XR Grab Interactive は XR Interaction Toolkit が提供しているVR物体を掴むためのAPIです.
Class XRGrabInteractable | XR Interaction Toolkit | 0.9.4-preview
掴みたい物体にこちらのコンポーネントを付ければ大丈夫です.
Attach Transform で掴む場所を変える
XR Grab Interactable の Attach Transform に掴みたいTransformを設定することができます.
例えば,サンプルプロジェクトの Sword は Attach という空オブジェクトに設定されてます.
Movement Type で物体の動きのタイプを変える
Enum XRBaseInteractable.MovementType | XR Interaction Toolkit | 0.9.4-preview
Instantaneous
物体のTransformがAttach Pointと一致するようになります. Transformが直接更新されるため,物体のRigidbodyは掴まれている間, 無効化され,いわゆる「ジャダー」を引き起こすのを防ぎます.
Kinematic
こちらは物体のTransformではなく,Rigidbodyを更新しています. Instantaneous に比べて,やや「ジャダー」を引き起こします. また,Instantaneousと違い,描写(視覚的表現)が異なります.
VelocityTracking
物体のRigidbodyに速度と加速度が追加され,Rigidbodyに力を加えながら, Attach Pointに追従するようになります.「ジャダー」を引き起こしやすいです.
実際に掴んでみる
XR Ray Interactor Sample (2020.08.03)
終わりに
遠隔的に VR 物体を遠隔的に掴むことができました. 次回は XR Direct Interactor を用いて VR 物体を直接的に掴もうと思います.
gifでは容量10MBがそろそろキツイため,ついに技術アカウントで YouTube に動画投稿してしまった….