はじめに
普段、IT企業で働いてますプログラマー芸人のジンバと申します!
Unity × Immersal SDKでVPSを用いたARアプリを実装できます!現実空間に正確にオブジェクトを配置することができますよ!
ただオブジェクトを置くだけでなく道案内も可能です!手順を紹介します!
セットアップ
PackageManagerで
https://github.com/immersal/imdk-unity.git
を追加し、CoreSamplesをインポートする。
Switch PlatformでAndroidやiOSにする。
Immersal SDKのLoginでログインする。(マップが読み込めないときはこれが原因の時が多い)
シーン作成
サンプルのシーンのNavigationSampleNavMesh.unityをコピーして、適当な場所にペーストする。そのシーンで作業をする。
ヒエラルキーのXR Map…を開き、Reconfigure Mapをクリック
ImmersalのDeveloper Portalを参照して、自分でスキャンしたMap idを入力し、チェックを全て入れてDownloadする。
GameObject名がマップの名前になり、点群が表示される。ほかのXR Mapも同様に変更したり、不要なものは削除する。
注意点として、既存のXR Mapを複製すると点群が消えてしまう場合がある。(緑色の点がなくなる)
新しくマップを追加したい場合がGameObjectを作成してXR Mapコンポーネントを追加する。
マップに対応するglbファイルをダウンロードし、点群と合わせて位置を確認する。マップが複数ある場合はうまく連結するように配置する。(360度動画から生成した場合、Metashapeで作成したfbxファイルでもよい)
glbファイルの表示に
が必要
floorplanオブジェクトを削除し、床の高さに合わせて通って良いルートにPlaneを複数作成する。ただし、Layerは「Navigation(無いなら作る)」に変更する。
やや大きめにPlaneを置くと良い。
設置し終わったらGenerate NavMeshSurface hereオブジェクトを開き、Include LayersをNavigationに選択してBakeをする。
マーカーを移動させたり、複製して追加したりする。
GLBファイルを非表示にしたり、Planeに透明のMaterialを作ってアタッチしてビルドする。(ビルドするシーンを間違えないように
)
マッピングした場所に向かうと道案内してくれる。
注意点
Planeの高さが低い状態でNavMeshをBakeすると画像のようにナビゲーションできないことがある。
そのときはGenerate NavMeshSurface hereオブジェクトを開き、NaveMeshSurfaceのAgentTypeで独自のTypeを追加し、Heightを高くして設定する。
告知
ご覧いただきありがとうございました!
普段、IT企業で働いてます「プログラマー芸人」ジンバです!
YouTubeもご覧くださいー!↓