🤳

Immersalでpublicなマップを確認する

2024/06/04に公開

最近ハッカソンなどでImmersalを使われる機会・Publicなマップを確認する機会が増えてきたので、確認手順をまとめてみました。

ImmersalマップをPublicにする手順

Immersalのマップは、スマホアプリやBLK2GOといったスキャナを使って作成する訳ですが、それらでスキャンしたデータはDeveloperPortalで確認できるようになっています。
https://developers.immersal.com/docs/mapsmapping/developerportal/
ただ、デフォルトではマップはPrivateになっていて、そのマップをほかのユーザーが使う事は出来ません。ただ、ハッカソン等においては、運営からマップが共有されたり、チームメンバー間でマップを共有したりするために、マップをPublicにすることができます。

変更手順自体は簡単で、DeveloperPortalから

  1. publicにしたいマップを選択
  2. Sharing Modeを選択
  3. publicを選んでSet sharing modeを押下

することで変更できます。

DeveloperPortalでほかのユーザーのPublicマップを確認する

ほかのユーザーのPublicマップは、DeveloperPortalのJobsから「View public maps near location」や「View public maps created by」を選んで「Search」を押すと確認できます。それぞれ、マップ作成者や撮影場所で絞り込んだりもできます。

また、追記②にあるように、Publicなマップを自分のアカウントにSendMapすることも出来ます。

サンプルプロジェクトをベースにUnityでPublicなマップを確認する

ここからUnity上で、Publicになったマップを確認していきます。

https://developers.immersal.com/docs/unitysdk/tutorial/

上記Immersalのtutorialを見ながら

  1. Unityプロジェクトの作成
  2. Imemrsalパッケージのインポート
  3. サンプルのインポート

を行います。

tutorialではマップのセットアップの際にDownload from cloudを使っていますが、Publicマップの際は、DeveloperPortalでほかのユーザーのPublicマップを確認するで取得したbytesやplyのファイルをAssets内に取り込み、それらをLocal map fileとしてセットしてみて下さい(追記にもありますが、ImmersalSDKコンポーネントのDeveloperTokenを空欄にすれば、PublicマップでもCloudからダウンロード可能です)

XR Mapを選択


Local map fileとしてbytesファイルをセット


点群描画させる場合はXR MapでAdd Visualizationを押し、Load local sparse ply fileからダウンロードしたplyファイルをセット

ここまで行い、ビルドすると、実機でPublicのマップを使ってローカライズするところまで確認できます。

さいごに

今回不特定多数の人にImmersalマップを共有する手段として、Publicなマップについてまとめてみました。ただ、実際にはSendMapでマップを送ってもらったり(MapIDが変わる点だけ注意)、アカウントを共有したりする方が、使いやすい所もあるので、その辺りはプロジェクトごとに使い分けてもらえると良いのかなと感じました。

Immersalは、いろいろなデバイスで使えたり、ARCore Recording and Playplay APIが使えたりといった点で、優れたVPSなので、この辺りのマップの機能も理解していきながら、うまく使いこなしていきたいですね。

https://zenn.dev/myaon/articles/871afac1b08bab

追記①:DeveloperTokenの欄を空欄にした状態であれば、Download from cloudでマップダウンロード出来ました!ただ、こちらの方法ではVisualization用のplyは、Unityエディタ上からはダウンロードできないようになっています。
https://discordapp.com/channels/524195464195735555/548498157735116810/866565308301836311

追記②:Publicなマップを検索したのち、それをSendMapで自分のuserIDに送ることもできます。自分が撮ったマップと同様に扱えるので、一番わかりやすい方法かもしれません。

Discussion