Skip to content

Latest commit

 

History

History
226 lines (171 loc) · 19.2 KB

plateau-sdk-ar-sample-manual.md

File metadata and controls

226 lines (171 loc) · 19.2 KB
title emoji type topics published
PLATEAU SDK-AR-Extensions for Unityのサンプルを動かす
🏙️
tech
plateau
unity
ar
arcore
geospatialapi
true

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プロジェクト作成

  1. Unity HubのNew Projectから Universal 3D のプロジェクトを作成する
    • この時、Editor Versionは 2021.3.35f1 になっていることを確認する

4.2. PLATEAU SDK for Unityのインストール(参考

  1. PLATEAU SDK for UnityのReleaseページから v2.3.2PLATEAU-SDK-for-Unity-v2.3.2.tgz をダウンロードする。
  2. Unityのメニューバーから Window -> Package Manager を開く
  3. Package Managerの + ボタンから Add package from tarball... を選択する
  4. 1でダウンロードしたPLATEAU-SDK-for-Unity-v2.3.2.tgz を選択する

:::message alert PLATEAU SDK for Unityの公式ドキュメントには GitのURL指定で導入する方法 もありますが、この方法でインストールすると下記のようなエラーが大量に発生するのでおすすめしません。

Could not create asset from Packages/com.synesthesias.plateau-unity-sdk/Images/AreaSelect/LOD2/bridge.png: File could not be read

:::

4.3. PLATEAU SDK-Toolkits for Unityのインストール(参考

  1. PLATEAU SDK-Toolkits for UnityのReleaseページから v1.0.1com.unity.plateautoolkit-1.0.1.tgz をダウンロードする。
  2. Unityのメニューバーから Window -> Package Manager を開く
  3. Package Managerの + ボタンから Add package from tarball... を選択する
  4. 1でダウンロードしたcom.unity.plateautoolkit-1.0.1.tgz を選択する
  5. 入力システムについての確認ダイアログが表示された場合は Yes を選択します。

4.4. Google ARCore Extensionsのインストール(参考

Google ARCore Extensionsのインストールは TOPIC 23|3D都市モデルを使った位置情報共有ゲームを作る[1/2]|基本のゲームを作る を参考にしていただけれ問題ありませんが、こちらにも必要な部分をピックアップして記載します。

  1. AR Foundationのインストール
  2. Apple ARKit XR Plugin、Google ARCore XR Pluginのインストール
  3. Geospatial APIのインストール
  4. ARCoreおよびARKitの有効化
  5. Geospatial APIのAPIキーを設定する
  6. プラットフォームの設定を変更する
  7. GeospatialConfigを修正する
  8. Renderer-Featuresを設定する [Project]ウィンドウで、[Assets]―[Settings]に含まれるURPの設定項目をクリックし、[Inspector]で、[Renderer Features]に[AR Background Renderer Feature]が設定されていない場合は、追加してください。使用するURP設定項目がわからなければ、Settings以下のURP-XXXXのすべてに対して追加してください。 :::message URPプロジェクトの場合は、この設定を行わないとアプリでカメラ画像が真っ暗で表示されません。 :::

4.5. PLATEAU SDK-AR-Extensions for Unityのインストール(参考

  1. PLATEAU SDK-AR-Extensions for UnityのReleaseページから v1.0.1com.unity.plateautoolkit.ar-1.0.1.tgz をダウンロードする。
  2. Unityのメニューバーから Window -> Package Manager を開く
  3. Package Managerの + ボタンから Add package from tarball... を選択する
  4. 1でダウンロードしたcom.unity.plateautoolkit.ar-1.0.1.tgz を選択する :::message alert 下記のようなエラーが出ます。4.6. Cesium for Unityのインストールのインストールを行なってください。
    Library/PackageCache/com.unity.plateautoolkit.ar@07e1ee401d81/PlateauToolkit.AR/Runtime/PlateauARPositioning.cs(7,7): error CS0246: The type or namespace name 'CesiumForUnity' could not be found (are you missing a using directive or an assembly reference?)
    Library/PackageCache/com.unity.plateautoolkit.ar@07e1ee401d81/PlateauToolkit.AR/Runtime/PlateauARPositioning.cs(51,26): error CS0246: The type or namespace name 'CesiumGeoreference' could not be found (are you missing a using directive or an assembly reference?)
    Library/PackageCache/com.unity.plateautoolkit.ar@07e1ee401d81/PlateauToolkit.AR/Runtime/PlateauARPositioning.cs(52,26): error CS0246: The type or namespace name 'Cesium3DTileset' could not be found (are you missing a using directive or an assembly reference?)
    Shader Graph at Packages/com.unity.plateautoolkit.ar/PlateauToolkit.AR/Runtime/Shaders/CesiumTilesetClippingShader.shadergraph has 8 error(s), the first is: Validation: Could not find Sub Graph asset with GUID 45c8c2a0ab2df934c8e0f63147f35d0e.
    
    :::

4.6. Cesium for Unityのインストール(参考

PLATEAU SDK-AR-Extensions for Unityの3DTilesを用いたサンプルを使わない場合は不要ですが、エラーが出るためCesium for Unityをインストールします。

  1. Cesium for UnityのReleaseページから v1.6.3com.cesium.unity-1.6.3.tgz をダウンロードする。
  2. Unityのメニューバーから Window -> Package Manager を開く
  3. Package Managerの + ボタンから Add package from tarball... を選択する
  4. 1でダウンロードしたcom.cesium.unity-1.6.3.tgz を選択する

5. 手順 - サンプルの環境構築

PLATEAU SDK-AR-Extensions for Unityの1. サンプルを用いたARアプリケーションの体験5. ARオクルージョン機能の利用方法を参考にサンプルの実行環境を構築します。

  1. Assets/Samples/PLATEAU AR Extensions for Unity/${AR Extensions バージョン}/AR Samples/Scenes/Sample01_PlateauSdkAR.unity を開きます。
  2. TMP Importerが表示されるため、 Import TMP Essentials を選択します。

5.3. unitychanのマテリアルエラー(マゼンダ)を修正する

  1. Hierarchy内のunitychanを選択するとマテリアルエラーになっています Platformが Windows, Mac, Linux の場合

    5.5. アプリケーションをビルドして端末にインストールする でPlatformを Android にした場合

  2. Unityのメニューバーから Window -> Package Manager を開く

  3. Package Managerの + ボタンから Add package from git URL... を選択する

  4. com.unity.toonshader と入力して Add を選択する

  5. マテリアルエラーが修正される

:::message PLATEAU SDK-AR-Extensions for Unityにはサンプルの AROccluder マテリアルが含まれています。

  • Assets/Samples/PLATEAU AR Extensions for Unity/${AR Extensions バージョン}/AR Samples/Materials/AROccluder

このためこのマテリアルを利用することを推奨します。 新しいマテリアルを作成したい場合はこの章の手順で作成してください。 :::

  1. Create -> Material から新しいマテリアルを作成する
    • 本記事ではこのマテリアルを AROccluder としています
  2. Base Map に任意の色に変更する

:::message レイヤー作成のドキュメントには レイヤーの順序は他の要件を考慮の上設定してください。 とありますが、サンプルシーンでは下記記載のレイヤーを前提に作成されていますので、サンプルに合わせてレイヤーを設定します。 :::

  1. Project Settings > Tags and Layers を開く
  2. User Layer 6 に遮蔽される側のレイヤー AR OccludeeUser layer 7 に遮蔽する側のレイヤー AR Occluder を設定する
  1. [Project]ウィンドウで、Assets > Settingsに含まれるURPの描画設定項目を開く
    • 使用するURP描画設定項目がわからなければ、Settings以下のURP-XXXXのすべてに対して追加してください
  2. Filtering > Opaque Layer Mask から遮蔽される側のレイヤー AR Occludee のチェックを外す
  3. Filtering > Transparent Layer Mask から遮蔽される側のレイヤー AR Occludee のチェックを外す
  4. AR Background Renderer Feature が設定されていない場合は、追加する
  5. Plateau AR Occlusion Renderer Feature を追加する
  6. AR Occludee Mask に遮蔽される側のレイヤー AR Occludee を設定する
  7. AR Occluder Mask に遮蔽する側のレイヤー AR Occluder を設定する
  8. AR Occluder Material に遮蔽オブジェクトマテリアルを設定する
    • 作成していない場合は Assets/Samples/PLATEAU AR Extensions for Unity/${AR Extensions バージョン}/AR Samples/Materials/AROccluder
    • 作成した場合は作成したマテリアル
  1. Hierarchyで PlateauSdkCityModel > unitychan を選択する
  2. Inspectorで Layer を遮蔽される側のレイヤー AR Occludee に設定する
    • サンプルに合わせてレイヤー設定を行なっていると既に設定済みになっています

5.8. 遮蔽されるオブジェクトのレイヤーを変更

  1. Hierarchyで PlateauSdkCityModel > 13100_tokyo23-ku_2020_citygml_3_2_op を選択する
  2. Inspectorで Layer を遮蔽する側のレイヤー AR Occluder に設定する
    • サンプルに合わせてレイヤー設定を行なっていると既に設定済みになっています
  1. メニューの PLATEAU > PLATEAU Toolkit > AR Extensions を開く
  2. マテリアルに ZWrite マテリアルを設定する
    • ZWrite マテリアルは Packages > PLATEAU SDK-AR-Extensions for Unity > PlateauToolkit.AR > Runtime > Materials > ZWrite にあります
    • ARオクルージョン遮蔽用マテリアルの参照を取得 ボタンを押すと自動的に設定されます
  3. シーン上のの年モデルのマテリアルを変更 ボタンを押す

5.10. 遮蔽オブジェクトマテリアルの設定

  1. Hierarchyで AR > ARSettingsController を選択する
  2. 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アプリケーションの体験を参考にしていただけれ問題ありません。

7. 最後に

始めて触ってみた時に下記がハマりポイントでしたのでまとめてみました。 これらを回避してPLATEAUで楽しんでみてください。

  • 4.2. PLATEAU SDK for Unityのインストール
    1. Renderer-Featuresを設定する
  • 4.6. Cesium for Unityのインストール
  • 5.3. unitychanのマテリアルエラー(マゼンダ)を修正する
  • 5.10. 遮蔽オブジェクトマテリアルの設定