PLATEAU SDK-AR-Extensions for Unityのサンプルを動かす
1. 概要
PLATEAU SDK-AR-Extensions for Unity のサンプルを新規プロジェクトから作成した場合、動かすまでに一苦労があったためまとめる。
2. PLATEAU SDK-AR-Extensions for Unityとは
PLATEAUとは、PLATEAU SDK-AR-Extensions for Unityとは何かはPLATEAU SDK-AR-Extensions for Unityの README を参照してください。
3. 環境
OS
- macOS Sonoma 14.2.1
Unity
- Unity 2021.3.35f1
- URP(Universal Render Pipeline)
PLATEAU
- PLATEAU SDK for Unity v2.3.2
- PLATEAU SDK-AR-Extensions for Unity v1.0.1
4. 手順 - 各種インストール
4.1. UnityのURPプロジェクト作成
- Unity HubのNew Projectから
Universal 3D
のプロジェクトを作成する- この時、Editor Versionは
2021.3.35f1
になっていることを確認する
- この時、Editor Versionは
参考)
4.2. PLATEAU SDK for Unityのインストール(- PLATEAU SDK for UnityのReleaseページから
v2.3.2
の PLATEAU-SDK-for-Unity-v2.3.2.tgz をダウンロードする。 - Unityのメニューバーから
Window
->Package Manager
を開く - Package Managerの
+
ボタンからAdd package from tarball...
を選択する
- 1でダウンロードしたPLATEAU-SDK-for-Unity-v2.3.2.tgz を選択する
参考)
4.3. PLATEAU SDK-Toolkits for Unityのインストール(- PLATEAU SDK-Toolkits for UnityのReleaseページから
v1.0.1
の com.unity.plateautoolkit-1.0.1.tgz をダウンロードする。 - Unityのメニューバーから
Window
->Package Manager
を開く - Package Managerの
+
ボタンからAdd package from tarball...
を選択する
- 1でダウンロードしたcom.unity.plateautoolkit-1.0.1.tgz を選択する
- 入力システムについての確認ダイアログが表示された場合は
Yes
を選択します。
参考)
4.4. Google ARCore Extensionsのインストール(Google ARCore Extensionsのインストールは TOPIC 23|3D都市モデルを使った位置情報共有ゲームを作る[1/2]|基本のゲームを作る を参考にしていただけれ問題ありませんが、こちらにも必要な部分をピックアップして記載します。
- AR Foundationのインストール
- Apple ARKit XR Plugin、Google ARCore XR Pluginのインストール
- Geospatial APIのインストール
- ARCoreおよびARKitの有効化
- Geospatial APIのAPIキーを設定する
- プラットフォームの設定を変更する
- GeospatialConfigを修正する
-
Renderer-Featuresを設定する
[Project]ウィンドウで、[Assets]―[Settings]に含まれるURPの設定項目をクリックし、[Inspector]で、[Renderer Features]に[AR Background Renderer Feature]が設定されていない場合は、追加してください。使用するURP設定項目がわからなければ、Settings以下のURP-XXXXのすべてに対して追加してください。
参考)
4.5. PLATEAU SDK-AR-Extensions for Unityのインストール(- PLATEAU SDK-AR-Extensions for UnityのReleaseページから
v1.0.1
の com.unity.plateautoolkit.ar-1.0.1.tgz をダウンロードする。 - Unityのメニューバーから
Window
->Package Manager
を開く - Package Managerの
+
ボタンからAdd package from tarball...
を選択する
- 1でダウンロードしたcom.unity.plateautoolkit.ar-1.0.1.tgz を選択する
参考)
4.6. Cesium for Unityのインストール(PLATEAU SDK-AR-Extensions for Unityの3DTilesを用いたサンプルを使わない場合は不要ですが、エラーが出るためCesium for Unityをインストールします。
- Cesium for UnityのReleaseページから
v1.6.3
の com.cesium.unity-1.6.3.tgz をダウンロードする。 - Unityのメニューバーから
Window
->Package Manager
を開く - Package Managerの
+
ボタンからAdd package from tarball...
を選択する
- 1でダウンロードしたcom.cesium.unity-1.6.3.tgz を選択する
5. 手順 - サンプルの環境構築
PLATEAU SDK-AR-Extensions for Unityの1. サンプルを用いたARアプリケーションの体験と5. ARオクルージョン機能の利用方法を参考にサンプルの実行環境を構築します。
AR Extensions サンプルのインポート
5.1.サンプルシーンを設定する
5.2.- Assets/Samples/PLATEAU AR Extensions for Unity/${AR Extensions バージョン}/AR Samples/Scenes/Sample01_PlateauSdkAR.unity を開きます。
- TMP Importerが表示されるため、
Import TMP Essentials
を選択します。
5.3. unitychanのマテリアルエラー(マゼンダ)を修正する
-
Hierarchy内のunitychanを選択するとマテリアルエラーになっています
PlatformがWindows, Mac, Linux
の場合
5.5. アプリケーションをビルドして端末にインストールする でPlatformをAndroid
にした場合 -
Unityのメニューバーから
Window
->Package Manager
を開く -
Package Managerの
+
ボタンからAdd package from git URL...
を選択する
-
com.unity.toonshader
と入力してAdd
を選択する -
マテリアルエラーが修正される
遮蔽オブジェクトマテリアルの作成
5.4.-
Create
->Material
から新しいマテリアルを作成する- 本記事ではこのマテリアルを
AROccluder
としています
- 本記事ではこのマテリアルを
-
Base Map
に任意の色に変更する
レイヤーの作成
5.5.-
Project Settings
>Tags and Layers
を開く -
User Layer 6 に遮蔽される側のレイヤー
AR Occludee
、User layer 7 に遮蔽する側のレイヤーAR Occluder
を設定する
URP描画設定にレイヤーを設定
5.6.- [Project]ウィンドウで、
Assets
>Settings
に含まれるURPの描画設定項目を開く- 使用するURP描画設定項目がわからなければ、Settings以下のURP-XXXXのすべてに対して追加してください
-
Filtering
>Opaque Layer Mask
から遮蔽される側のレイヤーAR Occludee
のチェックを外す
-
Filtering
>Transparent Layer Mask
から遮蔽される側のレイヤーAR Occludee
のチェックを外す
-
AR Background Renderer Feature が設定されていない場合は、追加する
-
Plateau AR Occlusion Renderer Feature を追加する
-
AR Occludee Mask に遮蔽される側のレイヤー
AR Occludee
を設定する -
AR Occluder Mask に遮蔽する側のレイヤー
AR Occluder
を設定する -
AR Occluder Material に遮蔽オブジェクトマテリアルを設定する
- 作成していない場合は
Assets/Samples/PLATEAU AR Extensions for Unity/${AR Extensions バージョン}/AR Samples/Materials/AROccluder
- 作成した場合は作成したマテリアル
- 作成していない場合は
遮蔽するオブジェクトのレイヤーを変更
5.7.- Hierarchyで
PlateauSdkCityModel
>unitychan
を選択する - Inspectorで
Layer
を遮蔽される側のレイヤーAR Occludee
に設定する- サンプルに合わせてレイヤー設定を行なっていると既に設定済みになっています
- サンプルに合わせてレイヤー設定を行なっていると既に設定済みになっています
5.8. 遮蔽されるオブジェクトのレイヤーを変更
- Hierarchyで
PlateauSdkCityModel
>13100_tokyo23-ku_2020_citygml_3_2_op
を選択する - Inspectorで
Layer
を遮蔽する側のレイヤーAR Occluder
に設定する- サンプルに合わせてレイヤー設定を行なっていると既に設定済みになっています
- サンプルに合わせてレイヤー設定を行なっていると既に設定済みになっています
遮蔽するオブジェクトのマテリアルをZWriteに変更
5.9.- メニューの
PLATEAU
>PLATEAU Toolkit
>AR Extensions
を開く
- マテリアルに ZWrite マテリアルを設定する
-
ZWrite マテリアルは
Packages > PLATEAU SDK-AR-Extensions for Unity > PlateauToolkit.AR > Runtime > Materials > ZWrite
にあります -
ARオクルージョン遮蔽用マテリアルの参照を取得 ボタンを押すと自動的に設定されます
-
ZWrite マテリアルは
-
シーン上のの年モデルのマテリアルを変更
ボタンを押す
5.10. 遮蔽オブジェクトマテリアルの設定
- Hierarchyで
AR
>ARSettingsController
を選択する - Inspectorで AR Settings Controller コンポーネントの AR Occluder Material に遮蔽オブジェクトマテリアルを設定する
- 作成していない場合は
Assets/Samples/PLATEAU AR Extensions for Unity/${AR Extensions バージョン}/AR Samples/Materials/AROccluder
- 作成した場合は作成したマテリアル
- 作成していない場合は
6. 手順 - サンプルの実行
PLATEAU SDK-AR-Extensions for Unityの1. サンプルを用いたARアプリケーションの体験を参考にしていただけれ問題ありません。
ビルド設定にシーンを追加する
6.1.アプリケーションをビルドして端末にインストールする
6.2.7. 最後に
始めて触ってみた時に下記がハマりポイントでしたのでまとめてみました。
これらを回避してPLATEAUで楽しんでみてください。
- 4.2. PLATEAU SDK for Unityのインストール
-
- Renderer-Featuresを設定する
- 4.6. Cesium for Unityのインストール
- 5.3. unitychanのマテリアルエラー(マゼンダ)を修正する
- 5.10. 遮蔽オブジェクトマテリアルの設定
Discussion
5. ARオクルージョン機能の利用方法 の辺りの対応も必要そう
ARオクルージョン機能の利用方法 辺りの説明を追記した