Adendo: O ArcGIS Maps SDK for Unity e o ArcGIS Maps SDK for Unreal Engine foram lançados pela Esri dos EUA em junho/julho de 2022. Para mais detalhes,veja aquio artigo.
Anteriormente, no artigo do blog "Manipulando a Terra dentro do Unreal Engine e Unity!?", apresentamos uma visão geral do SDK para game engines, que é o ArcGIS Maps SDK for Unity/Unreal Engine.
Neste artigo, explicaremos como usar o SDK e apresentaremos o que é possível fazer com o ArcGIS Maps SDK.
Configuração
Primeiro, instale o plugin dedicado. Aqui, apresentamos os passos para o Unity.Para o Unreal Engine, consulte a documentação abaixo (em inglês).ArcGIS Maps SDK for Unreal Engine: Adicione o plugin a um novo projeto:
https://developers.arcgis.com/unreal-engine-sdk/install-and-set-up/add-the-plugin-to-a-new-project/
・Download do plugin
Atualmente, o
ArcGIS Maps SDK está disponível em versão beta, e qualquer pessoa pode criar uma conta (gratuita) e participar do programa beta do ArcGIS Maps SDK.Ao participar do programa beta, você pode baixar os plugins para Unity e
Unreal Engine.Você pode baixar um arquivo Zip e descompactá-lo em qualquer local desejado.・Instalação do pluginCrie um projeto com High Definition Render Pipeline ou
Universal Render Pipeline
no Unity. Aqui usaremos o
High Definition Render Pipeline.Após criar o projeto, no menu do Unity, selecione '[Assets] -> [Import package] -> [Custom package]', importe o arquivo baixado 'ArcGISMapsSDK.unitypackage'.Em seguida, selecione '[File] -> [Open Scene]' e abra a cena 'PrefabScene.unity' localizada em '
<pasta do projeto>\Assets\ArcGISMapsSDK\Samples\HDRP\PrefabScene'.※ Se estiver usando um projeto com Universal Render Pipeline, use o arquivo localizado em '<pasta do projeto>\Assets\ArcGISMapsSDK\Samples\URP\PrefabScene'.Ao clicar no botão '[Play]', será exibido o mapa padrão de Nova York com dados de edifícios.
Configurações do SDK: selecione 'PrefabScene_NY' na janela Hierarchy e configure os dados do mapa na janela Inspector.・Configuração da posição da câmera'[CAMERA LOCATION]' permite definir a posição inicial de exibição especificando latitude (Latitude), longitude (Longitude) e altitude (Altitude).・Configuração do mapa base'[BASE MAP]' permite escolher o mapa a ser exibido. Estão disponíveis vários tipos como mapa de ruas (Streets) ou imagens de satélite (Imagery). Também é possível ativar '[Terrain Elevation]' para carregar dados de elevação e representar o terreno.Aqui configuramos '[CAMERA LOCATION]' para mostrar o Monte Fuji com latitude, longitude e altitude (Latitude: 35.300626, Longitude: 138.627363, Altitude: 5000), selecionamos imagens de satélite como mapa base ('Select Base Map: Imagery') e ativamos '[Terrain Elevation]', reproduzindo essa configuração.
'[VIEW MODE]' permite escolher entre 'Global Scene' e 'Local Scene'. Selecionar 'Global Scene' exibe a Terra como uma esfera; selecionar 'Local Scene' exibe a Terra como um plano. À esquerda está 'Global Scene', à direita 'Local Scene'.・Exibição de dados 3D'URL' na web ou arquivos locais podem ser especificados para exibir seus próprios dados 3D georreferenciados. Para isso, softwares como ArcGIS Online ou ArcGIS Pro são necessários. A cena de exemplo 'PrefabScene' exibe por padrão dados 3D dos edifícios de Nova York publicados no ArcGIS Online.'[ADD DATA]' permite adicionar dados 3D especificando uma URL ou referenciando arquivos locais.
A seguir está um modelo 3D da cidade desenvolvido pelo projeto PLATEAU do Ministério da Terra, Infraestrutura, Transporte e Turismo do Japão para as 23 regiões especiais de Tóquio, publicado no ArcGIS Online e exibido via serviço web.
. Para testar, defina a URL do serviço web na opção '[ADD DATA]'.
Dica: O modelo 3D da cidade PLATEAU é publicado no formato CityGML, mas há uma ferramenta disponível no GitHub que converte para um formato utilizável pelo ArcGIS (file geodatabase). O arquivo convertido pode ser publicado como serviço web no ArcGIS Online usando ferramentas do ArcGIS Pro. O serviço web é publicado no formato scene layer que permite exibição rápida dos dados 3D. Comparado à conversão para formatos OBJ ou FBX para exibição local, a gestão é mais fácil via serviço web.
・Exibir objetos 3D do Unity no mapaAgora vamos adicionar objetos 3D do Unity ao mapa. No menu Arquivo selecione '[GameObject]' → '[3D Object]' → '[Cube]'. Na janela Inspector selecione '[Add Component]' → '[Scripts]' → '[ArcGISMapsSDK.Components]' → '[ArcGIS Location Component]'.Aqui definimos a posição onde o objeto 3D será exibido (latitude, longitude, altitude), assim como fizemos para a posição inicial da câmera. Abaixo está um cubo exibido próximo à estação Shinjuku.
. As configurações feitas neste artigo também podem ser feitas usando a API. O SDK está atualmente em versão beta com funcionalidades limitadas, mas futuras versões planejam suportar acesso a feições georreferenciadas gerenciadas pelo ArcGIS para obter informações de atributos.
. Detalhes sobre o SDK estão disponíveis na documentação abaixo:ArcGIS Maps SDK for Unity: https://developers.arcgis.com/unity-sdk/ArcGIS Maps SDK for Unreal Engine: https://developers.arcgis.com/unreal-engine-sdk/A prévia foi lançada por volta do verão; lançamento oficial previsto para 2021. Em setembro de 2021 foi lançada uma prévia (Unity/Unreal Engine). O lançamento oficial está previsto para Q1 de 2022. Novas informações serão compartilhadas em artigos futuros.. Em junho de 2022 (Unity) / julho de 2022 (Unreal Engine) foi lançado oficialmente. Para mais detalhes veja aqui no artigo.
. Note que o ArcGIS Maps SDK for Unity/Unreal Engine é fornecido pela Esri dos EUA como programa beta e não está coberto pelo suporte oficial da ESRI Japão. Para dúvidas ou perguntas utilize os fóruns da página do programa beta.
■Links relacionadosArtigo no blog da ArcGIS: "Manipulando a Terra dentro do Unreal Engine e Unity!?". Artigo no blog da Esri dos EUA: "ArcGIS Maps SDK Beta 2 is available!". Página dos produtos da Esri dos EUA: ArcGIS Maps SDK for Unity / ArcGIS Maps SDK for Unreal Engine[Terrain Elevation] を選択すると標高データを読み込んで、地形を表現することもできます。
ここでは [CAMERA LOCATION] で富士山が表示されるように緯度・経度・高度(Latitude: 35.300626、Longitude : 138.627363、Altitude: 5000)と、背景地図に衛星画像(Select Base Map: Imagery)、[Terrain Elevation] を有効に設定して再生した状態です。
[VIEW MODE] では Global Scene と Local Scene のいずれかを選択できます。Global Scene を選択すると地球が球体で表示され、Local Scene を選択すると地球が平面で表示されます。
左が Global Scene、右が Local Scene
・3D データの表示
Web 上の URL またはローカルファイルを指定して、位置情報を持った独自の 3D データを表示できます。これには ArcGIS Online や ArcGIS Pro 等のソフトウェアが別途必要になります。サンプルの PrefabScene にはデフォルトで ArcGIS Online で公開されているサンプルのニューヨークの建物の 3D データが表示されています。
3D データを追加するには、[ADD DATA] で URL を指定するか、ローカルにあるファイルを参照します。
下記は、国土交通省が進める 3D 都市モデル整備・活用・オープンデータ化のプロジェクトである PLATEAU で整備されている 3D 都市モデル(東京都23区)を ArcGIS Online で公開し、その Web サービスを表示している状態です。
実際に試す場合は、[ADD DATA] の URL にWeb サービスのレイヤーの URL を設定します。
Tips:
PLATEAU の 3D都市モデルは CityGML の形式で公開されていますが、ArcGIS で利用可能な形式(ファイル ジオデータベース)へ変換するツールが GitHub で公開されています。変換したファイル ジオデータベースは ArcGIS Pro のツールを使用してArcGIS Online 上に Web サービスとして公開できます。Web サービスは 3D データを高速に表示可能なシーンレイヤーという形式で公開されます。Web サービスとして表示するため、OBJ や FBX 形式等に変換してローカルデータを表示するのに比べて管理も容易です。
・Unity の 3D オブジェクトを地図上に表示
次に Unity の 3D オブジェクトを地図上に追加してみます。
ファイル メニューで、[GameObject] → [3D Object] → [Cube] を選択します。Inspectorウィンドウで [Add Component] → [Scripts] → [ArcGISMapsSDK.Components] →[ArcGIS Location Component] を選択します。
ここでカメラの初期表示位置の時と同様に、3D オブジェクトを表示する位置(緯度、経度、高度)を設定します。下記は新宿駅付近に Cube オブジェクトを表示した状態です。
本記事で設定した項目は API を使用しても設定できます。SDK は現在ベータ版で機能も限られていますが、今後のリリースでは、ArcGIS で管理する位置情報を持った地物にアクセスして属性情報を取得するような機能もサポートされる予定です。
SDK の詳細は下記ドキュメントで紹介されています。
プレリリースは夏頃、正式リリースは 2021 年内に予定されています。2021 年 9 月にプレリリース版(Unity/Unreal Engine)がリリースされています。正式リリースは 2022 年 Q1 に予定されています。新しいリリース情報は、またブログ記事で紹介していきたいと思います。
2022年6月(Unity)/7月(Unreal Engine)に正式リリースされました。詳細はこちらの記事をご覧ください。
※ ArcGIS Maps SDK for Unity/Unreal Engine はベータ プログラムとして米国Esri社が提供しているものであり、ESRIジャパンにおける製品保守サポート等の対象外です。ご質問やご不明点はベータ プログラム ページの User Forums から直接お問い合わせをお願いいたします。
■関連リンク