8
5

More than 1 year has passed since last update.

【Unity】HaritoraX+OculusQuestで6点トラッキング

Last updated at Posted at 2021-12-04

NITMic Advent Calendar 2021 4日目の記事です。
HaritoraXを使って6点トラッキングをしようとした際、ネットの情報が少なかったり古かったりで困ったので、メモとして残したいと思います。

想定読者

  • HaritoraXOculusQuestを使ってUnity上で6点トラッキングを行いたい人

前提としてHaritoraXのセットアップ(SteamVRへのHaritoraXアドオン導入等)は完了しているものとします。HaritoraXのセットアップに関してはHaritoraX公式オンラインマニュアルを参考にしてください。

完成図

ファイル名

環境

  • Unity 2020.3.20f1
  • HaritoraX
  • OculusQuest(Oculus Link)

SteamVR Pluginのインポートと初期設定

新規プロジェクトを作成し、SteamVRをインポートして、初期設定を行います。

  1. SteamVR Pluginをインポート(インポート完了時にUnity の設定を SteamVR の推奨設定に変更するウィンドウが開くので、左下の「Accept All」をクリック)
  2. Unity > Edit > Project Settings > XR Plug-in Managementの OpenVR Loader にチェックを入れる
  3. Window > SteamVR Input メニューを開く(開くとIt looks like your project is missing an actions.json. Would you like to use the example files?というメッセージが出るので、「Yes」を選択)
  4. 開いたSteamVR Inputウィンドウの左下にある「Save and generate」をクリック

下記記事を参考にさせて頂きました(というかそのまんまです)

これにて、SteamVR Pluginの初期設定は完了です。この記事では、今インポートしたSteamVR Plugin内にあるプレハブの[CameraRig]controllerを利用して、トラッキングポイントを取得します。
ファイル名

①OculusQuestで3点トラッキング

  1. Assets > SteamVR > Prefabs > [CameraRig] を Hierarchyにドラッグ&ドロップ ファイル名
  2. OculusQuestOculusLinkでPCに接続し、SteamVRを起動させた状態でPlayボタンを押す
    頭、右手、左手で3点がトラッキングできています。
    ファイル名
    うまくトラッキングポイントを取得してくれない時があったので、その場合は再起動等をしてみてください。

②HaritoraXのトラッキングポイントを追加して6点トラッキング

HaritoraXのトラッキングポイントは、SteamVR_TrackedObject.csをオブジェクトにアタッチすることで取得できます。
以下のデモでは、SteamVR Plugin のcontrollerプレハブにSteamVR_TrackedObject.csをアタッチさせることでトラッキングポイントとしています。

  1. Assets > SteamVR > Prefabs > controller を Hierarchyに腰用、右足用、左足用の3つをドラッグ&ドロップ
    ファイル名
  2. controllerプレハブのSteam VR_Render Model.cs のIndexをそれぞれDevice1(腰)、Device2(右足)、Device3(左足)に設定 この時点でHaritoraConfiguratorを起動させてPlayボタンを押すと、Scene上のcontrollerがかわいいトラ?になります。現時点ではHaritoraXのトラッキングポイントを取得して見た目を設定させただけなので、まだトラッキングはしてくれません。
    ファイル名
  3. controllerプレハブにSteamVR_TrackedObject.csをアタッチし、IndexをそれぞれDevice1(腰)、Device2(右足)、Device3(左足)に設定
    ファイル名
    これにて、腰と右足と左足もトラッキングができ、6点トラッキングが可能になりました!
    ファイル名
    結局のところ、任意のオブジェクトにSteamVR_TrackedObject.csをアタッチして、IndexのところをDevice1,2,3にすれば良いみたいです。このトラッキング情報をFinalIK等で利用すれば、色々面白いことができそうですね。

参考

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5