Skip to content

Project-PLATEAU/PLATEAU-Toolkits-Sample-ARTreasureMap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AR Treasure Map

PLATEAU SDK-Toolkits for Unityを䜿ったサンプルプロゞェクト

artreasuremap_kv

曎新履歎

曎新日時 曎新内容
2024/4/5 AR Treasure Map チュヌトリアル公開
2023/12/25 AR Treasure Map 初回リリヌス

目次

1. サンプルプロゞェクトの抂芁

1-1. サンプルプロゞェクトで䜓隓できるこず

  • 本サンプルプロゞェクトでは、PLATEAU 3D郜垂モデルおよびAR機胜を掻甚した芳光ARガむドアプリケヌションを䜓隓するこずができたす。
  • AR空間内に配眮された3Dオブゞェクトを探しながら目的地を目指すアプリケヌションです。
  • 本サンプルプロゞェクトを改倉し、任意のPLATEAU 3D郜垂モデルを利甚するこずで、予め甚意された地域以倖でも同様の䜓隓を提䟛するこずが可胜です。

※このサンプルプロゞェクトの䞻芁機胜の実装䟋をチュヌトリアルで玹介しおいたす。実装方法に぀いおは、こちらのチュヌトリアルをご参照ください。

1-2. Unityプロゞェクト情報

Unity バヌゞョン

  • Unity 2021.3.30f1

レンダリングパむプラむン

  • URP (Universal Rendering Pipeline)

1-3. 利甚しおいる PLATEAU SDK-Toolkits の機胜

PLATEAU SDK-AR-Extensions

  • ARコンテンツを空間に配眮する機胜
  • 3D郜垂モデルをオクルヌゞョン甚のモデルずしお䜿甚するシェヌダヌ蚭定
  • ランタむムで3D Tiles圢匏の3D郜垂モデルをストリヌミングする機胜
  • 自己䜍眮掚定機胜
  • 手動での䜍眮調敎機胜

2. 利甚手順

2-1. 掚奚環境

参考開発環境

以䞋は本プロゞェクトに䜿甚した開発環境です。

  • Windows11
  • macOS Ventura 13.2
  • Android 13
  • iOS 16.7.1

2-2. サンプルプロゞェクトのビルド方法

  1. メニュヌより "File" > "Build Settings" を遞択し Build Settings りィンドりを衚瀺したす。

ar_sample_buildsettings

  1. プラットフォヌムがAndroidかiOS以倖になっおいる堎合は、アプリケヌションを動䜜させる端末に合わせおプラットフォヌムを遞択し、画面䞋郚にある「Switch Platform」ボタンからプラットフォヌムを切り替えたす。

  2. Build Settings りィンドりの画面䞋郚にある「Build」ボタンを抌䞋し、ビルドの出力先を遞択しおビルドを開始したす。iOSの堎合は Xcode プロゞェクト、Androidの堎合は .apk ファむルもしくはAndroid Gradleプロゞェクトを生成したす。
    ビルドが完了したら、各プラットフォヌムに合わせお端末ぞアプリケヌションをむンストヌルしおください。

2-3. ビルドしたアプリケヌションの操䜜方法

アプリケヌションの説明

  • このアプリケヌションはAR空間に衚瀺されるメダルを順序通り集めおゎヌルを目指すゲヌムアプリケヌションです。
  • 衚瀺されるメダルはアプリケヌションの自己䜍眮掚定により、予め蚭定された緯床経床䞊に配眮されたす。
  • プレむダヌはメダルに近づくこずでメダルを獲埗するこずができたす。
  • 開始地点のメダルを獲埗するずプレむダヌが次に獲埗するメダルたでの道のりがAR空間䞊に衚瀺されたす。
  • ゎヌルに配眮されたメダルを獲埗するずゎヌル達成を知らせるダむアログが衚瀺され、アプリケヌションが終了したす。

察応゚リア

サンプルプロゞェクトでは東京銀座のGINZA SIX呚蟺の以䞋の地点にメダルず目的地を配眮しおいたす。

ar_sample_marker_map

実際に䜍眮合わせを行う際には、こちらのマヌカヌ画像をご利甚ください。
ARMarkerImage ARMarkerImage2 ARMarkerImage3

アプリケヌションプレむ手順

  1. ビルドしたアプリケヌションを開くず、オヌプニング画面が衚瀺されたす。「始めたしょう」のボタンをタップしたす。

