*2019/12/29 追記
#はじめに
最近のOculus Questのアップデートによりハンドトラッキングが可能になりましたが,個人的にUnityで実装する際に引っかかった点を備忘録としてまとめました.
Oculus側でのアップデートは済んでいる前提で以下記載します.
#Oculus Integrationのアップデートの問題点
##環境
今回使用したUnityのバージョンは2018.4.0f1です.
##AssetStoreでのアップデート
今回,既存のプロジェクトにOculus Integrationのアップデートを行おうとしましたが
まず最初に引っかかったのはAsset Storeから最新バージョンをアップデートできない点でした.
通常,最新バージョンをアップデートするときには,[import]のボタンが[update]との表示に変化しているはずですが,最新の(2019年12月29日時点)Oculus Integration(ver1.20)のダウンロード画面に行くとimportの状態のままです.
ここで,こちらの
旧版のAssetStoreにアクセスし,Oculus Integrationを検索すると無事Updateの画面になります.
これでプロジェクトに最新のOculus Integrationを統合できるようになりました.
##NameSpaceの競合によるエラー
これは,以前のOculus Integrationのバージョンによるのかもしれませんが,統合した後に複数のNameSpaceの競合エラーが発生しました.
同名のスクリプトのパスが変更されていたようです.
筆者の場合,Oculus/SampleFramework/Core/Video
の中にある同名スクリプト群を削除することで,Buildに成功しました.
#Unityでのハンドトラッキング実装の方法
1.Oculus/VR/scens/HandTestのシーンを既存プロジェクトへコピー
2.HandTest内のOVRCameraRigをコピー
3.OVRCameraRigのインスペクタを表示し,OVRManagerのInputをHandOnlyに
これで,VR空間での手による入力が可能になります.
手のマテリアルを変更する場合はOVRCameraRigの子オブジェクトである
LeftHandAnchor,RightHandAnchor直下にあるOVRHandPrefabのMaterialを変更します.
*追記箇所
また,以下をシーンに持ってくることで,応用先が広がります..
・Oculus/SampleFramework/Core/HandsInteraction/Prefabs/InteractableToolsSDKDriver
→人差し指からのrayや人差し指の指先位置が表示される
・Oculus/SampleFramework/Core/HandsInteraction/Prefabs/Hands
→InteractableToolsSDKDriverを使用する場合に必要な手を生成
Handsを使用する場合は先述したOVRHandPrefabを使用する必要はなくなります.
ただし,Handsの座標が(x,y,z)=(0,0,0)でないと,Handsはうまく動きません
カメラ位置を初期位置から変更している場合は注意してください.
以下,colliderの生成方法など今後実装していき次第,追記していきます.
(それらに関してはこちらのサイトを参考にさせていただく予定です)