見出し画像

OculusのVR空間で物をつかむ実装方法を調べてみました。(Unity)

Oculus Questのチュートリアルアプリでキュープをつかむ練習があります。Unityで物をつかむ実装方法を調べてみました。

Unity 2018.4.0f1で新規プロジェクトを作成してAsset StoreからOculus Integrationをインポートします。

Oculus Integrationの中にコントローラーでキューブをつかむ AvatarGrab サンプルがあります。以下の場所の AvatarGrabを開きます。

AvatarGrab の場所
Assets\Oculus\SampleFramework\Usage\AvatarGrab

この状態でビルドしてOculusQuestで動作確認してみます。
(ビルド前にいくつか設定が必要です。ビルドについてはUnityでOculus Quest向けのビルドを試してみる。の参照でお願いします。)

コントローラーの位置に手が表示します。手をキューブに触れる位置において、コントローラーでつかむ動作でキュープをつかむことができました。

■新規シーンを作り「手でつかむ」実装方法を学習してみます。
新規シーンを作ります。Main Cameraを削除してLocalAvatarWithGrabプレハブを追加します。

LocalAvatarWithGrab の場所
Assets\Oculus\SampleFramework\Core\AvatarGrab\Prefabs\LocalAvatarWithGrab

LocalAvatarWithGrabのInspectorのTransformのPosition、Rotationが全て数値が0になっていることを確認と、ディフォルトはアバター表示するのでEnable Bodyのチェックを外してアバターを非表示にします。

シーンに床とテーブルと手でつかめるキュープを追加します。
床はPlaneを追加します。

テーブルはCubeを追加してマテリアルを赤色に設定します。

テーブルの上に手でつかめるキュープを追加してみます。
Cubeを追加します。追加したCubeのInspectorにRigidbodyとOVRGrabbableを追加とマテリアルを青色に設定します。

以上で完成です。
ビルドしてOculusQuestで動作確認してみます。

青色のキューブを手でつかむことができました。
次回はOculusQuestの描画性能について調べてみたいと思います。

この記事が気に入ったらサポートをしてみませんか?