Lab元シリコンバレー在住のおっさん技術者、モバイルVRアプリ開発に挑戦中この広告は、90日以上更新していないブログに表示しています。VRで「どこでもドアに近づく」体験を実現すべく、まずはマーカレスARが可能なKUDANをインストールしました。SDKを利用して、ポジショントラッキング機能を実装し、どこでもドアに近づいてみます。Only」をドラッグ&ドロップし、シーン内に設置した上で、インスペクタより以下の通り設定します。次にKudanPositionTrackerを作成します。Camera)の位置に、空のGameObject(player)を生成し、VR用のカメラを、player配下にぶら下げます。playerに、上記で作成したKudanPositionTrackerを設置します。設置後、インスペクタより、以下の通り設定してください。Tracker」が、KUDANのAR機能の制御を行います。Trackerを利用してポジショントラッキングを行う手順は、以下のとおりです。floorOrientationを引数として、ArbiTrackStart()メソッドを呼び出す。VRの位置(向き)に応じた、VRカメラの位置を設定する注意点などArbiTrackGetPose()で取得する、位置・向き情報は、前回サンプルアプリ実行時に表示された黒色カプセル型のオブジェクトの表示位置・向きとなります。RevRotateVector()は、この表示位置・向きから、カメラの位置を算出しています。ArbiTrackは、ArbiTrackStart()呼び出し時にトラック対象を決定しそれをトラッキングし続けますが、トラッキング対象を見失う(頭の並行移動ではトラッキング対象を見失うことはあまりありませんが、頭を回転させるとあっさり見失います)と、ArbiTrackが終了してしまいます。このため、ポジショントラッキングをし続けるためには「ArbiTrackが終了時は再開する」処理の実装が必要となりますKudanTrackerのトラッキング開始直後に、ArbiTrackStart()を呼び出すと、例外が発生し、ArbiTrackを開始できません("KudanTrackerのトラッキング"と"マーカレスAR用のArbiTrack"は別物)。Enableをチェックしていると、本コンポーネントの初期化のタイミングで開始されます(もしくはStartTracking()メソッドをスクリプトから呼び出すことで、トラッキングを開始できる)。そこで、直後ではなく少し時間をおいてから(上記コードでは5秒)、ArbiTrackStart()を呼び出すことで、本問題を回避しています。これは、マーカレスARだから仕方がないことかと思いますが、ArbiTrackでは正確な距離の測定ができません(トラック対象の寸法情報がないのだから、当然ですね)。このため、ArbiTrackGetPose()で取得できる位置情報は所定の単位(メートルとか)ではなく、ArbiTrackのトラッキング対象の位置等により毎回異なります。上記コードでは、取得した位置情報にscaleFactor(0.0004)をかけて、Unityの座標に変換していますが、この0.0004は試行錯誤で見つけた「私の部屋ではそれっぽく見える値」であり、0.0004をかけることで、Unityの座標に正しく変換できる、というものではありません。VRの距離によっては、頭の動きに対して、動きすぎたり、逆に全然うごかなかったり、ということが起きます。このあたりを正確にしたいなら、試行錯誤scaleFactorの値を調整するか、マーカARにするしかなさそうですね。VRで「どこでもドアに近づく」体験を実現すべく、KUDANを利用してポジショントラッキング機能を実装してみました。Vuforiaで実装した際と比較し、マーカが不要であり、かつマーカがなくても結構高精度なトラッキングが実現されているため、Vuforiaよりも使い勝手のよいポジショントラッキングの実装が可能かと思います。ARはポジショントラッキング用に作られたものでないため、トラッキング対象が視界から消えるとポジショントラッキングができなくなる等、ちゃんとしたポジショントラッキングの実現のためには、色々工夫が必要となりそうです。基本座って・前を向いて使用するアプリ、であれば、今回実装程度のものでも充分かと思います。Reality向けヘッドセットが来ましたMFT2017に出展したVRコンテンツ月別アーカイブ参加グループプログラミングはてなブログをはじめよう!tuti107さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。