SlideShare a Scribd company logo
OCULUS INTEGRATION
INTERACTION SDKで物をつかむ編
大久保 聡
Mail ovjang@gmail.com
Twitter @followapp
環境構築
 環境設定については、PlusinとProject Settingsの一部をされりと入れていますが、細かな部分は解説
されているHomeページがたくさんありますので省略します。
 プロジェクトはURPで作成しています。
 バージョン
Oculus Inetgration 46.0
Oculus XR Plugin 3.2.1(or 1.11.2)
Unity 2021.3.12f1 (or 2020.3.29f1)
PLUGINのインポート
 Oculus IntegrationをImport
PLUGINのインポート
 Oculus XR Pluginを利用。
PROJECT設定
 XR Plug-in Managementの設定もいい感じに終わらせる。
PROJECT設定
 Oculusの設定
OCULUS INTEGRATION
新規シーン
 OVRCameraRigを検索し、シーンに追加する。
ハンドトラッキング用のOVRHANDPREFABを追加
 OVRHandPrefabを検索し、左右の手のアンカーの下に配置する。
OVRHANDPREFABの設定
 プレハブが左手設定になって
いるので、右手を設定する。
コントローラ用のOVRCONTROLLERPREFABを追加
 OVRControllerPrefabを検索し、左右のコントローラーアンカーの下に配置する。
OVRCONTROLLERPREFABの設定
 左右のコントローラーにTouchコントローラー
を割り当てる。
両手に
実施
URPプロジェクト
 マテリアルをUpgradeしてURP対応にす
る。
ここからやっとINTERACTION SDKを使う
OVRINTERACTIONを追加
 OVRInteractionを検索して追加。
INTERACTION SDK側に手の表示をゆだねる①
 OVRInteractionに、CameraRigの参照とCameraRigRefを設定する。
INTERACTION SDK側に手の表示をゆだねる②
 Interaction側で手の表示は行うため、両方の手のOVRHnadPrefabの手の表示部分を削除する。
両手に
実施
INTERACTION SDK側に手の表示をゆだねる③
 OVRInteractionの下に、OVRHmd、OVRControllers、OVRHandsを追加。
OVRCONTROLLERSの設定①
 OVRControllerDataSourceに参照を設定
両手に
実施
OVRCONTROLLERSの設定②
 DebugVisualsを非Activeに設定
両手に
実施
OVRHANDSの設定①
 両方の手のHandFeeaturesに、World Transformの参照をセット
両手に
実施
OVRHANDSの設定②
 両方の手ののOVRHandDataSourceに
両手に
実施
手でつかむ設定を入れる
コントローラでつかむ①
 ControllerGrabInteractorを検索し、ControllerInteractorsの配下に追加する。
コントローラでつかむ②
 両方の手のControllerGrabInteractorに、Controllerの参照を設定する。
両手に
実施
コントローラでつかむ③
 両方の手のCotrollerInteractorsに、追加したInteractorの参照を設定する。
両手に
実施
ハンドでつかむ①
 HandGrabInteractorを検索し、HandInteractorsの配下に追加する。
ハンドでつかむ②
 両方の手のHandGrabInteractorに、Handの参照を設定する。
両手に
実施
ハンドでつかむ③
 両方の手のHandInteractorsLeft(Right)に、追加したInteractorの参照を設定する。
両手に
実施
つかまれる側
CUBEをつかめるように①
 Cubeを作成し、RigidBodyを追加。
 落ちないようにUse Gravity=True、Is Kinematic=Trueに設定します。
CUBEをつかめるように②
 Cubeに、One Grab Free TransfomerとGrabbableコンポーネントを追加。
 GrabbableコンポーネントにTransfomerを設定。
CUBEを手でつかめるようにする
 Cubeに、Hand Grab Interactableコンポーネ
ントを追加。
 Hand Grab Interactableコンポーネントに掴み
位置とRigidbodyを設定。
CUBEをコントローラーでつかめるようにする
 Cubeに、Grab Interactableコンポーネントを
追加。
 Grab Interactableコンポーネントに掴み位置と
Rigidbodyを設定。
 手でもコントローラでも、Touch手でもつかめるようにするならば、Interactableを複数つければ良
いです。
その他のコンポーネント
Grabbable 挙動
Grabbable 空中に固定 Use Gravity = True、 Is Kinematic = True
Physics Grabbable 物理挙動をつける Use Gravity = True、 Is Kinematic = False
Grabbableコンポーネントと併用。
Transformaer 挙動
One Hand Free Transformer 片手持ち
One Hand Translate Transformer XYZの相対移動範囲を限定できる。
平面上を動かしたりする場合に利用。
One Hand Rotate Transformer 回転軸を固定、回転のPivotと回転範囲を指定でき
る。
Two Hand Free Transformer 両手持ち
PHYSICS GRABBABLEの例
 右手から左手に渡せるようにな
る?
ONE HAND TRANSLATE TRANSFORMERの例
 移動可能範囲を設定する場合は、
Consrainにチェックをいれる。
XとZを-30cm~30cmしか移動
できないようにし、Yの移動制限
はなしの場合。
TWO HAND FREE TRANSFORMERの例
 両手で握って回転や拡大縮
小させる場合。
拡大縮小に制限を設ける場
合は、Cnnstrainに値を設
定。
HAND POSEの作り方
POSE RECORDER
 Hand Grub Pose Recorderか、Hand Grab Pose Live Recorderを使う2通りの方法があります。
ポーズを作成する前準備
 mugMeshを検索し、シーン上に配置します。握れるようにGrabbableの設定を追加。
