平面や地面を検知・検出する【AR+Unity】

目次

平面検知とは?

ARで現実感を持たせるために、現実世界での平面を仮想空間に配置することでオクルージョンや物理演算に用いる方法があります。キャラクターが壁の後ろからひょこっと顔を出したり、現実の床でボールが跳ねたような表現を行うことが出来ます。

平面の検出には以下の2種類があります

  • 水平面(Horizontal)
  • 垂直面(Vertical)

Point Cloudとは

ARシステムで空間を認識する場合、その位置を把握するのに点の集合体を利用します。この3次元データをPoint Cloudと言います。平面などの検出はこのPointCloudの集まり方などから平面の判定を行っているわけです。

Point Cloudは多く存在しているためARの中に表示することはあまりありませんが、デバッグ時に空間をどの様に認識しているかで使われます

AR Kit/AR Coreでは空間上の特徴点をPoint Cloudとして取得することで現在位置の補正などに利用します。

Point Cloudを表示してみる

STEP
シーンにAR Default Point Cloudを追加

GameObject>XR>AR Default Point Cloudからシーン内にAR Default Point Cloudオブジェクトを作成します。

STEP
作られたAR Default Point Cloudをプレファブ化

作られたAR Default Poiint Cloudをプロジェクトビューにドラッグアンドドロップしてプレファブ化を行います。プレファブ化はどこでも大丈夫ですが、困る場合はAssets直下にプレファブ化しておきましょう。プレファブ化(水色に変化)したらシーン内のオブジェクトは利用しないので削除して下さい。

STEP
AR Point Cloud Managerの追加

Point Cloudを使うにはAR Point Cloud Managerが必要になります。AR Session Originのゲームオブジェクトにスクリプトをアタッチします。

STEP
プレファブをセット

コンポーネントを追加したら、Point Cloud Prefabという部分がNoneになっていると思います。こちらに先程プレファブ化したAR Default Point Cloudをセットして下さい。

以上の設定が出来たら動かしてみて下さい。平面よりは凹凸のあるものを映した時に

平面の検出・表示

Point Cloudよりはこっちの方を試した方が良いでしょう。手順や流れは先程と似ています。

STEP
AR Default Planeを作成

GameObject>XR>AR Default Planeで新しいオブジェクトを作成します。こちらはヒエラルキーで右クリック>XRからでも作成出来ます。

STEP
AR Default Planeのプレファブ化

ヒエラルキーに出来たAR Default Planeをプロジェクトビューにドラッグアンドドロップしてプレファブ化を行います。作成後はヒエラルキーにあるAR Default Planeは削除して下さい

STEP
AR Plane Managerの追加

ゲームオブジェクトAR Session OriginにAR Plane Managerをアタッチして下さい。

STEP
プレファブをセットする

AR Plane ManagerコンポーネントのPlanePrefabに先ほど作成したプレファブ(AR Default Plane)をアタッチします。このときAR Point Cloud Managerのチェックボックスを外しておくと点と平面がごちゃごちゃにならないのでおすすめです。

以上のセットが出来たらアプリに入れて動かしてみて下さい。平面が表示されているはずです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次