ImmersalのREST APIを使用して空間の位置合わせを行うUnity Packageです。
ほぼ自分用に作っちゃったので変な仕様があるかもしれませんがすみません。
- Unity 2020.3.11f
- UniTask 2.2.5
- ARFoundation 4.1.7
- Keijiro/Pcx
- Pixel 4a 5G
- Windows 10 Home
このパッケージは以下のパッケージに依存していますので、インストールをしてください。
- ARFoundation 4.1.7
- UniTask 2.2.5
Immersal
Server Localizerパッケージをインストールするためには、
PackageManagerの「Add package from git URL...」をクリックし、
https://github.com/drumath2237/Immersal-Server-Localizer.git?path=/Packages/ImmersalServerLocalizer
とします。
もしくはmanifest.jsonを直接編集して、
{
"dependency":{
"com.drumath2237.immersal-server-localizer": "https://github.com/drumath2237/Immersal-Server-Localizer.git?path=/Packages/ImmersalServerLocalizer",
}
}
を追記します。
- 適当なディレクトリにCreateメニューから
Immersal REST Localizer
>ConfigurationScriptableObject
でConfigファイルを作成し、Immersal Developer TokenとマップのID配列を入力してください。 - ARFoundationを使ってARシーンを構成します。
- シーンを作成してImmersalという空のオブジェクトに
Immersal Server Localizer
コンポーネントをアタッチします。 - LocalizerコンポーネントのConfigurationに、先ほど作成したImmersalのコンフィグファイルをアタッチします。
- シーンに適当にTextMeshProのテキストオブジェクトを作成し、Log Textにアタッチします。
- シーンにAR Spaceという空のオブジェクトを作成し、ImmersalServerLocalizerコンポーネントのAR Spaceにアタッチします。
- CameraManagerおよびCameraTransformにAR Session Originの子オブジェクトであるARCameraをアタッチします。
- シーンに適当にボタンを配置し、ClickイベントのCallbackにLocalizerコンポーネントのLocalize()メソッドを指定します
- Androidビルドを実行し、位置合わせを行います。
シーン中のAR Space以下に配置したオブジェクトが 位置合わせに適用されますので、お好みでImmersalのply点群などを配置してみてください。
このスクリプトではunsafeなコードが存在しますので、
Project SettingsからAllow Unsafeを有効にしてください。
- 2021/9/30
- TextMeshProへの依存を消去しました
- XRCpuImage->Texture2Dへの変換をasyncメソッドに移行できました
- これによりunsafeなコードを使う必要がなくなりました
- カメラのtransformをARCameraManagerのついたオブジェクトから取得するようにしました
何かございましたら、にー兄さんのTwitterまでよろしくお願いいたします。