NITMic Advent Calendar 2021 4日目の記事です。
HaritoraXを使って6点トラッキングをしようとした際、ネットの情報が少なかったり古かったりで困ったので、メモとして残したいと思います。
想定読者
- HaritoraXとOculusQuestを使ってUnity上で6点トラッキングを行いたい人
前提としてHaritoraXのセットアップ(SteamVRへのHaritoraXアドオン導入等)は完了しているものとします。HaritoraXのセットアップに関してはHaritoraX公式オンラインマニュアルを参考にしてください。
完成図
環境
- Unity 2020.3.20f1
- HaritoraX
- OculusQuest(Oculus Link)
SteamVR Pluginのインポートと初期設定
新規プロジェクトを作成し、SteamVRをインポートして、初期設定を行います。
- SteamVR Pluginをインポート(インポート完了時にUnity の設定を SteamVR の推奨設定に変更するウィンドウが開くので、左下の「Accept All」をクリック)
- Unity > Edit > Project Settings > XR Plug-in Managementの OpenVR Loader にチェックを入れる
- Window > SteamVR Input メニューを開く(開くと
It looks like your project is missing an actions.json. Would you like to use the example files?
というメッセージが出るので、「Yes」を選択) - 開いたSteamVR Inputウィンドウの左下にある「Save and generate」をクリック
下記記事を参考にさせて頂きました(というかそのまんまです)
これにて、SteamVR Pluginの初期設定は完了です。この記事では、今インポートしたSteamVR Plugin内にあるプレハブの**[CameraRig]とcontroller**を利用して、トラッキングポイントを取得します。
①OculusQuestで3点トラッキング
- Assets > SteamVR > Prefabs > [CameraRig] を Hierarchyにドラッグ&ドロップ
-
OculusQuestをOculusLinkでPCに接続し、SteamVRを起動させた状態でPlayボタンを押す
頭、右手、左手で3点がトラッキングできています。
うまくトラッキングポイントを取得してくれない時があったので、その場合は再起動等をしてみてください。
②HaritoraXのトラッキングポイントを追加して6点トラッキング
HaritoraXのトラッキングポイントは、SteamVR_TrackedObject.cs
をオブジェクトにアタッチすることで取得できます。
以下のデモでは、SteamVR Plugin のcontrollerプレハブにSteamVR_TrackedObject.cs
をアタッチさせることでトラッキングポイントとしています。
-
Assets > SteamVR > Prefabs > controller を Hierarchyに腰用、右足用、左足用の3つをドラッグ&ドロップ
-
controllerプレハブの
Steam VR_Render Model.cs
のIndexをそれぞれDevice1(腰)、Device2(右足)、Device3(左足)に設定
この時点でHaritoraConfiguratorを起動させてPlayボタンを押すと、Scene上のcontrollerがかわいいトラ?になります。現時点ではHaritoraXのトラッキングポイントを取得して見た目を設定させただけなので、まだトラッキングはしてくれません。
-
controllerプレハブに
SteamVR_TrackedObject.cs
をアタッチし、IndexをそれぞれDevice1(腰)、Device2(右足)、Device3(左足)に設定
これにて、腰と右足と左足もトラッキングができ、6点トラッキングが可能になりました!
結局のところ、任意のオブジェクトにSteamVR_TrackedObject.cs
をアタッチして、IndexのところをDevice1,2,3にすれば良いみたいです。このトラッキング情報をFinalIK等で利用すれば、色々面白いことができそうですね。
参考