平面検知とは?
ARで現実感を持たせるために、現実世界での平面を仮想空間に配置することでオクルージョンや物理演算に用いる方法があります。キャラクターが壁の後ろからひょこっと顔を出したり、現実の床でボールが跳ねたような表現を行うことが出来ます。
平面の検出には以下の2種類があります
- 水平面(Horizontal)
- 垂直面(Vertical)
Point Cloudとは
ARシステムで空間を認識する場合、その位置を把握するのに点の集合体を利用します。この3次元データをPoint Cloudと言います。平面などの検出はこのPointCloudの集まり方などから平面の判定を行っているわけです。
Point Cloudは多く存在しているためARの中に表示することはあまりありませんが、デバッグ時に空間をどの様に認識しているかで使われます
AR Kit/AR Coreでは空間上の特徴点をPoint Cloudとして取得することで現在位置の補正などに利用します。
Point Cloudを表示してみる
GameObject>XR>AR Default Point Cloudからシーン内にAR Default Point Cloudオブジェクトを作成します。
作られたAR Default Poiint Cloudをプロジェクトビューにドラッグアンドドロップしてプレファブ化を行います。プレファブ化はどこでも大丈夫ですが、困る場合はAssets直下にプレファブ化しておきましょう。プレファブ化(水色に変化)したらシーン内のオブジェクトは利用しないので削除して下さい。
Point Cloudを使うにはAR Point Cloud Managerが必要になります。AR Session Originのゲームオブジェクトにスクリプトをアタッチします。
コンポーネントを追加したら、Point Cloud Prefabという部分がNoneになっていると思います。こちらに先程プレファブ化したAR Default Point Cloudをセットして下さい。
以上の設定が出来たら動かしてみて下さい。平面よりは凹凸のあるものを映した時に
平面の検出・表示
Point Cloudよりはこっちの方を試した方が良いでしょう。手順や流れは先程と似ています。
GameObject>XR>AR Default Planeで新しいオブジェクトを作成します。こちらはヒエラルキーで右クリック>XRからでも作成出来ます。
ヒエラルキーに出来たAR Default Planeをプロジェクトビューにドラッグアンドドロップしてプレファブ化を行います。作成後はヒエラルキーにあるAR Default Planeは削除して下さい
ゲームオブジェクトAR Session OriginにAR Plane Managerをアタッチして下さい。
AR Plane ManagerコンポーネントのPlanePrefabに先ほど作成したプレファブ(AR Default Plane)をアタッチします。このときAR Point Cloud Managerのチェックボックスを外しておくと点と平面がごちゃごちゃにならないのでおすすめです。
以上のセットが出来たらアプリに入れて動かしてみて下さい。平面が表示されているはずです。
コメント