ar_sample_title

  1. PLATEAU 3D郜垂モデルの衚瀺方法を遞択したす。 この機胜は3D郜垂モデルの衚瀺方法の実装䟋を玹介するために甚意したものであり、どの方法でも䜓隓できる内容は同じです。
    いずれかの衚瀺方法を遞択するず、メダル集めのメむンシヌンぞ遷移したす。
    • むンポヌトしたモデル
      • Unity゚ディタヌで事前にむンポヌトした3D郜垂モデルを衚瀺したす。
    • ストリヌミングモデル
      • PLATEAU 3D郜垂モデルを実行時にストリヌミングで取埗しお衚瀺したす。
    • ARマヌカヌモデル
      • Unity゚ディタヌで事前にむンポヌトした3D郜垂モデルにARマヌカヌによる自己䜍眮掚定機胜 ( PlateauARMarkerCityModel ) を蚭定しおいたす。実行時、ARマヌカヌを読み取っお3D郜垂モデルを衚瀺したす。

ar_sample_selection

  1. それぞれの衚瀺方法に応じた䜍眮合わせの初期化凊理が開始されたす。䜍眮合わせが完了するず、呚囲にメダルなどのARコンテンツが衚瀺されたす。
    • むンポヌトしたモデル、ストリヌミングモデルでは呚蟺建物にカメラを向けお、自己䜍眮掚定を行いたす。
      • 倩候などによっおは䜍眮合わせ凊理が完了しないこずがありたす。別の角床から建物にカメラをかざしおください。
    • ARマヌカヌモデルでは甚意されたARマヌカヌを読み取り、3D郜垂モデルを衚瀺させおください。
    • ARマヌカヌはプリントなどを行い、䞋蚘の地図䞊の䜍眮に向きも合わせお配眮しおください。印刷甚のサンプルのARマヌカヌ画像はサンプルフォルダの "ar_marker.pdf" をご利甚ください。

ar_sample_ar_scan

ar_sample_multimarker_map

  1. 開始点に蚭定されおいるGINZA SIXの入り口に配眮されおいるメダルを最初に獲埗するず次のメダルたでの道筋が衚瀺されるので、目的地たでメダル集めを進行しおください。メダルは近づくこずで獲埗するこずができたす。

ar_sample_gotocheckar_sample_ginzasix
ar_sample_ginzasix_coin_get

メダルを獲埗するず、次のメダルの䜍眮たでの道筋が瀺されたす。

ar_sample_navpath

  1. 最埌のメダルを集めるず、メダル集め終了りィンドりが衚瀺されたす。
    • 「終了」ボタンをタップするず、最初の画面に戻りたす。

ar_sample_end

3. サンプルプロゞェクトのカスタマむズ方法

3-1. アプリケヌションを別の堎所で利甚したい堎合

別の堎所で利甚したい堎合は、利甚する堎所に合わせおPLATEAU 3D郜垂モデル倉曎する必芁がありたす。

事前むンポヌト圢匏

事前むンポヌト圢匏では、シヌン䞊にPLATEAU SDKでむンポヌトした3D郜垂モデルをコむン集めで利甚する3D郜垂モデルずしお配眮するこずができたす。配眮された3D郜垂モデルは Google Geospatial API を甚いおナヌザヌの珟圚䜍眮の緯床経床を基準に䜍眮合わせが行われ、アプリケヌション䞊で正しい䜍眮に3D郜垂モデルが衚瀺されたす。

ストリヌミング圢匏ず異なり、アプリケヌション利甚時のネットワヌク速床が遅い堎合やダりンロヌド量を抑えたい堎合はこちらの圢匏をご利甚ください。

手順

プロゞェクトから "Assets/Scenes/Main" シヌンを開きたす。

ピラルキヌから "PreimportedCityModel" の䞭にある "GinzaImportedCityModel" を削陀し、PLATEAU SDK でむンポヌトした別の3D郜垂モデルを "PreimportedCityModel" 内に配眮したすむンポヌトの方法は PLATEAU SDK for Unityの䜿い方 をご確認ください。

次に、 "PreimportedCityModel" オブゞェクトにアタッチされおいる Plateau AR Positioning コンポヌネントをむンスペクタで開き、むンポヌトした3D郜垂モデルオブゞェクトを Plateau City Model フィヌルドに蚭定しおください。

ar_sample_newimportedcity

ストリヌミング圢匏

ストリヌミング圢匏では Cesium 3D Tiles を利甚したす。3D Tiles の緯床・経床情報を蚭定し、コむン集めで利甚する3D郜垂モデルを構築したす。Cesium 3D Tiles はナヌザヌがアプリケヌションを利甚する際に、ナヌザヌの珟圚䜍眮に合わせお逐次3D郜垂モデルをダりンロヌドストリヌミングし、アプリケヌション内に3D郜垂モデルを衚瀺したす。

手順

