用途
Metaquest2で手で物をつかむ動作をしたいときに必要最低限何が必要なのかを調べたい場合。
公式のプレハブ使いまわすだけなのでコードなどは一切ないです。
また必要ない作業をしたくない場合は公式のサンプルを改造するだけでいいのでこれを見なくてもいいです。
ここではコントローラーで物をつかむことはカバーしていません、がたぶんHandのところがControllerに代わるぐらいだと思うので試してみてください(他力本願)
またMetaquest2を開発に使うにあたって必要な作業はこちらのサイトなどを参考にしながら整えてください。
環境
Unity 2021.3.1f1
URP template使用
結果
2つの場合がありますが必要な要素は一緒になります。なので後者は時間の無駄といえば無駄です。
最短の方法
Player側の準備
- InteractionRigOVR-FullSyntheticで検索をかけて見つかったものをHierarchyに追加()
- HandGrabInstractorを検索で見つけて1->InputOVR->Hands->LeftHand->HandInteractorsLeft下におく。この時HandGrabInstractorのHandRefコンポーネントのHandをInputOVRのLeftHandに設定する。
つかまれる物の準備
適当なゲームオブジェクトにRigidbody,Grabbable,HandGrabInteractableを追加するだけ。この時RigidbodyのGravityをオフにKinematicをオンにすると見やすいです。
公式のサイトの流れに従う場合
公式の流れに従って開発したい場合この公式リファレンスを見ることになると思います。InputOVRにHandを追加するところまでは公式に従ってもらえればあとは上と同じ方法で物がつかめるようになると思います。また上も同じですが手で使う動作がつかむことだけの場合はHandInteractorsLeftは必要ありません。
まとめ
久々に記事を書く+備忘録程度の感覚なので見づらいし多分ニーズもないんですが一応書きました。何かの機能を実装しようとやる気出して調べたらぺったんするだけが最適解の時ってすごい悲しくなりますよね。おわり。