左手のポーズ作成
 Hand Grub Pose Recorderをメニューから開きます。
 Handと握られる側のRigidBodyを設定します。
ポーズをとって記録します
 UnityをPlayし、 手で作りたいポーズを演じます。
 狙いのポーズがとれたら、Hand Grub Pose RecorderのRecordボタンを押下します。
 全部のポーズが記録できたら、Save to Collectionボタンを押下します。
コレクションを読み込む
 UnityのPlayを停止。
 Hand Grub Pose RecorderのLoad From Collectionボタンを押下します。
手のポーズ設定
 親指と人差し指を固定し、他の指は自由に設定する。

More Related Content

PPTX
Oculus Interaction SDK でグラブまわりの設定方法
PPTX
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
PDF
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
PDF
Ingress on Azure Kubernetes Service
PPTX
Sonar qubeでちょっと楽しい静的解析
PDF
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
PDF
決済サービスのSpring Bootのバージョンを2系に上げた話
PDF
Docker Compose 徹底解説
Oculus Interaction SDK でグラブまわりの設定方法
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
Ingress on Azure Kubernetes Service
Sonar qubeでちょっと楽しい静的解析
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
決済サービスのSpring Bootのバージョンを2系に上げた話
Docker Compose 徹底解説

What's hot (20)

PPTX
さくっと理解するSpring bootの仕組み
PDF
猫でも分かるUE4.22から入ったSubsystem
PDF
怖くないSpring Bootのオートコンフィグレーション
PDF
最近の単体テスト
PPT
Plug-ins & Third-Party SDKs in UE4
PDF
Unityでパフォーマンスの良いUIを作る為のTips
PDF
猫でも分かる UE4の新しいサンプル「Action RPG」について
PPTX
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
PDF
PostgreSQLアンチパターン
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
PDF
わからないまま使っている?UE4 の AI の基本的なこと
PDF
PostgreSQL 15の新機能を徹底解説
PDF
例外設計における大罪
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
Google Cloud でアプリケーションを動かす.pdf
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PPTX
イベント・ソーシングを知る
PDF
UE4で作成するUIと最適化手法
PDF
Djangoのエントリポイントとアプリケーションの仕組み
さくっと理解するSpring bootの仕組み
猫でも分かるUE4.22から入ったSubsystem
怖くないSpring Bootのオートコンフィグレーション
最近の単体テスト
Plug-ins & Third-Party SDKs in UE4
Unityでパフォーマンスの良いUIを作る為のTips
猫でも分かる UE4の新しいサンプル「Action RPG」について
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
PostgreSQLアンチパターン
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
わからないまま使っている?UE4 の AI の基本的なこと
PostgreSQL 15の新機能を徹底解説
例外設計における大罪
コンテナの作り方「Dockerは裏方で何をしているのか?」
Google Cloud でアプリケーションを動かす.pdf
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
イベント・ソーシングを知る
UE4で作成するUIと最適化手法
Djangoのエントリポイントとアプリケーションの仕組み
Ad

Similar to Oculus Interaction SDK で物をつかむ編 (9)

PDF
Oculus Go アプリケーション開発
PDF
Oculus Go アプリ開発ハンズオン
PDF
HoloLensハンズオン(ショート)
PDF
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
PDF
Phalcon + AngularJSで作る動画プラットフォーム
PPTX
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
PDF
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
PDF
【エンジニア勉強会】MicrosoftAzure.
PPT
AIRKinect
Oculus Go アプリケーション開発
Oculus Go アプリ開発ハンズオン
HoloLensハンズオン(ショート)
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
Phalcon + AngularJSで作る動画プラットフォーム
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
【エンジニア勉強会】MicrosoftAzure.
AIRKinect
Ad

More from 聡 大久保 (20)

PPTX
空間を認識する - 取り込みから表示まで -
PPTX
Photon Fusionのはじめの一歩
PPTX
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
PPTX
Hololens2でアカウント情報の取得
PPTX
HoloLens2とPCで、WebRTCで映像をやりとり
PPTX
UnityでVRアプリ(Android Cardboard)を作る -準備編-
PPTX
VRでのUI設計のヒント
PPTX
ハードサーフェイスモデリング勉強会(Blender2.79b編)
PPTX
Google Tangoで 現実世界を感じてみよう
PPTX
仮想マシンを仮想空間で見る Cloud roadshow
PPT
AWSのEC2の複数インスタンスからファイルを共有する方法
PPTX
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
PPTX
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
PPTX
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
PPTX
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
PPTX
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
PPTX
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
PPTX
awsを学ぶ上で必要となる前提知識(DB)
PPTX
AWSを学ぶ上で必要となる前提知識(SSL)
PDF
Awsを学ぶ上で必要となる前提知識(DNS/LB)
空間を認識する - 取り込みから表示まで -
Photon Fusionのはじめの一歩
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2でアカウント情報の取得
HoloLens2とPCで、WebRTCで映像をやりとり
UnityでVRアプリ(Android Cardboard)を作る -準備編-
VRでのUI設計のヒント
ハードサーフェイスモデリング勉強会(Blender2.79b編)
Google Tangoで 現実世界を感じてみよう
仮想マシンを仮想空間で見る Cloud roadshow
AWSのEC2の複数インスタンスからファイルを共有する方法
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
awsを学ぶ上で必要となる前提知識(DB)
AWSを学ぶ上で必要となる前提知識(SSL)
Awsを学ぶ上で必要となる前提知識(DNS/LB)

Oculus Interaction SDK で物をつかむ編