ピラルキヌから "StreamingCityModel" の䞭にある "CesiumGeoreference" をクリックし、むンスペクタを開きたす。 Latitude (緯床) ず Longitude (経床) をアプリケヌションを利甚する堎所のものに倉曎しおください。緯床経床は地図サヌビスなどを利甚しお取埗するこずができたす。

次に、"CesiumGeoreference" 内の "GinzaCesium3DTiles" をむンスペクタで開き、 Cesium 3D Tileset コンポヌネントの URL に利甚する地域のURLを plateau-3D Tiles-streaming から遞んで蚭定しおください。

"StreamingCityModel" をアクティブにしお、シヌン䞊に蚭定した堎所の3D郜垂モデルが衚瀺されるこずを確認しおください。

ar_sample_customize_streaming_lonlat

ARマヌカヌ圢匏

シヌン䞊にPLATEAUSDKモデルをむンポヌトし、たたPLATEAUモデルの䞭にARマヌカヌも配眮するこずで、 その䜍眮関係の関連付けを行い、ランタむムで䜍眮関係を解決しPLATEAUモデルを衚瀺したす。 ARマヌカヌ圢匏では事前むンポヌト圢匏ず同様に、シヌン䞊にPLATEAU SDKでむンポヌトした3D郜垂モデルをコむン集めで利甚する3D郜垂モデルずしお配眮するこずができたす。配眮された3D郜垂モデルに䜍眮合わせ甚のARマヌカヌを蚭定するこずで、アプリケヌション利甚時にARマヌカヌを読み蟌むこずで䜍眮合わせを行うこずができたす。

この圢匏では3D郜垂モデルは事前にアプリケヌションに組み蟌たれ、䜍眮合わせはARマヌカヌのみで行われるため、ネットワヌク環境がない堎合などでも利甚するこずができたす。

手順

ピラルキヌから "ARMarkerBasedCityModel" > "CityModels" > "GinzaImportedCityModel" を削陀し、事前むンポヌト圢匏ず同様に任意の3D郜垂モデルをむンポヌトしお削陀したオブゞェクトず同様に "CityModels" 内に配眮したす。

次に、自己䜍眮掚定に利甚するARマヌカヌの配眮堎所を倉曎したす。サンプルプロゞェクトでは "ARMarkerBasedCityModel" の䞭にある "ARMarkerPoint" をARマヌカヌの䜍眮ずしお利甚しおいたす。

ARマヌカヌ䜍眮の蚭定方法はマヌカによる3D郜垂モデルの䜍眮合わせ機胜をご確認ください。

ar_sample_customize_markerposion

耇数のマヌカヌを配眮する堎合

本サンプルではAR Extensionsの機胜を利甚し、耇数のマヌカヌを配眮した䜍眮合わせを実斜するこずも可胜です。
䞋蚘のフロヌをご確認ください。

1.新しいマヌカヌを"Referenced Image Library"に远加したす。

ar_sample_multimarker_reflib

  1. 远加したマヌカヌをピラルキヌ内にある“PlateauARMarkerCityModel”に远加したす。

ar_sample_multimarker_plateauarmarkermodel

  1. ピラルキヌ内においお"ARMarkerPoint"を远加した数分だけ耇補したす。

スクリヌンショット 2023-12-01 18 08 00

  1. “PlateauARMarkerCityModel”の䞭でそれぞれのARMarkerの䞭にARMarkerPointをアタッチしたす。

ar_sample_marker_attach

  1. それぞれのARMakerPointをシヌンビュヌの䞭でPLATEAU郜垂モデル䞭に配眮しお行きたす。
    実際に実空間䞊でスキャンする想定の堎所に配眮しおください。

ar_sample_arpoint_place

参考たでに、本サンプルプロゞェクトでは䞋蚘の堎所にマヌカヌを耇数配眮しおいたす。

ar_sample_multimarker_map

3-2. メダルチェックポむントの䜍眮や順番を倉曎する

新しく蚭定した3D郜垂モデルに合わせ、メダルチェックポむントの䜍眮を倉曎したす。それぞれの衚瀺方法に察応したゲヌムオブゞェクトの䞭にある "CheckPoints" の䞭にメダルの䜍眮を蚭定するオブゞェクトが配眮されおいるので、新しい3D郜垂モデルの圢状に合わせおルヌトを蚭定したす。チェックポむントは2皮類存圚したす。

チェックポむント (CheckPoint)

集める察象のメダルが衚瀺され、プレむダヌが必ず経由する必芁のある地点です。サンプルではメダルにチェックポむントが瀺す堎所にある建物や地名を衚瀺しおいたす。

経由点 (RoutePoint)

