MetaQuest3でVRデモ 2. Cubeをつかむ and 投げるで実装した内容をCubeでなくBlenderで自作したモデルで実装する.
MetaQuest3でVRデモ 1. VRゴーグルでUnity初期画面を映すの実装が完了している前提で説明しています.まだの場合はこちらをご覧ください.
Blenderでの操作
かつて作っていたおサボり白ピクミンのモデルで実装.(公式がこのポーズのフィギュアを発売するのを待ち続けている)

すべてのメッシュを統合してから,fbxファイルとしてエクスポートする.回転やスケールはUnity側で調整するので,ここではそこまでシビアに調整しなくていい.
Unityでの操作
ProjectのAssets内に新しいフォルダとして「3Dmodel」を作成.任意だが後々データが散逸しないように.
fbxファイルをProjectのAssets > 3Dmodel内にドラッグアンドドロップで追加する.
更に,Assets > 3Dmodel内のモデルをHierarchyの空いたところにドラッグアンドドロップで追加.位置,角度,スケールを適宜調整する.
Hierarchyの3Dモデルを右クリックし,Interaction SDK > Add Ray Grab Interaction
このとき,セットアップウィザードでRigidbodyとBox Colliderも追加する.その後,Inspectorで以下のように修正.
- Rigidbody:Use Gravityにチェック,Is Kinematicのチェックを外す
- Box Collider:Is Triggerのチェックを外す ※チェックしているとRigidbodyの衝突判定が無効化される
この状態でビルドすると,自作3Dモデルを掴んで投げられる.オリマーさんやアルフ君,新米救助隊の気分を味わえる.
Box Colliderでなく,ほかのコライダーにしたい場合
- 3DモデルのInspectorからBox Colliderを削除(右上の…をクリックし,Remove Component)
- Add Componentからほかのコライダーを追加 ここではMesh Colliderを追加
- Mesh Collider内のConvexにチェック.凸包処理がされ,そのメッシュが当たり判定となる.
- Hierarchyの3Dモデルの子のISDK_RayGrabInteractionをクリック.
- Inspector内のCollider Surfaceを展開し,Colliderの右枠をクリックして3Dモデルを選択する.



左がBoxCollioderで右がMeshCollider.3Dモデルの形状によってはBoxCollioderでは当たり判定が広くなりすぎることもある.
コライダーを追加していないと当たり判定がつかないので,掴むこと自体が不可能になる.
Add Ray Grab Interactionでは自動的にコライダーに紐づけしているが,コライダーを変更したので再度手動で紐付けしている.