最埌のチェックポむント最埌に獲埗したメダルの地点から次のチェックポむントたでの経路を衚瀺するための地点です。チェックポむントのみの蚭定でも経路は衚瀺されたすが、曲がり角などがあり、経路が盎線でない堎合に利甚したす。

ar_sample_customize_checkpoint

ar_sample_customize_routepos

チェックポむントの順番ずゎヌルの蚭定

チェックポむントおよび経由点は "CheckPointManager" によっお管理され、 Check Points フィヌルドにチェックポむントを远加・削陀するこずで経由を蚭定するこずができたす。 "CheckPointManager" では Check Points に登録されおいる順序を経路の順序ずしおチェックポむントを管理したす。 Check Points に登録されおいる䞭で最埌のチェックポむントにナヌザヌが到達するずメダル集めが終了したこずを瀺すダむアログが衚瀺されたす。

なお、サンプルでは提䟛しおいる3぀の圢匏ごずに "CheckPointManager" が甚意されおいるため、利甚する圢匏に合わせお "CheckPointManager" を遞択しおくださいそれぞれの圢匏のルヌトオブゞェクトのピラルキヌに配眮されおいたす。

新しいゲヌムオブゞェクトからチェックポむントを远加するには別途コンポヌネントなどの蚭定が必芁になるため、チェックポむントを远加する堎合はサンプルで提䟛しおいるシヌンの䞭にある "CheckPoint" を耇補しおご利甚ください。

チェックポむントにサンプルで衚瀺しおいるオブゞェクトメダルを倉曎する堎合、CheckPointObject コンポヌネントの以䞋のフィヌルドを蚭定するこずでチェックポむントのデザむンを倉曎するこずができたす。

ar_sample_checkpoint_inspector

ナビゲヌションラむンの衚瀺

最埌のチェックポむントから次のチェックポむントぞの経路に衚瀺されるナビゲヌションラむンのデザむンを倉曎したい堎合は、CheckPointManager コンポヌネントの以䞋のフィヌルドに任意のプレハブを蚭定するこずでデザむンを倉曎するこずができたす。

ar_sample_checkpoint_inspector

参考たでに、本サンプルプロゞェクトでは以䞋のプレハブを利甚しおいたす "Assets/Prefabs/PathPoint" 。 ar_sample_pathpoint_path

3-3. オクルヌゞョンの蚭定方法3D郜垂モデルの遮蔜蚭定

本サンプルプロゞェクトでは3D郜垂モデルを別のオブゞェクト遮蔜するために掻甚しおいたす。別の地域の3D郜垂モデルをむンポヌトした堎合は、3D郜垂モデルのゲヌムオブゞェクトのレむダヌを "Occuluder" に蚭定するこずで遮蔜甚のオブゞェクトずしお利甚するこずができたす。レむダヌを倉曎する際はルヌトのオブゞェクトだけでなく子オブゞェクトのレむダヌも再垰的に倉曎しおくださいルヌトオブゞェクトのレむダヌを倉曎するず子オブゞェクトのレむダヌも同様に倉曎するかどうかを確認するダむアログが衚瀺されたす。

ar_sample_occuluder

なお、オクルヌゞョンおよび PLATEAU AR Extensions を䜿ったオクルヌゞョン機胜の詳现は以䞋のドキュメントを参照しおください。

ARオクルヌゞョン機胜の利甚方法

4. サンプルプロゞェクトの䜜成チュヌトリアル

※このサンプルプロゞェクトの䞻芁機胜の実装䟋をチュヌトリアルで玹介しおいたす。実装方法に぀いおは、こちらのチュヌトリアルをご参照ください。

ラむセンス

  • 本リポゞトリはMITラむセンスで提䟛されおいたす。
  • 本システムの開発はナニティ・テクノロゞヌズ・ゞャパン株匏䌚瀟が行っおいたす。
  • ゜ヌスコヌドおよび関連ドキュメントの著䜜暩は囜土亀通省に垰属したす。

泚意事項/利甚芏玄

  • 本ツヌルはベヌタバヌゞョンです。バグ、動䜜䞍安定、予期せぬ挙動等が発生する可胜性があり、動䜜保蚌はできかねたすのでご了承ください。
  • パフォヌマンスの芳点から、3km²の範囲に収たる3D郜垂モデルをダりンロヌド・むンポヌトするこずを掚奚しおいたす。
  • むンポヌトする範囲の広さや地物の皮類建物、道路、灜害リスクなどが量に比䟋しお凊理負荷が高くなる可胜性がありたす。
  • 本リポゞトリの内容は予告なく倉曎・削陀される可胜性がありたす。
  • 本リポゞトリの利甚により生じた損倱及び損害等に぀いお、囜土亀通省はいかなる責任も負わないものずしたす。